diff options
author | Benjamin Jones <bjones@galois.com> | 2013-10-25 16:53:11 -0700 |
---|---|---|
committer | Benjamin Jones <bjones@galois.com> | 2013-10-25 16:53:11 -0700 |
commit | dd5cfc60bb8fdc8cea4335c8a24937afbd65c090 (patch) | |
tree | 7b840157c69c5040475b06cce07f8d1fd9cc2b54 | |
parent | 860bdc583ef67c63380a001280f4600b4a8504cb (diff) |
ASM guideline 8.5 and test files
-rw-r--r-- | guidelines/ASM/.gitignore | 1 | ||||
-rw-r--r-- | guidelines/ASM/asm-8.5.js | 93 | ||||
-rw-r--r-- | guidelines/ASM/test-8.5.html | 24 | ||||
-rw-r--r-- | guidelines/ASM/test-guideline.json | 5 | ||||
-rw-r--r-- | guidelines/ASM/test_L4_LSG_FURN_1.htm | 23151 |
5 files changed, 23274 insertions, 0 deletions
diff --git a/guidelines/ASM/.gitignore b/guidelines/ASM/.gitignore new file mode 100644 index 0000000..1e107f5 --- /dev/null +++ b/guidelines/ASM/.gitignore @@ -0,0 +1 @@ +examples diff --git a/guidelines/ASM/asm-8.5.js b/guidelines/ASM/asm-8.5.js new file mode 100644 index 0000000..c74181d --- /dev/null +++ b/guidelines/ASM/asm-8.5.js @@ -0,0 +1,93 @@ +/* + * Abnormal Situation Management - Guidelines + * + * 8.5 - p2: Use consistent numeric formats to enable quick reading. + * Notes: Don't use leading 0's for integer values, *do* provide leading 0 for + * fractional values < 1, justify columns on decimal point, include units. + * Some easy, some hard. (how do we map units to numbers? can we get the screen + * coordinates for every '.' in the dom?) + * + */ +exports.name='Inconsistent numerical formatting'; +exports.description='Use consistent numeric formats to enable quick reading.'; + +exports.rule = function (report) { + + // Predicate used on DOM elements below. + var hasText = function(i) { return ($5(this).text().trim().length); }; + + // Rule specifications: + // (we assume re's below run on strings which already match the general + // number format given in getNums.) + var bads = [ { re: '[+-]?0\\d' // e.g. 032 + , msg: 'numbers larger than 1 should not lead with a zero' } + + , { re: '^[+-]?\\.\\d' // e.g. -.145 + , msg: 'fractional numbers less than 1 should have a leading zero' } + + , { re: '\\.$' // e.g. 32. + , msg: 'numbers should not end with a decimal' } ]; + + /* Returns a function from a rule specification. */ + var checkBad = function(b) { + var res = {}; + var f = function (n) { + var r = new RegExp(b.re); + if (r.exec(n)) { return true; } + else { return false; } + }; + res.fcn = f; + res.rule = b; // save the rule + return res; + }; + var fcns = _.map(bads, checkBad); + + // DOM element -> it's full text content including children separeted by + // spaces. We do this instead of just calling text() or .textContent because + // we want text of children separeted from each other with whitespace. + var betterText= function (e) { + if (!$5(e).children()) { + return $5(e).text(); + } + else { + // extract text from the children recursively + var ctxts = _.map($5(e).children(), betterText); + // remove the children and extract text + ctxts.push($(e).clone().children().remove().end().text()); + return ctxts.join(' '); + } + }; + + /* Returns an array of the numbers found in the given DOM node's text. */ + var getNums = function (e) { + //var txt = $5(e).text().trim(); + var txt = betterText(e); + var re = new RegExp('(^|\\b)[+-]?(\\d+(\\.)?\\d*|\\.\\d+)(\\b|$)', 'g'); + var matches = [], found; + while (found = re.exec(txt)) { + matches.push(found[0]); + } + // FUUUCCCKKKK + return matches; + }; + + // Main rule query + $5("*").filter(hasText).each(function(i, elt) { + var nums = getNums(elt); + _.each(fcns, function (rul, ii, l) { + var m = _.map(nums, rul.fcn); + if (_.some(m)) { // some number in nums is bad for this rule + // check if a child node has the same problem + var childNums = _.flatten(_.map($5(elt).children(), getNums)); + if (_.some(_.map(childNums, rul.fcn))) { + return; // don't report it, break out of _.each iteration + } + else { // no child has the same problem + report.error(rul.msg, elt); + } + } + }); + }); + +} + diff --git a/guidelines/ASM/test-8.5.html b/guidelines/ASM/test-8.5.html new file mode 100644 index 0000000..66c6d14 --- /dev/null +++ b/guidelines/ASM/test-8.5.html @@ -0,0 +1,24 @@ +<html> + <head> + <title>Test asm 8.5</title> + </head> + <body> + + <p> + Hello World! + </p> + + <table> + <tbody> + <tr><td>123</td><td>bob -123.0</td></tr> + <tr><td>.445</td><td>-0452 foo</td></tr> + <tr><td>27818.</td><td>my age is 6.</td></tr> + <tr><td>27818</td><td>my age is 7</td></tr> + </tbody> + </table> + + <p>-.3333333</p> + + <p>00123</p> + +</body></html> diff --git a/guidelines/ASM/test-guideline.json b/guidelines/ASM/test-guideline.json new file mode 100644 index 0000000..8ccec82 --- /dev/null +++ b/guidelines/ASM/test-guideline.json @@ -0,0 +1,5 @@ +{ "name": "ASM guideline-test" +, "description": "Test ASM guidelines" +, "license": "BSD3" +, "rules": [ "asm-8.5.js" ] +} diff --git a/guidelines/ASM/test_L4_LSG_FURN_1.htm b/guidelines/ASM/test_L4_LSG_FURN_1.htm new file mode 100644 index 0000000..b4019e2 --- /dev/null +++ b/guidelines/ASM/test_L4_LSG_FURN_1.htm @@ -0,0 +1,23151 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML xmlns:v = "urn:schemas-microsoft-com:vml" xmlns:o =
+"urn:schemas-microsoft-com:office:office" xmlns:p =
+"urn:schemas-microsoft-com:office:powerpoint" xmlns:w =
+"urn:schemas-microsoft-com:office:word"><HEAD><TITLE></TITLE>
+<META http-equiv=Content-Type content="text/html; charset=windows-1252">
+<META content=5.4 name=DisplayVersion-PS>
+<META content="Create a blank HMIWeb display." name=HMIWebTemplateDescription>
+<STYLE>v\:* {
+ BEHAVIOR: url(#default#VML)
+}
+o\:* {
+ BEHAVIOR: url(#default#VML)
+}
+p\:* {
+ BEHAVIOR: url(#default#VML)
+}
+w\:* {
+ BEHAVIOR: url(#default#VML)
+}
+.shape {
+ BEHAVIOR: url(#default#VML)
+}
+</STYLE>
+
+<OBJECT id=HDXPageBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:56144F51-84F2-11D3-8114-00C04F68E0F9></OBJECT>
+<OBJECT id=HDXVectorFactory
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:45A29A51-418F-11D4-816B-00C04F68E0F9></OBJECT>
+<OBJECT id=HDXAlphaBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:00FD97E5-43FE-11D3-964E-00609738C4CB></OBJECT>
+<OBJECT id=HDXPushButtonBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:ACB6C25A-20A8-11D4-B86C-00C04F6022AA></OBJECT>
+<OBJECT id=HSCComboboxBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:87E1DD39-48A6-4188-95F5-26ECF7D6493B></OBJECT>
+<OBJECT id=HSCCheckBoxBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:65CF3A90-0165-4CAE-8DF2-6242FA186238></OBJECT>
+<OBJECT id=HSCIndicatorBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:ABAAEE25-63F3-4F67-9C1C-0AC96A186A73></OBJECT>
+<OBJECT id=HoverBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:51A1B6EC-7507-4A0B-A06D-5FA2742F033D></OBJECT>
+<OBJECT id=HDXPopupBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:034DB16E-AE01-11D3-BE8D-00C04F7915FE></OBJECT>
+<OBJECT id=BindingBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:31C15D64-63ED-11D3-80D0-00C04F6847A2></OBJECT>
+<OBJECT id=HSCShapeLinkBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:0A7E026C-957B-4548-9BB7-7835EF5F8D4D></OBJECT>
+<OBJECT id=HSCActiveXDocumentBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:A4FE97D2-5EC5-4273-A00F-88D8447A0D9A></OBJECT>
+<OBJECT id=HSCBreakpointBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:43C8EF2D-9001-43BA-9ECA-82818E8281D5></OBJECT>
+<OBJECT id=HDXLevelFillBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:9E860844-C032-46A8-A3F7-FB950475A292></OBJECT>
+<OBJECT id=HDXElementsFactory
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:2592890C-11DD-4818-BB62-9640E4A050D1></OBJECT>
+<OBJECT id=AlarmStateIconFactory
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:32C06040-FF05-4F15-90EB-9C56D098D188></OBJECT>
+<OBJECT id=DTFormat
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:9E5DB1FD-CE13-4459-BA06-30845E6633AB></OBJECT>
+<OBJECT id=HSCScriptDataBehavior
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:15C2FF21-998F-4226-A7A9-221580D5F19F></OBJECT>
+<OBJECT id=StnEvtReflector
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:F5585C3E-DFE6-41A7-98EF-FD6E9547809D></OBJECT>
+<OBJECT id=DisplayDataRepository
+style="LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px"
+codeBase="" classid=clsid:0113964D-CFC2-453a-BA5F-DF740C170064></OBJECT>
+<META content="MSHTML 6.00.5730.11" name=GENERATOR><LINK id=HDXStylesheet
+href=".\..\_CSS\HCS.CSS" type=text/css rel=stylesheet>
+<SCRIPT language=VBScript event=onperiodicupdate for=Page defer>call GSH_ONPERIODIC_FOCUSUPDATEHANDLER</SCRIPT>
+
+<SCRIPT language=VBScript defer>Const PAGE_DISPLAYTYPE = 4
+dim g_PageCurrentFocusTag
+g_PageCurrentFocusTag = ""
+dim g_PageShapesInit
+g_PageShapesInit = 0
+dim g_PageCurrentTagLabelVisible
+g_PageCurrentTagLabelVisible = ""</SCRIPT>
+
+<SCRIPT language=VBScript event=onunload for=Page
+defer> call GSH_PageUnload</SCRIPT>
+
+<SCRIPT language=VBScript event=onpagecomplete for=Page defer>on error resume next
+
+Dim sType2FileName,sType3FileName,sType4FileName
+'****************** To Do Begins ****************************************
+'Enter the type of the graphic. Valid entries are 2/3/4
+ Const DisplayType = 4
+
+' Enter the default display file names in UPPER case without the .HTM extensions e.g sgType2FileName = "CokeDr_T2"
+' If a file doesn't exist, leave blank (e.g. "")
+
+ sType2FileName = "L2_LSG_RXN"
+ sType3FileName = "L3_LSG_FURN"
+ sType4FileName = "L4_LSG_FURN_1"
+
+'****************** To Do Ends ****************************************
+call GSH_initDisplay (DisplayType, sType2FileName, sType3FileName, sType4FileName, me)</SCRIPT>
+</HEAD>
+<SCRIPT language=VBScript event=onmousedown for=shape071_rec_DataScript defer>If (me.parentElement.parentElement.GetCustomProperty(GSH_CPVALUE,GSH_CPDISPLAYLEVEL) = 2) then + If window.event.button = 2 Then call GSH_TYPE2TABRBUTTONCLICK(me.parentElement.parentElement) else call GSH_NAVTAB_LCLICK (me.parentElement.parentElement) end if +Else + call GSH_NAVTAB_LCLICK (me.parentElement.parentElement) +End if</SCRIPT>
+
+<SCRIPT language=VBScript event=onshapeload for=shape001 defer> dim VERSION + VERSION = "1.3.10" + call GSH_PRINT_VERSION(me,VERSION)</SCRIPT>
+
+<SCRIPT language=VBScript id=9AD748A9-63A3-4F20-B029-8144F6FB00EA defer
+shaperefcount="1">'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''' General Script Holder Shape ''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' +' COPYRIGHT (c) 2007, 2008, 2009, 2010 +' Human Centered Solutions, LLP +' +' ALL RIGHTS RESERVED +' +' This software is copyrighted work and the intellectual property of +' Human Centered Solutions, LLP. This software can not be used without +' the expressed written consent of Human Centered Solutions, LLP. +' +' +'Purpose: +' Keeper of constants, functions, sub procedures used +' through out the HCS advanced operator interface displays and shape +' library. +'Standards: +'1. All names of objects in this shape are prefixed with "GSH_" +'2. All constant should be all capital letters +'3. All subroutines/functions related to page display must be put in the "PAGE DISPLAY" section +'4. All subroutines/functions related to faceplate display must be put in the "FACEPLATE DISPLAY" section +'5. All subroutines related to all shapes in general must be put in the "SHAPE GENERAL" section +'6. All subroutines related to SCADA shapes must be put in the "SCADA SPECIFIC" section +'7. All subroutines related to C200 shapes must be put in the "C200 SPECIFIC" section +'8. All subroutines related to TPS shapes must be put in the "TPS SPECIFIC" section +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +''''''''''''''''Debugging tools '''''''''''''''''''''''''''''''''''''''' +'Logging Method Options +'0=None +'1=Msgbox +'2=Logfile at C:\Documents and Settings\All Users\Application Data\Honeywell\HMIWebLog +'3=All of Above +Const GSH_LOGGING_MODE = 2 +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure Log Start '''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' Used to Log Information at the beginning of functions or procedures +' must be implemented in each function or procedure +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub gsh_log_s(txt) + gsh_log "START>" & txt +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure Log End '''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' Used to Log Information at the end of functions or procedures +' must be implemented in each function or procedure +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub gsh_log_e(txt) + gsh_log "END>" & txt +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure Log '''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' Used to Log Information to either the server display log file or +' message boxes (alerts) on the GUI. Uses constants to control behavior +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub gsh_log(txt) +Select Case GSH_LOGGING_MODE + Case 1 + msgbox txt + Case 2 + window.external.Parent.LogMessage txt + Case 3 + window.external.Parent.LogMessage txt + msgbox txt + Case else + Exit sub + End Select +end sub + +'COLORS +Const GSH_EMERGCOLOR = "#FF0000" +Const GSH_HIGHCOLOR = "#FFBE00" +Const GSH_LOWCOLOR = "#C800C8" +Const GSH_PRINCIPLEFOCUSCOLOR = "#00008C" +Const GSH_ASSOCIATEDFOCUSCOLOR = "#C8DCFF" +Const GSH_DISPLAYBKGRNDCOLOR = "#EBEBEB" +Const GSH_OBJECTOUTLINECOLOR = "#AAAAAA" +Const GSH_INDICATORFILLCOLOR = "#E2E2E2" +Const GSH_OFFNORMALCOLOR = "#FF00A8" +Const GSH_DISABLEDALARMCOLOR = "#FF00A8" +Const GSH_NORMALCOLOR = "#B4B4B4" +Const GSH_ALARMOUTLINETHICKNESS = 3 +Const GSH_FOCUSOUTLINETHICKNESS = 2 +Const GSH_OUTLINETHICKNESS = 1 +Const GSH_FILLTRANSPARENT = 1 +Const GSH_FILLSOLID = 0 +Const GSH_LEVELINDICATORFLOATHEIGHT = 15 +'GRAY SCALE +Const GSH_LIGHTGRAYCOLOR = "#B4B4B4" +Const GSH_WHITE = "#FFFFFF" +Const GSH_LIGHTLIGHTGRAYCOLOR = "#E1E1E1" +Const GSH_DARKGRAYCOLOR = "#787878" + +'CSS Styles .... must match hcs.css file +'Focus +Const GSH_CSSFOCUSASSOCIATED = "FocusAssociated" +Const GSH_CSSFOCUSASSOCIATEDTABORGANIZER = "FocusAssociatedTabOrganizer" +'TODO:clean up +Const GSH_CSSFOCUSPRINCIPAL = "FocusPrincipal" +Const GSH_CSSFOCUSNONE = "FocusNone" +Const GSH_CSSFOCUSOFFNORMAL = "FocusOffNormal" +Const GSH_CSS_ALARMDISABLED = "AlarmDisabled" +Const GSH_CSSANALOGINDICATORDISABLEDALARM = "AlarmDisabled" +Const GSH_CSSANALOGINDICATORNORMAL = "AnalogIndicatorNormal" +Const GSH_CSSANALOGINDICATOROFFNORMAL = "AnalogIndicatorOffNormal" +Const GSH_CSSBGALARM_NONE = "BarGraphAlarmNone" +Const GSH_CSSBGALARM_ACKEMERG = "BarGraphAlarmEmergencyAcknowledged" +Const GSH_CSSBGALARM_UNACKEMERG = "BarGraphAlarmEmergencyUnAcknowledged" +Const GSH_CSSBGALARM_UNACKHIGH = "BarGraphAlarmHighUnAcknowledged" +Const GSH_CSSBGALARM_ACKHIGH = "BarGraphAlarmHighAcknowledged" +Const GSH_CSSBGALARM_UNACKLOW = "BarGraphAlarmLowUnAcknowledged" +Const GSH_CSSBGALARM_ACKLOW = "BarGraphAlarmLowAcknowledged" +Const GSH_CSSBGALARM_DISABLED = "BarGraphAlarmDisabled" +Const GSH_CSSMOTORINDICATORDISABLEDALARM = "AlarmDisabled"'"MotorIndicatorDisabledAlarm" +Const GSH_CSSMOTORINDICATORNORMAL = "MotorIndicatorNormal" +Const GSH_CSSMOTOROFF = "MotorIndicatorMotorNotRunning" +Const GSH_CSSMOTORON = "MotorIndicatorMotorRunning" +Const GSH_CSSMINIMOTORINDICATORDISABLEDALARM = "MiniMotorIndicatorDisabledAlarm" +Const GSH_CSSMINIMOTORINDICATORNORMAL = "MiniMotorIndicatorNormal" +Const GSH_CSSLEVELINDICATORDISABLEDALARM = "LevelIndicatorDisabledAlarm" +Const GSH_CSSLEVELINDICATORBADPV = "LevelIndicatorBadPV" +Const GSH_CSSLEVELINDICATORNORMAL = "LevelIndicatorNormal" +Const GSH_CSSLEVELINDICATORFLOAT = "LevelIndicatorFloat" +Const GSH_CSSLEVELINDICATORSP = "LevelIndicatorSP" +Const GSH_CSSLEVELINDICATORBADPVTEXT = "LevelIndicatorBadPVText" +Const GSH_CSSLEVELINDICATORNORMALPVTEXT = "LevelIndicatorNormalPVText" +const GSH_CSSLVLINDICATORSMALLALARMWIDTH="LineWidth2" +Const GSH_CSSDIGITALINDICATORDISABLEDALARM = "AlarmDisabled"'"DigitalIndicatorDisabledAlarm" +Const GSH_CSSDIGITALINDICATORNORMAL = "DigitalIndicatorNormal" +Const GSH_CSSDIGITALINDICATOROFFNORMAL = "DigitalIndicatorOffNormal" +Const GSH_CSSDIGITALOUTPUTINDICATORNORMAL = "DigitalOutputIndicatorNormal" +Const GSH_CSSDIGITALOUTPUTINDICATORDISABLEDALARM = "AlarmDisabled"'"DigitalOutputIndicatorDisabledAlarm" +Const GSH_CSSDIGITALOUTPUTINDICATORDEFAULT = "" +Const GSH_CSSGROUPANALOGNORMAL = "GroupAnalogNormal" +Const GSH_CSSGROUPANALOGDISABLEDALARM = "AlarmDisabled"'"GroupAnalogDisabledAlarm" +Const GSH_CSSGROUPDATAENTRY = "Group_DataEntry" +Const GSH_CSSGROUPDIGITALCOMPOSITEDISABLEDALARM = "AlarmDisabled"'"GroupDigitalCompositeDisabledAlarm" +Const GSH_CSSGROUPDIGITALCOMPOSITENORMAL = "GroupDigitalCompositeNormal" +Const GSH_CSSGROUPDIGITALCOMPOSITEDEFAULT = "" +Const GSH_CSSGROUPDIGITALINPUTDISABLEDALARM = "AlarmDisabled"'"GroupDigitalInputDisabledAlarm" +Const GSH_CSSGROUPDIGITALINPUTNORMAL = "GroupDigitalInputNormal" +Const GSH_CSSGROUPDIGITALINPUTDEFAULT = "" +Const GSH_CSSGROUPORSELDISABLEDALARM = "AlarmDisabled"'"GroupOrselDisabledAlarm" +Const GSH_CSSGROUPORSELNORMAL = "GroupOrselNormal" +Const GSH_CSSGROUPORSELDEFAULT = "" +Const GSH_CSSGROUPREGULATORYCONTROLDISABLEDALARM = "AlarmDisabled"'"GroupRegulatoryControlDisabledAlarm" +Const GSH_CSSGROUPREGULATORYCONTROLNORMAL = "GroupRegulatoryControlNormal" +Const GSH_CSSGROUPREGULATORYCONTROLDEFAULT = "" +Const GSH_CSSNUMERICINDICATORNORMAL = "NumericIndicatorNormal" +Const GSH_CSSREGULATORYCONTROLINDICATORDISABLEDALARM = "AlarmDisabled"' "RegulatoryControlIndicatorDisabledAlarm" +Const GSH_CSSREGULATORYCONTROLINDICATORNORMAL = "RegulatoryControlIndicatorNormal" +Const GSH_CSSVALVEDIGITALOPEN = "ValveDigitalOpen" +Const GSH_CSSVALVEDIGITALCLOSED = "ValveDigitalClosed" +Const GSH_CSSVALVEDIGITALTRAVEL = "ValveDigitalTravel" +Const GSH_CSSVALVEDIGITALDISABLEDALARM = "AlarmDisabled"'"ValveDigitalDisabledAlarm" +Const GSH_CSSVALVEREGULATORYCONTROLSATURATED = "RegulatoryControlValveSaturated" +Const GSH_CSSVALVEREGULATORYCONTROLNORMAL = "RegulatoryControlValveNormal" +Const GSH_CSSREGULATORYCONTROLVALVEOFFNORMAL = "RegulatoryControlValveOffNormal" +Const GSH_CSSTABFOCUSNORMAL = "TabFocusNormal" +Const GSH_CSSTABOUTLINENORMAL = "TabOutlineNormal" +Const GSH_CSSTABORGANIZEROUTLINENORMAL = "TabOrganizerOutlineNormal" +Const GSH_CSSValveOutlineBackground= "ValveOutlineBackground" +Const GSH_CSSANALOGOUTPUTINDICATORNORMAL = "AnalogOutputIndicatorNormal" +Const GSH_CSSSENSORNORMAL = "SensorNormal" +Const GSH_CSSWHITE = "White" +Const GSH_CSSFOCUSNONEOFFNORMAL = "FocusNoneOffNormal" +Const GSH_CSSFIRSTOUT_ON = "FirstOutLineOn" +Const GSH_CSSFIRSTOUT_OFF = "FirstoutLineOff" +Const GSH_CSSMOTOROFFNORMALFILL = "OffNormalLineFill" +Const GSH_CSSFRAMEMF = "FrameMF" 'added 07Jan08 for MF Frames when normal and not in focus +Const GSH_CSSSAFILL = "SituationAwarenessOn" 'added 28May09 for SA Frame color +Const GSH_CSSSSOLOUTOFLIMIT = "SOLOutOfLimit" 'added 14Sept09 for SOL color +Const GSH_CSSSSOLINLIMIT = "SOLWithinLimit" 'added 14Sept09 for SOL color +Const GSH_CSSOFFNORMALLINEFILL = "OffNormalLineFill" 'added 7Dec09 for TPS Bypass Status +Const GSH_CSSNORMALLINEFILL = "NormalLineFill" 'NormalLineFill +Const GSH_CSSLINEUTILITY = "LineUtility" 'added 7Dec09 for TPS Bypass Status + + +'Added Nov 19, 2009 for TPS digital color box +Const GSH_FILLEDREDCOLOR = "FilledRed" +Const GSH_FILLEDGREENCOLOR = "FilledGreen" +Const GSH_FILLEDYELLOWCOLOR = "FilledYellow" + +'Alarms +Const GSH_CSSALARMEMERGENCYACK = "AlarmEmergencyAcknowledged" +Const GSH_CSSALARMHIGHACK = "AlarmHighAcknowledged" +Const GSH_CSSALARMLOWACK = "AlarmLowAcknowledged" +Const GSH_CSSALARMEMERGENCYUNACK = "AlarmEmergencyUnAcknowledged" +Const GSH_CSSALARMHIGHUNACK = "AlarmHighUnAcknowledged" +Const GSH_CSSALARMLOWUNACK = "AlarmLowUnAcknowledged" +Const GSH_CSSALARMNONE = "AlarmNone" +Const GSH_CSSSENSORDISABLEDALARM = "SensorAlarmDisabled" +Const GSH_CSSSENSORALARMEMERGENCYACK = "SensorAlarmEmergencyAcknowledged" +Const GSH_CSSSENSORALARMHIGHACK = "SensorAlarmHighAcknowledged" +Const GSH_CSSSENSORALARMLOWACK = "SensorAlarmLowAcknowledged" +Const GSH_CSSSENSORALARMEMERGENCYUNACK = "SensorAlarmEmergencyUnAcknowledged" +Const GSH_CSSSENSORALARMHIGHUNACK = "SensorAlarmHighUnAcknowledged" +Const GSH_CSSSENSORALARMLOWUNACK = "SensorAlarmLowUnAcknowledged" +Const GSH_CSSSENSORALARMNONE = "SensorAlarmNone" + +'Display Static Objects +Const GSH_CSSFOCUSASSOCIATED_COLOUR = "FocusAssociated_Colour" +Const GSH_CSSBLACK = "Black" +Const GSH_CSSDARK_GRAY = "Dark_Gray" +Const GSH_CSSEQUIPMENT_GRAY = "Equipment_Gray" +Const GSH_CSSLIGHT_GRAY = "Light_Gray" +Const GSH_CSSBACKGROUND_GRAY = "Background_Gray" + +'Custom Properties +'Types of CP's +Const GSH_CPVALUE = "Value" +Const GSH_CPPOINT = "Point" +Const GSH_CPPARAMETER = "Parameter" +'Names of CP's .... the values must match those in each shape +Const GSH_CPPOINTTYPE = "PointType" +Const GSH_CPENTITY = "Entity" +Const GSH_CPGROUPPOINT = "GroupPoint" +Const GSH_CPENTITYALARM = "EntityAlarm" +Const GSH_CPASSOCTYPE2 = "AssocLevel2" +Const GSH_CPASSOCTYPE3 = "AssocLevel3" +Const GSH_CPASSOCTYPE4 = "AssocLevel4" +Const GSH_CPDISPLAYLEVEL = "DisplayLevel" +Const GSH_CPDISPLAYNAME = "DisplayName" +Const GSH_CPTABLABEL = "TabLabel" +Const GSH_CPASSOCLEVEL4 = "AssocLevel4" +Const GSH_CPLABEL = "Label" +const GSH_CPRANGEMAX = "RangeMax" +const GSH_CPRANGEMIN = "RangeMin" +Const GSH_CPHIDEPV = "HidePV" +const GSH_CPSALOWERLIMIT = "LowerSALimit" +const GSH_CPSAUPPERLIMIT = "UpperSALimit" + +Const GSH_CPENTITY_ALARMGROUP = "Entity_AlarmGroup" +Const GSH_CPENTITY_LOWTRIP = "EntityLowTrip" +Const GSH_CPENTITY_HIGHTRIP = "EntityHighTrip" +Const GSH_CPENTITY_SPHI = "Entity_SPHi" +Const GSH_CPENTITY_SPLO = "Entity_SPLo" + +Const GSH_CPENTITY_RES = "Entity_Reset" +Const GSH_CPENTITY_SOR = "Entity_SOR" +Const GSH_CPENTITY_MOS = "Entity_MOS" +Const GSH_CPENTITY_HHFF = "Entity_HH_Fail" +Const GSH_CPENTITY_LLFF = "Entity_LL_Fail" +Const GSH_CPENTITY_HHHTRIP = "Entity_HHH_Trip" +Const GSH_CPENTITY_LLLTRIP = "Entity_LLL_Trip" +Const GSH_CPENTITY_HHTRIP = "Entity_HH_Trip" +Const GSH_CPENTITY_LLTRIP = "Entity_LL_Trip" +Const GSH_CPENTITY_DEVIATION = "Entity_Deviation" + +Const GSH_CPPARAM_RES_PARA = "Entity_Reset_Para" +Const GSH_CPPARAM_SOR_PARA = "Entity_SOR_Para" +Const GSH_CPPARAM_MOS_PARA = "Entity_MOS_Para" +'Const GSH_CPPARAM_HHFF_PARA = "Entity_HH_Fail_Para" +'Const GSH_CPPARAM_LLFF_PARA = "Entity_LL_Fail_Para" +Const GSH_CPPARAM_HHHTRIP_PARA = "Entity_HHH_Trip_Para" +Const GSH_CPPARAM_LLLTRIP_PARA = "Entity_LLL_TRIP_Para" +Const GSH_CPPARAM_HHTRIP_PARA = "Entity_HH_Trip_Para" +Const GSH_CPPARAM_LLTRIP_PARA = "Entity_LL_Trip_Para" +Const GSH_CPPARAM_DEVIATION_PARA = "Entity_Deviation_Para" + +Const GSH_CPPARAM_ENTITY_SPHI_PARA = "Entity_SPHi_Para" +Const GSH_CPPARAM_ENTITY_SPLO_PARA = "Entity_SPLo_Para" + +Const GSH_CPX1 = "X1_Position" +Const GSH_CPX2 = "X2_Position" +Const GSH_CPX3 = "X3_Position" +Const GSH_CPDIVERTMIN = "DivertMin" +Const GSH_CPDIVERTMAX = "DivertMax" +Const GSH_CPTHROUGHMIN = "ThroughMin" +Const GSH_CPTHROUGHMAX = "ThroughMax" +Const GSH_CPINPUTDIRECTION = "InputDirection" +Const GSH_CPJUSTIFYLABEL = "JustifyLabel" + +'Point Types ... the values here are the only possibles for the PointType Custom property +'entered by the display designer at design time. +Const GSH_CPPOINTTYPE_SCADA = "SCADA" +Const GSH_CPPOINTTYPE_TPS = "TPS" +Const GSH_CPPOINTTYPE_C200 = "C200" +Const GSH_CPPOINTTYPE_C300 = "C300" + +'PARAMETERS TEMPLATE IS GSH_'<pointtype>_PARAM_<item>' +Const GSH_EXPERION_PARAM_ALARMPRIORITY= "ALARMPRIORITY" +Const GSH_EXPERION_PARAM_UNACKALARMEXISTS = "UNACKALARMEXISTS" +Const GSH_SCADA_PARAM_ALARMDISABLED = "ALARMDISABLED" +const GSH_SCADA_PARAM_ALARMPRIORITY = "ALARMPRIORITY" +Const GSH_SCADA_PARAM_INITIALIZATION = "INITMAN" +Const GSH_SCADA_PARAM_INTRANSMITTERHIGHALARM = "InTransmitterHighAlarm" +Const GSH_SCADA_PARAM_INTRANSMITTERLOWALARM = "InTransmitterLowAlarm" +Const GSH_SCADA_PARAM_INUNREASONABLYHIGHALARM = "InUnreasonablyHighAlarm" +Const GSH_SCADA_PARAM_INUNREASONABLYLOWALARM = "InUnreasonablyLowAlarm" +Const GSH_SCADA_PARAM_MODATTR = "MODATTR" +Const GSH_SCADA_PARAM_MODE = "MODE" +Const GSH_SCADA_PARAM_MODEINERROR = "ModeInError" +Const GSH_SCADA_PARAM_PVINERROR = "PVInError" +Const GSH_SCADA_PARAM_PVSOURCE = "PVSOURCE" +Const GSH_SCADA_PARAM_PVTVINERROR = "PVTVInError" +Const GSH_SCADA_PARAM_OPINERROR = "OutputInError" +Const GSH_SCADA_PARAM_RAMP = "TVPROC" +Const GSH_SCADA_PARAM_REDTAG = "REDTAG" +Const GSH_SCADA_PARAM_SHUTDOWN = "SHUTDOWN" +Const GSH_SCADA_PARAM_SPINERROR = "SetPointInError" +Const GSH_SCADA_PARAM_SSTSMSG = "STSMSG" +Const GSH_SCADA_PARAM_TOTALDISABLEDALARMS ="TOTALDISABLEDALARMS" +const GSH_SCADA_PARAM_UNACKALARMEXISTS = "UNACKALARMEXISTS" +Const GSH_SCADA_PARAM_WINDUP = "ARWOP" +Const GSH_TPS_PARAM_ALARM_ACKNOWLEGED = "ACKSTAT" +Const GSH_TPS_PARAM_ALARM_ENABLED = "ALENBST" +Const GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY = "HIGHALPR" +Const GSH_TPS_PARAM_INITIALIZATION = "INITMAN" +Const GSH_TPS_PARAM_MODATTR = "MODATTR" +Const GSH_TPS_PARAM_MODE = "MODE" +Const GSH_TPS_PARAM_PVINERROR = "PVInError" +Const GSH_TPS_PARAM_PVSOURCE = "PVSOURCE" +Const GSH_TPS_PARAM_RAMP = "TVPROC" +Const GSH_TPS_PARAM_RAMPOPTION ="SPOPT" +Const GSH_TPS_PARAM_RAMPTARGETVALUE = "SPTV" +Const GSH_TPS_PARAM_RAMPTIMEVALUE = "RAMPTIME" +Const GSH_TPS_PARAM_REDTAG = "REDTAG" +Const GSH_TPS_PARAM_SHUTDOWN = "SHUTDOWN" +Const GSH_TPS_PARAM_STATUSMESSAGE = "STSMSG" +Const GSH_TPS_PARAM_TOTALDISABLEDALARMS = "TOTALDISABLEDALARMS" +Const GSH_TPS_PARAM_WINDUP = "ARWOP" +Const GSH_TPS_PARAM_ALARMMSG = "HIGHAL" +Const GSH_C200_PARAM_ALARMDISABLED = "ALMENBSTATE" +Const GSH_C200_PARAM_ALARMMSG ="HIALM.TYPE" +Const GSH_C200_PARAM_BADPVFL = "PVSTSFL.BAD" +Const GSH_C200_PARAM_MODEATTR = "MODEATTR" +Const GSH_C200_PARAM_PVSOURCE = "PVSource" +Const GSH_C200_PARAM_RAMPOPTION ="SPTVOPT" +Const GSH_C200_PARAM_RAMPTIMEVALUE = "SPTVTIME" +Const GSH_C200_PARAM_RAMPTARGETVALUE = "SPTV" +Const GSH_C200_PARAM_WINDUP = "ARWOP" + +Const GSH_CPPARAM_BADMODE = "CP_BADMODE" +Const GSH_CPPARAM_BADOP = "CP_BADOP" +Const GSH_CPPARAM_BADPV = "CP_BadPV" +Const GSH_CPPARAM_BADPVTV = "CP_BADPVTV" +Const GSH_CPPARAM_BADSP = "CP_BADSP" +Const GSH_CPPARAM_HIGHTRIP = "CP_HighTripPV" +Const GSH_CPPARAM_INITIALIZATION = "CP_INITIALIZATION" +Const GSH_CPPARAM_LOWTRIP = "CP_LowTripPV" +Const GSH_CPPARAM_MODATTR = "CP_MODATTR" +Const GSH_CPPARAM_MODE = "CP_Mode" +Const GSH_CPPARAM_MODEATTR = "CP_MODEATTR" +Const GSH_CPPARAM_OFFNORMAL = "CP_OFFNORMAL" +Const GSH_CPPARAM_OP = "CP_OP" +Const GSH_CPPARAM_PV = "CP_PV" +Const GSH_CPPARAM_PVTV = "CP_PVTV" +Const GSH_CPPARAM_RAMP = "CP_RAMP" +Const GSH_CPPARAM_REDTAG = "CP_RedTag" +Const GSH_CPPARAM_STSMSG = "CP_STSMSG" +Const GSH_CPPARAM_SELINPUT = "CP_SELINPUT" +Const GSH_CPPARAM_SELOUT = "CP_SELOUT" +Const GSH_CPPARAM_SHUTDOWN = "CP_SHUTDOWN" +Const GSH_CPPARAM_SP = "CP_SP" +Const GSH_CPPARAM_SPHIGH = "CP_SPHIGH" +Const GSH_CPPARAM_SPLOW = "CP_SPLOW" +Const GSH_CPPARAM_STATUSMSG = "CP_STATUSMSG" +Const GSH_CPPARAM_VLV1 = "CP_VLV1" +Const GSH_CPPARAM_VLV2 = "CP_VLV2" +Const GSH_CPPARAM_WINDUP = "CP_WINDUP" +Const GSH_CPPARAM_LOCALMAN = "CP_LOCALMAN" +Const GSH_CPPARAM_INTERLOCK = "CP_INTERLOCK" +Const GSH_CPPARAM_IP1 = "CP_IP1" +Const GSH_CPPARAM_IP2 = "CP_IP2" +Const GSH_CPPARAM_IP3 = "CP_IP3" +Const GSH_CPPARAM_IP4 = "CP_IP4" +Const GSH_CPTRENDDIR="TrendDir" +'Added for showing alarm lines on C200 SA levels (May 29 2009, CL) +Const GSH_CPPARAM_AlarmPriority1 = "CP_AlarmPriority1" +Const GSH_CPPARAM_AlarmPriority2 = "CP_AlarmPriority2" +Const GSH_CPPARAM_AlarmPriority3 = "CP_AlarmPriority3" +Const GSH_CPPARAM_AlarmPriority4 = "CP_AlarmPriority4" +Const GSH_CPPARAM_AlarmLimit1 = "CP_AlarmLimit1" +Const GSH_CPPARAM_AlarmLimit2 = "CP_AlarmLimit2" +Const GSH_CPPARAM_AlarmLimit3 = "CP_AlarmLimit3" +Const GSH_CPPARAM_AlarmLimit4 = "CP_AlarmLimit4" + +Const GSH_EXPECTEDVAL1 = "CP_ExpectedVal1" +Const GSH_EXPECTEDVAL2 = "CP_ExpectedVal2" + +Const GSH_SCADA_INITIALIZATION_VALUE = -1 +Const GSH_TPS_INITIALIZATION_VALUE = -1 +Const GSH_WINDUP_HI = "HI" +Const GSH_WINDUP_LO = "LO" +Const GSH_WINDUP_HILO = "HILO" +Const GSH_WINDUP_INIT = "INITIALIZATION" +Const GSH_WINDUP_NONE = "NONE" +Const GSH_RAMPING_RUN = "RUN" +Const GSH_RAMPING_PRESET = "PRESET" +Const GSH_RAMPING_NONE = "OFF" +Const GSH_CAS = "CAS" +Const GSH_AUTO = "AUTO" +Const GSH_MAN = "MAN" +Const GSH_OFF = "OFF" +Const GSH_PRESET = "PRESET" +Const GSH_RUN = "RUN" +Const GSH_PROCESSVALUE = "PV" +Const GSH_SETPOINTVALUE = "SP" +Const GSH_OUTPUTVALUE = "OP" +Const GSH_OPHI = "OPHI" 'Added 03Jan2008 - JE for Scada_AO_fp +Const GSH_OPLO = "OPLO" 'Added 03Jan2008 - JE for Scada_AO_fp +Const GSH_PVTVVALUE = "PVTV" +const GSH_MODEVALUE = "MODE" +Const GSH_RAMPVALUE = "SPTV" +Const GSH_INTERLOCK = "SI" +Const GSH_LOCALMAN = "LOCALMAN" +Const GSH_F1_1 = "F1_1" +Const GSH_F1_0 = "F1_0" +Const GSH_F2_1 = "F2_1" +Const GSH_F2_0 = "F2_0" +Const GSH_F3_1 = "F3_1" +Const GSH_F3_0 = "F3_0" +Const GSH_F4_1 = "F4_1" +Const GSH_F4_0 = "F4_0" +'Const GSH_RAMPTARGETVALUE = "SPTV" 'REPLACED BY GSH_C200_PARAM_RAMPTARGETVALUE Apr 18 +'Const GSH_RAMPTIMEVALUE = "SPTVTIME" 'REPLACED BY GSH_C200_PARAM_RAMPTIMEVALUE Apr 18 +'Const GSH_RAMPSTATUSVALUE = "SPTVSTATE" 'not used? + +'ALARMS + +'Alarm Code +Const GSH_NOALARMCODE = "NONE" +Const GSH_ACKLOW = "ACKLOW" +Const GSH_ACKHIGH = "ACKHIGH" +Const GSH_ACKEMERG = "ACKEMERGENGY" +Const GSH_UNACKLOW = "UNACKL0W" +Const GSH_UNACKHIGH = "UNACKHIGH" +Const GSH_UNACKEMERG = "UNACKEMERGENGY" + +const GSH_NOACTION = "NOACTION" +const GSH_EMERGENCY = "EMERGNCY" +const GSH_HIGH = "HIGH" +const GSH_LOW = "LOW" +Const GSH_ON = "ON" +const GSH_NONE = "NONE" +Const GSH_EMPTYSTRING = "" + +const GSH_NOALARM = "NOALARM" +const GSH_UNAKALRM = "UNAKALRM" +const GSH_AKDALRM = "AKDALRM" + +Const GSH_ALARMLIM1 = "alarmlimit1" +Const GSH_ALARMLIM2 = "alarmlimit2" +Const GSH_ALARMLIM3 = "alarmlimit3" +Const GSH_ALARMLIM4 = "alarmlimit4" +Const GSH_ALARMTYPE1 = "alarmtype1" +Const GSH_ALARMTYPE2 = "alarmtype2" +Const GSH_ALARMTYPE3 = "alarmtype3" +Const GSH_ALARMTYPE4 = "alarmtype4" +Const GSH_ALARMPRI1 = "alarm1priority" +Const GSH_ALARMPRI2 = "alarm2priority" +Const GSH_ALARMPRI3 = "alarm3priority" +Const GSH_ALARMPRI4 = "alarm4priority" + +Const GSH_EUHI = "EUHI" +Const GSH_EULO = "EULO" +Const GSH_PVEUHI = "PVEUHI" +Const GSH_PVEULO = "PVEULO" + +Const GSH_TOTALLOWACKALARMS = "TOTALLOWACKALARMS" +Const GSH_TOTALHIGHACKALARMS = "TOTALHIGHACKALARMS" +Const GSH_TOTALURGENTACKALARMS = "TOTALURGENTACKALARMS" +Const GSH_TOTALLOWUNACKALARMS = "TOTALLOWUNACKALARMS" +Const GSH_TOTALHIGHUNACKALARMS = "TOTALHIGHUNACKALARMS " +Const GSH_TOTALURGENTUNACKALARMS = "TOTALURGENTUNACKALARMS" + +'REMOVED CAUSE NOT USED +'const GSH_DISABLED = "ALARM DISABLED" +'const GSH_ENABLED = "ALARM ENABLED" +Const GSH_ENABLE = "ENABLE" +const GSH_BADDATA = "BADDATA" +const GSH_GOODDATA = "GOODDATA" +Const GSH_TRUE = "true" +Const GSH_FALSE = "false" + +'Registy +Const GSH_REGISTRY_BASE = "HKCU\SOFTWARE\HCS\" +Const GSH_REGISTRY_DISPLAYNAMES = "DisplayNames\" +Const GSH_REGISTRY_DISPLAYINFO = "DisplayInformation\" +Const GSH_REGISTRY_DISPLAYCOMM = "HMIDisplay\DisplayCommunication\" +Const GSH_REGISTRY_LOG = "HMIDisplay\Log\" +Const GSH_REGISTRY_OPDEVMONITOR="OPDevMonitor\" +Const GSH_REGISTRY_DEMANDTRD = "HKCU\SOFTWARE\Matrikon\Operator Trend\DemandTrend\" +Const GSH_REGISTRY_SETTINGS = "Settings" +Const GSH_REGISTRY_MENUCONFIG = "MenuConfig\" +Const GSH_REGISTRY_MENUCONFIG_EQUIPMENT = "MenuConfig_Equipment\" +Const GSH_REGISTRY_TAGINFORMATION = "TagInformation\" +Const GSH_REGISTRY_FACEPLATE_TAGS = "HMIDisplay\FaceplateTags\" +Const GSH_REGISTRY_OPERATORTREND = "HKCU\SOFTWARE\Matrikon\Operator Trend\" +Const GSH_REGISTRY_DETAILTREND = "HKCU\SOFTWARE\Matrikon\Operator Trend\DetailTrend\" +Const GSH_REGISTRY_TRENDCONFIG = "HKCU\SOFTWARE\Matrikon\Operator Trend\TrendConfig\" +Const GSH_REGISTRY_STSMSGLISTS = "StatusMessage\" + +Const GSH_REGKEY_ACTIVE = "Active" +Const GSH_REGKEY_AUTOSCALE = "AUTOSCALE" + +'10/06/2008 (CL) +Const GSH_REGKEY_TREND_RANGE_HIGH = "TREND_RANGE_HIGH" +Const GSH_REGKEY_TREND_RANGE_LOW = "TREND_RANGE_LOW" + +Const GSH_REGKEY_CMDSTR = "CmdDspStr" +Const GSH_REGKEY_CMDSTRING = "Command" +Const GSH_REGKEY_FACEPLATE_CURRENT = "current" +Const GSH_REGKEY_FACEPLATE_PRIOR = "prior" +Const GSH_REGKEY_FPPAGEDELAY = "FaceplateFocusUpdateDelay" +Const GSH_REGKEY_FPPAGEDELAY_DEFAULTMS = "3000" +Const GSH_REGKEY_DEMANDTREND = "DemandTrend" +Const GSH_REGKEY_DEMANDTRENDPREV = "DemandTrendPrevious" +Const GSH_REGKEY_DESCR = "Description" +Const GSH_REGKEY_DISPLAYLOC = "DisplayLocation" +Const GSH_REGKEY_FacePlateFN = "faceplateFileName" +Const GSH_REGKEY_FOCUSTAG = "FocusTag" +Const GSH_REGKEY_HDAPATH = "HDA_ITEM_PATH" +'Added 08/21/2008 (CL) to work with Sasol PHD historian interface +'Issue#21: http://wss-edm-1/clients/hcs/services/ISE-HCS8227/ClientProjectAccess/Lists/Issue%20Tracker/DispForm.aspx?ID=21 +Const GSH_REGKEY_USESHORTNAME_FOR_HDAPATH = "USE_SHORTNAME_FOR_HDA_ITEMPATH" +Const GSH_REGKEY_ITEMALIAS = "ITEM_ALIAS" +Const GSH_REGKEY_KEYWORD= "Keyword" +Const GSH_REGKEY_LEVELPAGEDELAY = "LevelPageFocusUpdateDelay" +Const GSH_REGKEY_LEVELPAGEDELAY_DEFAULTMS = "500" +Const GSH_REGKEY_NMODATTR = "NMODATTR" +Const GSH_REGKEY_NMODE = "NMODE" +Const GSH_REGKEY_NUMCMDS = "NoofCommands" +Const GSH_REGKEY_NUMOFT3 = "NumberOfType3" +Const GSH_REGKEY_NUMTRENDPARAMS = "NoOfTrendingParams" +Const GSH_REGKEY_OPCKEY1PREFIX = "OPC_KEY_1_PREFIX" +Const GSH_REGKEY_OPCKEY2PREFIX = "OPC_KEY_2_PREFIX" +Const GSH_REGKEY_OPCITEMPATH = "OPC_ITEM_PATH" +Const GSH_REGKEY_OPC2ITEMPATH = "OPC2_ITEM_PATH" +Const GSH_REGKEY_PATHPREFIX = "PATHPREFIX" +Const GSH_REGKEY_PRIORT3 = "PriorType3" +Const GSH_REGKEY_PRIORT4 = "PriorType4" +Const GSH_REGKEY_PVNORMAL_STATE = "PVNormalState" +Const GSH_REGKEY_OPNORMAL_STATE = "OPNormalState" +Const GSH_REGKEY_PV_NORMAL_STATE = "PVNormalState" +Const GSH_REGKEY_SA_STATE = "SAState" +Const GSH_REGKEY_SOL_HI = "SOLHILimit" +Const GSH_REGKEY_SOL_LO = "SOLLOLimit" +Const GSH_REGKEY_OP_NORMAL_STATE = "OPNormalState" +Const GSH_REGKEY_T1FN = "Type1FileName" +Const GSH_REGKEY_T2FN = "Type2FileName" +Const GSH_REGKEY_T3FN = "Type3FileName" +Const GSH_REGKEY_T4FN = "Type4FileName" +Const GSH_REGKEY_TagFacePlate = "faceplate" +Const GSH_REGKEY_TAGFAM = "TagFamily" +Const GSH_REGKEY_TAGDESCRIPTION = "TagDescription" +Const GSH_REGKEY_TAGEUDESC = "EUDESC" +Const GSH_REGKEY_TAGNAME_ALIAS = "TagName_Alias" +Const GSH_REGKEY_TAGNAMEHDA = "TagName_HDA" +Const GSH_REGKEY_TRENDPARAM = "TrendParam" + +'10/06/2008 (CL) +Const GSH_REGKEY_EUHIGH = "EUHIGH" +Const GSH_REGKEY_EULOW = "EULOW" + +Const GSH_REGKEY_TRENDSTEPPED = "Stepped" +Const GSH_REGKEY_TRENDTRACE = "Trace_" +Const GSH_REGKEY_TREND_YMAX = "Y_MAX" +Const GSH_REGKEY_TREND_YMIN = "Y_MIN" +Const GSH_REGKEY_USET4 = "UseT4Default" +Const GSH_REGKEY_UNITS = "EUDesc" +Const GSH_REGKEY_SAME_SATELLITE_LINK = "SAME_SATELLITE_LINK" + +Const GSH_REGKEY_STSMSGLIST = "StsMsgList" +Const GSH_REGKEY_STATUSMESSAGE = "StatusMessage" +Const GSH_REGKEY_TAGNAMELABLESTATUS = "TagNameLabelVisibilityStatus" + +'registry key for OPDevMonitor shapes +Const GSH_REGKEY_OPDEVMON_NOOFOP="NoOfOPs" +Const GSH_REGKEY_OPDEVMON_DEADBAND="DeadBand" +Const GSH_REGKEY_OPDEVMON_FILTER="Filter" +Const GSH_REGKEY_OPDEVMON_RESETDATE="ResetDate" +Const GSH_REGKEY_OPDEVMON_RESETTIME="ResetTime" +Const GSH_REGKEY_OPDEVMON_DIFF_OLD="Diff_Old" +Const GSH_REGKEY_OPDEVMON_ENTITY="Entity" +Const GSH_REGKEY_OPDEVMON_OPPARAMETER="OPParameter" +Const GSH_REGKEY_OPDEVMON_OPREFVAL="OPRefVal" + +'TODO - CHANGE KEY BELOW FORMAT +Const GSH_PVFORMATKEY = "PVFORMAT" + +Const GSH_DISPLAYDEFAULT_LOC = "" +Const GSH_BINARY = "REG_BINARY" +Const GSH_TEXT = "REG_SZ" +Const GSH_DWORD = "REG_DWORD" +Const GSH_DISPLAYFILEEXTENSION = ".htm" +'Const GSH_CSSTAGNAMELABEL = "TagNameLabel" + +'Station Data Repository +Const GSH_SDR_CURRENTPOINT = "CurrentPoint" +Const GSH_SDR_INTERIMPOINT = "InterimPoint" +' +Const GSH_DEFAULTPVFORMAT = "D1" +Const GSH_DEFAULT_NULL = "default null" +Const GSH_NOT_IMPLEMENTED = "Not Implemented" +'Shape Library Constants - do not modify +Const GSH_SHAPEPREFIX = "shape" 'used when comparing against the prefix of objects on displays +Const GSH_GSHShapeName = "shapegsh" 'name of General Script holder shape, in order to omit on reloading +Const GSH_HIDDEN = "hidden" 'used in object visibility property of any object +Const GSH_VISIBLE = "visible" 'used in object visibility property of any object + +Const GSH_SVIEW_TYPE2 = "Level2Display" +Const GSH_SVIEW_TYPE3 = "Level3Display" +Const GSH_SVIEW_TYPE4 = "Level4Display" +Const GSH_GRPSCRIPT_OBJNAME = "rec_DataScript" + +'Specific to Regulator Control Indicator +Const GSH_REGULATORYCONTORLINDICATOR_RUN = "R" +Const GSH_REGULATORYCONTORLINDICATOR_PRESET = "P" +Const GSH_MODE_AUTO_TEXT_INDICATOR = "A" +Const GSH_MODE_MAN_TEXT_INDICATOR = "M" +Const GSH_MODE_CASC_TEXT_INDICATOR = "C" +Const GSH_MODE_BCAS_TEXT_INDICATOR = "B" +Const GSH_MODE_COMP_TEXT_INDICATOR = "P" +Const GSH_MODE_AUTO = "AUTO" +Const GSH_MODE_MAN = "MAN" +Const GSH_MODE_CASC = "CASC" +Const GSH_MODE_BCAS = "BCAS" +Const GSH_MODE_COMP = "COMP" + +Const GSH_INTERLOCK_TXT = "I" +Const GSH_LOCALMAN_TXT = "L" + +'Specific to Digital Valve +Const GSH_VALVEDIGITALOFFNORMAL = "ValveDigitalOffNormal" +Const GSH_VALVEDIGITALPOSITION_OPEN = "OPEN" +Const GSH_VALVEDIGITALPOSITION_CLOSED = "CLOSED" +Const GSH_VALVEDIGITALPOSITION_TRAVEL = "TRAVEL" + +'Specific to Valve +Const GSH_TRAVEL = "TRAVEL" +Const GSH_MOVING = "MOVING" +Const GSH_MOVING_TEXT = "MOVING" +Const GSH_REDTAG = "REDTAG" +Const GSH_REDTAG_TEXT = "REDTAG" +Const GSH_HANDJACK = "HANDJACK" +Const GSH_HANDJACK_TEXT = "HANDJK" +Const GSH_ISOLATED = "ISOLATED" +Const GSH_ISOLATED_TEXT = "ISOLATD" +Const GSH_BADPV = "BadPV" +Const GSH_SHUTDOWN_TEXT_MESSAGE = "S/D" +Const GSH_BYPASSED = "BYPASSED" +Const GSH_BYPASSED_TEXT_MESSAGE = "BYPASS" +Const GSH_MODE_PROGRAM = "PROGRAM" +Const GSH_MODE_PROGRAM_TEXT = "P-" +const GSH_PVNORMALSTATE_OFFNORMAL = "NONE" +Const GSH_ALLOWOPEDIT_MODE = "MAN" +Const GSH_ALLOWSPEDIT_MODE = "AUTO" +Const GSH_BADPV_TEXT = "---" +Const GSH_BADOP_TEXT = "---" +Const GSH_BADMODE_TEXT = "---" +Const GSH_BADPVTV_TEXT = "---" +Const GSH_NODATA = "1.#QNAN" +Const GSH_LEVELINDICATORDECIMALS = 1 +Const GSH_OUTPUTINDICATORDECIMALS = 1 +Const GSH_SELX1 = 1 +Const GSH_SELX2 = 2 +Const GSH_SELX3 = 3 +Const GSH_CPIN1 = "IN1_Position" +Const GSH_CPIN2 = "IN2_Position" +Const GSH_SELIN1 = "Off" +Const GSH_SELIN2 = "On" +Const GSH_LEFT = "LEFT" +Const GSH_RIGHT = "RIGHT" +Const GSH_CENTER = "CENTER" + +'Groups Timeout (Seconds) +Const GSH_GroupTimeout = 10 + +'Faceplates +Const GSH_FacePlateTagNameTimeout = 10 +'Const GSH_FPTIMEOUT = 7 +'10/01/2008 Changed to 12 to give operator more time as requested by Sasol (CL) +Const GSH_FPTIMEOUT = 12 +Const GSH_FP_TAGNAMEENTRY_TIMEOUT = 20 +Const GSH_DETAILTRENDUPDATEPERIOD_SECS = 5 +Const GSH_FP_SHOWNAMESBTNUPDATEPERIOD_SECS = 10 +Const GSH_FP_DEFAULTFACEPLATE = "GENERAL_FP" +Const GSH_FP_PVHH = 9 +Const GSH_FP_PVHH_LABEL = "HiHi" +Const GSH_FP_PVH = 7 +Const GSH_FP_PVH_LABEL = "Hi" +Const GSH_FP_PVL = 6 +Const GSH_FP_PVL_LABEL = "Lo" +Const GSH_FP_PVLL = 8 +Const GSH_FP_PVLL_LABEL = "LoLo" + +'Global Variables + +dim GSH_DetailTrendUpdateTimerId +dim GSH_GroupTimerId +dim GSH_FPTimerId +dim GSH_FP_ShowNamesBtnTimerId +dim changeOP,mode,mdfcs,countOP,countSP, IgnoreServerDelects +dim g_PageLoadCompleted +dim g_PageLoadTimerID + +changeOP=false +mode=100 +mdfcs=true +countOP=0 +countSP=0 +SpHitLimit = 0 +RiseUpDown = 0 +IgnoreServerDelects = 0 +g_PageLoadCompleted = false + +Const GSH_C200_DEVCTLA_STATENUMOFFSET = 4 + +'Used for all Digital Shapes +Const GSH_STATETXT_DOESNOTEXIST_LBL = "---" + +'Test: Make WshShell create once on page load. +'Will remove it at onpageunload +dim WshShell +set WshShell = CreateObject("WScript.Shell") + +sub GSH_PageUnload + set WshShell = Nothing +end sub +'-------------------------------------START SHAPE GENERAL----------------------------------------------' +' .oooooo. oooo +'d8P' `Y8b `888 +'888 .ooooo. ooo. .oo. .ooooo. oooo d8b .oooo. 888 +'888 d88' `88b `888P"Y88b d88' `88b `888""8P `P )88b 888 +'888 ooooo 888ooo888 888 888 888ooo888 888 .oP"888 888 +'`88. .88' 888 .o 888 888 888 .o 888 d8( 888 888 +' `Y8bood8P' `Y8bod8P' o888o o888o `Y8bod8P' d888b `Y888""8o o888o +'------------------------------------------------------------------------------------------------------- +'''''''''''''''''''''''''''''''''''''''''''''''''' +' Error handling function +' How to use: +' sub/function sub/functionName(args) +' on error resume next +' ...........do something. +' if Err then +' call GSH_SHAPE_ERROR_HANDLING("sub/functionName",oShape) +' end if +' end sub/function +' +'''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHAPE_ERROR_HANDLING(subName,oShape) + oShape.title = "Shape contains Error. Please check log file for details" + gsh_log("ERROR: " &Err.description &" at " &subName &" for " &oShape.id) + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL +' msgbox("ERROR: " &Err.description &" at " &subName &" for " &oShape.id) + Err.clear +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''' +' Error handling function +' How to use: +' sub/function sub/functionName(args) +' on error resume next +' ...........do something. +' if Err then +' call GSH_ERROR_HANDLING("sub/functionName") +' end if +' end sub/function +' +'''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_ERROR_HANDLING(subName) + gsh_log("ERROR: " &Err.description &" at " &subName) + Err.clear +end sub +'''''''''''''''''''''''''''''''''''''''''' +'GSH_PRINT_VERSION +' Require +'''''''''''''''''''''''''''''''''''''''''' +sub GSH_PRINT_VERSION(oShape, versionString) +on error resume next + dim tempString, strRegLocation, tempReturn + strRegLocation = GSH_REGISTRY_BASE & GSH_REGISTRY_LOG & "VERSION_LOG" + tempString = GSH_READREGISTRY(strRegLocation,defaultString) + If(StrComp(tempString,"On",vbtextcompare) = 0) then + gsh_log("VERSION> shapeID = " &oShape.id &", Shape File = " &oShape.src &" version_" &versionString) + end if + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_PRINT_VERSION",oShape) + end if +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_SETTOOLTIP''''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape - object whose tool tip is being set +'Action: Determines if the custom property Entity exists. Sets the Tag +' name alias as the tool tip, but if the alias does not exist then +' displays tagname as tool tip +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SETTOOLTIP(oShape) + dim sEntityPoint + sEntityPoint = UCASE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY)) + if strcomp(sEntityPoint, "", vbtextcompare) <> 0 then + oShape.title = GSH_READTAGINFORMATIONKEYVALUE(sEntityPoint, GSH_REGKEY_TAGNAME_ALIAS, sEntityPoint) + end if +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Read Registry'''''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' strRegLocation - Path of Registry Item +' defaultString - Default Value if error of nothing found +'Returns: +' value of registry item or parameter of defaultString +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_READREGISTRY(strRegLocation, defaultString) +'gsh_log_s("GSH_READREGISTRY strRegLocation=" & strRegLocation & ",defaultString=" & defaultString) +on error resume next +' dim WshShell, + dim tempString, tempReturn +' set WshShell = CreateObject("WScript.Shell") + tempString = WshShell.RegRead (cstr(strRegLocation)) + if strcomp(tempString,"",vbtextcompare)=0 or tempString = null then + tempReturn = defaultString + else + tempReturn = tempString + End If +' set WshShell = Nothing + GSH_READREGISTRY = tempReturn + + +'gsh_log_e("GSH_READREGISTRY returning >>>" & tempReturn&"<<< Time <<" &RegistryReadTime) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: Write toRegistry'''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' strRegLocation - Path of Registry item +' strValue - Registry item value +' strType - type of Registry item (use constants defined: GSH_BINARY, GSH_TEXT,GSH_DWORD) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_WRITETOREGISTRY(strRegLocation,strValue,strType) +'gsh_log_s("GSH_WRITETOREGISTRY " & "strRegLocation=" & strRegLocation & ",strValue=" & strValue & ",strType=" & strType ) + +' dim WshShell +' set WshShell = CreateObject("WScript.Shell") + WshShell.RegWrite cstr(strRegLocation), cstr(strValue), cstr(strType) +' set WshShell = Nothing +'gsh_log_e("GSH_WRITETOREGISTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Read Tag Information Key Value'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' strTagName - Part of path to Registry Item in "TagInformation" +' strKey - Part of path to Registry Item +' defaultString - Default Value if error or nothing found +'Returns: +' value of registry item or parameter of defaultString +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_READTAGINFORMATIONKEYVALUE(strTagName, strKey, defaultString) +'gsh_log_s("GSH_READTAGINFORMATIONKEYVALUE" & " strTagName=" & strTagName & ",strKey=" & strKey & ",defaultString=" & defaultString) +on error resume next + dim tempString, strRegLocation, tempReturn + strRegLocation = GSH_REGISTRY_BASE & "TagInformation\" &strTagName & "\" & strKey +' gsh_log ("GSH_READTAGINFORMATIONKEYVALUE checkPoint strRegLocation=" & strRegLocation) + tempString = GSH_READREGISTRY(strRegLocation,defaultString) + if strcomp(tempString,"",vbtextcompare)=0 then + tempReturn = defaultString + else + tempReturn = tempString + End If + GSH_READTAGINFORMATIONKEYVALUE = tempReturn +'gsh_log_e("GSH_READTAGINFORMATIONKEYVALUE returning >>> " & tempReturn&"<<<" ) +end function +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Read Display Information Key Value'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' strTagName - Part of path to Registry Item in "TagInformation" +' strKey - Part of path to Registry Item +' defaultString - Default Value if error or nothing found +'Returns: +' value of registry item or parameter of defaultString +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_READDISPLAYINFO(strTagName, strKey, defaultString) +'gsh_log_s("GSH_READDISPLAYINFO" & " strTagName=" & strTagName & ",strKey=" & strKey & ",defaultString=" & defaultString) + dim tempString, strRegLocation, tempReturn + strRegLocation = GSH_REGISTRY_BASE & GSH_REGISTRY_DISPLAYINFO &strTagName & "\" & strKey + 'gsh_log("GSH_READDISPLAYINFO checkPoint strRegLocation=" & strRegLocation) + tempString = GSH_READREGISTRY( strRegLocation,defaultString) + if tempString = "" then + tempReturn = defaultString + else + tempReturn = tempString + End If + GSH_READDISPLAYINFO = tempReturn +'gsh_log_e("GSH_READDISPLAYINFO returning >>> " & tempReturn&"<<<" ) +end function +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'SHOULD RENAME +' +'Function: GSH_READDISPLAYNAMES'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' sdefaultLocation - Default OS Path if error or nothing found +'Returns: +' String, OS path of display files +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_READDISPLAYNAMES(sdefaultLocation) +'gsh_log_s("GSH_READDISPLAYNAMES" & " sdefaultLocation=" & sdefaultLocation) + dim tempString, tempReturn + 'gsh_log("GSH_READDISPLAYNAMES checkPoint strRegLocation=" & GSH_REGISTRY_BASE & GSH_REGISTRY_DISPLAYNAMES & GSH_REGKEY_DISPLAYLOC) + tempString = GSH_READREGISTRY ( GSH_REGISTRY_BASE & GSH_REGISTRY_DISPLAYNAMES & GSH_REGKEY_DISPLAYLOC,"" ) + if tempString = "" then + tempReturn = sdefaultLocation + else + tempReturn = tempString + End If + GSH_READDISPLAYNAMES = tempReturn +'gsh_log_e("GSH_READDISPLAYNAMES returning >>>" & tempReturn&"<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: READ DISPLAY COMMUNICATION KEY VALUE ''''''''''''''''''''''''' +'Parameters: +' strKey - Part of path to Registry Item +' defaultString - Default Value if error or nothing found +'Returns: +' value of registry item or parameter of defaultString +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_READDISPLAYCOMMUNICATIONKEYVALUE(strKey, defaultString) +'gsh_log_s("GSH_READDISPLAYCOMMUNICATIONKEYVALUE" & " strKey=" & strKey & ",defaultString=" & defaultString ) + dim tempString, strRegLocation, tempReturn + strRegLocation = GSH_REGISTRY_BASE & GSH_REGISTRY_DISPLAYCOMM & strKey + 'gsh_log("GSH_GETDISPLAYCOMMUNICATIONKEY checkPoint strRegLocation=" & strRegLocation) + tempString = GSH_READREGISTRY(strRegLocation,defaultString) + if tempString = "" then + tempReturn = defaultString + else + tempReturn = tempString + End If + GSH_READDISPLAYCOMMUNICATIONKEYVALUE = tempReturn +'gsh_log_e("GSH_READDISPLAYCOMMUNICATIONKEYVALUE returning >>>" & tempReturn&"<<<") +end function + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_READSTSMSGLISTSKEYVALUE ''''''''''''''''''''''''' +'Parameters: +' strKey - Part of path to Registry Item (ex. RegCtl\StatusMessage1 +' defaultString - Default Value if error or nothing found +'Returns: +' value of registry item or parameter of defaultString +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_READSTSMSGLISTSKEYVALUE(strKey, defaultString) +'gsh_log_s("GSH_READSTSMSGLISTSKEYVALUE" & " strKey=" & strKey & ",defaultString=" & defaultString ) + dim tempString, strRegLocation, tempReturn + strRegLocation = GSH_REGISTRY_BASE & GSH_REGISTRY_STSMSGLISTS & strKey +' gsh_log("GSH_READSTSMSGLISTSKEYVALUE checkPoint strRegLocation=" & strRegLocation) + tempString = GSH_READREGISTRY(strRegLocation,defaultString) + if tempString = "" then + tempReturn = defaultString + else + tempReturn = tempString + End If + GSH_READSTSMSGLISTSKEYVALUE = tempReturn +'gsh_log_e("GSH_READSTSMSGLISTSKEYVALUE returning >>>" & tempReturn&"<<<") +end function + + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE''''''''''''''''''''''''''''''' +'Parameters: +' strKey - Part of path to Registry Item +' strValue - Value of string key +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE(strKey, strValue) +'gsh_log_s("GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE " & "strKey=" & strKey & ",strValue=" & strValue ) + dim strRegLocation + strRegLocation = GSH_REGISTRY_BASE & GSH_REGISTRY_DISPLAYCOMM & strKey + 'gsh_log("GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE checkPoint strRegLocation=" & strRegLocation) + GSH_WRITETOREGISTRY strRegLocation,strValue,"REG_SZ" +'gsh_log_e("GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: GSH_WRITEDISPLAYINFORMATION''''''''''''''''''''''''''''''''' +'Parameters: +' strTagName - Part of path to Registry Item +' strKey - Part of path to Registry Item +' strValue - Value of string key +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_WRITEDISPLAYINFORMATION(strTagName, strKey, strValue) +'gsh_log_s("GSH_WRITEDISPLAYINFORMATION " & "strTagName=" & strTagName & ",strKey=" & strKey & ",strValue=" & strValue ) + dim strRegLocation + strRegLocation = GSH_REGISTRY_BASE & GSH_REGISTRY_DISPLAYINFO &strTagName& "\" & strKey +' gsh_log("GSH_WriteDisplayInformation checkPoint strRegLocation=" & strRegLocation) + GSH_WRITETOREGISTRY strRegLocation,strValue,"REG_SZ" +'gsh_log_e("GSH_WRITEDISPLAYINFORMATION") +end sub + + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: GSH_HIDESUBSHAPE'''''''''''''''''''''''''''''''''''''''''''' +' Hides the sub shapes within the HCS Shape +'Parameters: +' oShape - object to hide +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_HIDESUBSHAPE(oObject) +'gsh_log_s("GSH_HIDESUBSHAPE "& "oObject=" & oObject.id) + oObject.style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_HIDESUBSHAPE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: GSH_SHOWSUBSHAPE'''''''''''''''''''''''''''''''''''''''''''' +' Shows the sub shapes within the HCS Shape +'Parameters: +' oObject - object to show +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHOWSUBSHAPE(oObject) +'gsh_log_s("GSH_SHOWSUBSHAPE "& "oObject=" & oObject.id) + oObject.style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_SHOWSUBSHAPE") +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: Shape Clicked +' Called when user clicks HCS shape on display +'Parameters: +' oShape - HCS Shape (Example: Analog Indicator +'Sept 30, 2009 - Added associated Level 2 support for loading Level2 from L1 shapes (CL) +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHAPECLICKED(oShape) +on error resume next + Dim sAssocDispT2, sAssocDispT3, sAssocDispT4 + + 'Determine what is the associated display Type3 + sAssocDispT2 = UCase(oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPASSOCTYPE2)) + + 'Determine what is the associated display Type3 + sAssocDispT3 = UCase(oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPASSOCTYPE3)) + 'Determine what is the associated display Type4 from the shape custom property + sAssocDispT4 = Ucase(oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPASSOCTYPE4)) + 'call GSH_SHAPECLICKEDPARAMETERS(oShape, sAssocDispT3, sAssocDispT4) + call GSH_SHAPECLICKEDPARAMETERS1(oShape, sAssocDispT2, sAssocDispT3, sAssocDispT4) +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: Shape Clicked No Assoc Display +' Called when user clicks HCS shape on display +'Parameters: +' oShape - HCS Shape (Example: Analog Indicator +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHAPECLICKEDNOASSOCDISP(oShape) +on error resume next + call GSH_SHAPECLICKEDPARAMETERS1(oShape, "", "", "") +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: Shape Clicked Parameters +' Called when user clicks HCS shape on display +'Parameters: +' oShape - HCS Shape (Example: Analog Indicator +' sAssocDispT3 - Associated Display Type 3 +' sAssocDispT4 - Associated Display Type 4 +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHAPECLICKEDPARAMETERS(oShape, sAssocDispT3, sAssocDispT4) +on error resume next +'gsh_log_s("Performance Time: GSH_SHAPECLICKED "& "oShape=" & oShape.id &" , sAssocDispT3="&sAssocDispT3) + Dim sOnDispT2, shapeTagName, vTagFamily, iPageNavigateDelayMs + 'Determine what is on display Type2 from Display Communication Mailbox + sOnDispT2 = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T2FN,"") + shapeTagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + call GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS(GSH_FALSE) 'Reset all tagname labels to hidden + 'Store Tag Name in Display Communication Mailbox + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_FOCUSTAG,shapeTagName + 'Get Tag Family using Tag Information in Registry + vTagFamily = GSH_READTAGINFORMATIONKEYVALUE(shapeTagName, GSH_REGKEY_TAGFAM, "") + 'Store Tag Family in Display Communication Mailbox + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_TAGFAM,vTagFamily + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE "AssocDisplay3",sAssocDispT3 + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE "AssocDisplay4",sAssocDispT4 + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_USET4,"NO" 'Ensure that T4Default is not on. Assume there will always be an AssocL3 and L4 specified together. + iPageNavigateDelayMs = cint(GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_FPPAGEDELAY,GSH_REGKEY_FPPAGEDELAY_DEFAULTMS)) + call setTimeout ("GSH_UpdateFaceplate()", iPageNavigateDelayMs) + call window.external.RaiseCustomEvent("ShapeClicked","OnShapeClickEvent",sAssocDispT3&"%"&sAssocDispT4) +'gsh_log_e("Performance Time:GSH_SHAPECLICKED iPageNavigateDelayMs="& iPageNavigateDelayMs) +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: GSH_SHAPECLICKEDPARAMETERS1 +' Called when user clicks HCS shape on display +'Parameters: +' oShape - HCS Shape (Example: Analog Indicator +' sAssocDispT2 - Associated Display Type 2 +' sAssocDispT3 - Associated Display Type 3 +' sAssocDispT4 - Associated Display Type 4 +'Sept 30, 2009 - Added associated Level 2 support for loading Level2 from L1 shapes (CL) +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHAPECLICKEDPARAMETERS1(oShape, sAssocDispT2, sAssocDispT3, sAssocDispT4) +on error resume next +'gsh_log_s("Performance Time: GSH_SHAPECLICKEDPARAMETERS1 "& "oShape=" & oShape.id) + Dim sOnDispT2 + Dim sOnDispT3 + Dim sOnDispT4 + Dim vTagFamily + Dim sTemp + Dim sErrorMsg + Dim shapeTagName + Dim objShpFocus + Dim sFaceplate +'initialize local variables + + If(g_PageLoadCompleted) then + + g_PageLoadCompleted = false + window.clearTimeout g_PageLoadTimerID + g_PageLoadTimerID=window.setTimeout("g_PageLoadCompleted = true",1500) + + shapeTagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + + 'Determine what is on display Type3 from Display Communication Mailbox + sOnDispT2 = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T2FN,"") + + 'Determine what is on display Type3 from Display Communication Mailbox + sOnDispT3 = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T3FN,"") + 'Determine what is on display Type4 + sOnDispT4 = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T4FN,"") + sDisplayLocation = GSH_READDISPLAYNAMES("") + call GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS(GSH_FALSE) 'Reset all tagname labels to hidden + 'Store Tag Name in Display Communication Mailbox + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_FOCUSTAG,shapeTagName + + 'Get Tag Family using Tag Information in Registry + vTagFamily = GSH_READTAGINFORMATIONKEYVALUE(shapeTagName, GSH_REGKEY_TAGFAM, "") + 'Store Tag Family in Display Communication Mailbox + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_TAGFAM,vTagFamily + call GSH_UpdateFaceplate() + + If strcomp(sAssocDispT2,"",vbtextcompare)<>0 and strcomp(Ucase(sOnDispT2),sAssocDispT2,vbtextcompare)<>0 Then + sTemp = sDisplayLocation & sAssocDispT2 & GSH_DISPLAYFILEEXTENSION + 'call GSH_WRITEDISPLAYINFORMATION ("", GSH_REGKEY_PRIORT2, sAssocDispT2) + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T2FN,sAssocDispT2) + window.navigate(sTemp) + End If + + If strcomp(sAssocDispT3,"",vbtextcompare)<>0 and strcomp(Ucase(sOnDispT3),sAssocDispT3,vbtextcompare)<>0 Then + sTemp = sDisplayLocation & sAssocDispT3 & GSH_DISPLAYFILEEXTENSION + call GSH_WRITEDISPLAYINFORMATION (sOnDispT2, GSH_REGKEY_PRIORT3, sAssocDispT3) + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T3FN,sAssocDispT3) + window.navigate(sTemp) + End If + + If strcomp(sAssocDispT4,"",vbtextcompare)<>0 Then + If Ucase(sOnDispT4) <> sAssocDispT4 Then + sTemp = sDisplayLocation & sAssocDispT4 & GSH_DISPLAYFILEEXTENSION + ''25June08 - JE + 'call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T4FN,sPriorT4) + 'Should be this line instead + call GSH_WRITEDISPLAYINFORMATION (sOnDispT2, GSH_REGKEY_PRIORT4, sAssocDispT4) + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T4FN,sAssocDispT4) + window.navigate(sTemp) + End if + ' Else + '''Should not need to set this to on - 25June08 - JE + ''' GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_USET4,"YES" + End If + + else +' gsh_log("GSH_SHAPECLICKEDPARAMETERS1:gPageLoadcompleted = false") + End If +'gsh_log_e("Performance Time:GSH_SHAPECLICKEDPARAMETERS1") +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: GSH_ONSHAPECLICKEVENTHANDLER +' Event Handling routine on each Level Display for the CustomEvent "OnShapeClickEvent" +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_ONSHAPECLICKEVENTHANDLER +'gsh_log_s "GSH_ONSHAPECLICKEVENTHANDLER >>> "& PAGE_DISPLAYTYPE + dim sAssocDisp, sOnDisp, sOnDispT2 + 'Determine what is on display Type2 from Display Communication Mailbox + sOnDispT2 = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T2FN,"") + 'Determine what is on display from Display Communication Mailbox + sOnDisp = GSH_READDISPLAYCOMMUNICATIONKEYVALUE("Type"&cstr(PAGE_DISPLAYTYPE)&"Filename","") + if (PAGE_DISPLAYTYPE = 2) then + GSH_UPDATESHAPESONDISPLAY sOnDisp&GSH_DISPLAYFILEEXTENSION + else + sAssocDisp = GSH_READDISPLAYCOMMUNICATIONKEYVALUE("AssocDisplay"&cstr(PAGE_DISPLAYTYPE),"") + If strcomp(sAssocDisp,"",vbtextcompare) <> 0 Then + If strcomp(sOnDisp,sAssocDisp,vbtextcompare)<>0 Then + dim iPageNavigateDelayMs + call GSH_WRITEDISPLAYINFORMATION (sOnDispT2, "PriorType"&cstr(PAGE_DISPLAYTYPE), sAssocDisp) + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE ("Type"&cstr(PAGE_DISPLAYTYPE)&"Filename",sAssocDisp) + iPageNavigateDelayMs = cint(GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_LEVELPAGEDELAY,GSH_REGKEY_LEVELPAGEDELAY_DEFAULTMS)) + call setTimeout ("GSH_UPDATEDISPLAYPAGE()", iPageNavigateDelayMs) + Else + GSH_UPDATESHAPESONDISPLAY sOnDisp&GSH_DISPLAYFILEEXTENSION + End If + Else + GSH_UPDATESHAPESONDISPLAY sOnDisp&GSH_DISPLAYFILEEXTENSION 'Update all shapes on Display Type4 + End If + End if +'gsh_log_e "GSH_ONSHAPECLICKEVENTHANDLER iPageNavigateDelayMs="&iPageNavigateDelayMs +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: GSH_ONPERIODIC_FOCUSUPDATEHANDLER +' Event Handling routine on each Level Display for the CustomEvent "OnShapeClickEvent" +' 06/20/2007 Added a check to see if the TagNameLabelVisible tag has changed +' if so then update the TagNameLabelShapes with GSH_UPDATETAGNAMELABELONDISPLAY +' 06/27/07 calls GSH_UPDATEPAGELINKONDISPLAY when the PageLinkAlarmGroup has changed +' 07/25/07 only calls GSH_UPDATEPAGELINKONDISPLAY when the PAGE_DISPLAYTYPE = 2 +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_ONPERIODIC_FOCUSUPDATEHANDLER +On error resume next +'gsh_log_s "GSH_ONPERIODIC_FOCUSUPDATEHANDLER >>> "& PAGE_DISPLAYTYPE & "," & g_PageShapesInit + + if g_PageShapesInit = 1 then + dim sOnDisp, sFocusTagName, sRegPageLinkAlarmGroup + sFocusTagName = GSH_READDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_FOCUSTAG,"NoTag") +' gsh_log "sFocusTagName ="&sFocusTagName&", g_PageCurrentFocusTag = "&g_PageCurrentFocusTag + if strcomp(sFocusTagName,g_PageCurrentFocusTag,vbtextcompare) <> 0 then + 'Determine what is on display from Display Communication Mailbox + sOnDisp = GSH_READDISPLAYCOMMUNICATIONKEYVALUE ("Type"&cstr(PAGE_DISPLAYTYPE)&"Filename","") + if (strcomp(sOnDisp,"",vbtextcompare) <> 0) or (PAGE_DISPLAYTYPE = 1) then + GSH_UPDATESHAPESONDISPLAY sOnDisp + End if + g_PageCurrentFocusTag = sFocusTagName + End If + + dim currentTagLabelVisible + currentTagLabelVisible = GSH_TAGNAMELABEL_GET_VISIBILITYSTATUS + if strcomp(currentTagLabelVisible,g_PageCurrentTagLabelVisible,vbtextcompare) <> 0 then + GSH_UPDATETAGNAMELABELONDISPLAY sOnDisp + g_PageCurrentTagLabelVisible = currentTagLabelVisible + End if + if (PAGE_DISPLAYTYPE = 2) then + sRegPageLinkAlarmGroup = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_PAGELINKALARMGROUP,"NoPgLink") + if strcomp(sRegPageLinkAlarmGroup,g_PageCurrentPageLink,vbtextcompare) <> 0 and (PAGE_DISPLAYTYPE = 2) then + GSH_UPDATEPAGELINKONDISPLAY sOnDisp + g_PageCurrentPageLink = sRegPageLinkAlarmGroup + End if + end if + End If +'gsh_log_e "GSH_ONPERIODIC_FOCUSUPDATEHANDLER " +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Is Alarming Enabled +'Parameters: +' oDataBoundObject - HCS Group Shape +' pointName - the point name +' parameter - Alarm disabled paramter. i.e.: +' GSH_SCADA_PARAM_ALARMDISABLED for SCADA points +' GSH_C200_PARAM_ALARMDISABLED for C200 points +' GSH_TPS_PARAM_ALARMDISABLED for TPS points +' and so on +'Returns: +' boolean +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_ISALARMINGENABLED(oDataBoundObject, pointName, parameter) +'gsh_log_s("GSH_ISALARMINGENABLED oDataBoundObject=" & oDataBoundObject.id & ", pointName=" & pointName &", parameter = " ¶meter) +on error resume next + + Dim tempReturn + + if (GSH_GETPARAMETERVALUE(oDataBoundObject, pointName, parameter) <> 0) then + tempReturn = true + else + tempReturn = false + end if + GSH_ISALARMINGENABLED = tempReturn + +'gsh_log_e("GSH_ISALARMINGENABLED returning >>>" & cstr(tempReturn) & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Is TPS Alarming Enabled +' TPS point is different: +' ALENBST = 0 -> enabled +' ALENBST = 1 -> disabled +' ALENBST = 0 -> inhibit +'Parameters: +' oDataBoundObject - HCS Group Shape +' pointName - the point name +' +'Returns: +' boolean +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_TPS_ISALARMINGENABLED(oDataBoundObject, pointName, parameter) +'gsh_log_s("GSH_TPS_ISALARMINGENABLED oDataBoundObject=" & oDataBoundObject.id & ", pointName=" & pointName &", parameter = " ¶meter) +on error resume next + + Dim tempReturn + + if (GSH_GETPARAMETERVALUE(oDataBoundObject, pointName, parameter) <> 0) then + tempReturn = false + else + tempReturn = true + end if + GSH_TPS_ISALARMINGENABLED = tempReturn + +'gsh_log_e("GSH_TPS_ISALARMINGENABLED returning >>>" & cstr(tempReturn) & "<<<") +end function + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Is Alarming Disabled +'Parameters: +' oDataBoundObject - HCS Group Shape +' pointName - the point name +' parameter - Alarm disabled paramter. i.e.: +' GSH_SCADA_PARAM_ALARMDISABLED for SCADA points +' GSH_C200_PARAM_ALARMDISABLED for C200 points +' GSH_TPS_PARAM_ALARMDISABLED for TPS points +' and so on +'Returns: +' boolean +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_ISALARMINGDISABLED(oDataBoundObject, pointName, parameter) +'gsh_log_s("GSH_ISALARMINGDISABLED oDataBoundObject=" & oDataBoundObject.id & ", pointName=" & pointName &", parameter = " ¶meter) +on error resume next + + Dim tempReturn + + if (GSH_GETPARAMETERVALUE(oDataBoundObject, pointName, parameter) <> 0) then + tempReturn = true + else + tempReturn = false + end if + GSH_ISALARMINGDISABLED = tempReturn + +'gsh_log_e("GSH_ISALARMINGDISABLED returning >>>" & cstr(tempReturn) & "<<<") +end function + + +'---------------------- START REGULATORY CONTROL INDICATOR GENERAL ----------------- + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SETREGULATORYCONTROLINDICATORFOCUS'''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SETREGULATORYCONTROLINDICATORFOCUS(oDataBoundObject) +'gsh_log_s("GSH_SETREGULATORYCONTROLINDICATORFOCUS oDataBoundObject=" & oDataBoundObject.id) +on error resume next + call GSH_SETSHAPEFOCUS(oDataBoundObject) + if (not(oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, outline must be transparent + 'alert(1) + oDataBoundObject.objects("outline").fillstyle = GSH_FILLTRANSPARENT +'added 17july2008 + else + oDataBoundObject.objects("outline").fillstyle = GSH_FILLSOLID + end if +'gsh_log_e("GSH_SETREGULATORYCONTROLINDICATORFOCUS") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SETREGULATORYCONTROLINDICATORMODE''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SETREGULATORYCONTROLINDICATORMODE(oDataBoundObject) +'gsh_log_s("GSH_SETREGULATORYCONTROLINDICATORMODE oDataBoundObject=" & oDataBoundObject.id) +on error resume next +dim sMode, tempText + sMode = "MODE" 'default + Select Case GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,GSH_CPPOINTTYPE,GSH_CPVALUE) + Case GSH_CPPOINTTYPE_SCADA + sMode = GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODE) + Case GSH_CPPOINTTYPE_TPN + sMode = GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_TPN_PARAM_MODE) + Case GSH_CPPOINTTYPE_C200 + sMode = GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_TPN_PARAM_MODE) + CASE GSH_CPPOINTTYPE_C300 +' sMode = GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_TPN_PARAM_MODE) + End Select + Select Case sMode + Case GSH_MODE_AUTO + tempText = GSH_MODE_AUTO_TEXT_INDICATOR + Case GSH_MODE_MAN + tempText = GSH_MODE_MAN_TEXT_INDICATOR + Case GSH_MODE_CASC + tempText = GSH_MODE_CASC_TEXT_INDICATOR + Case GSH_MODE_BCAS + tempText = GSH_MODE_BCAS_TEXT_INDICATOR + Case GSH_MODE_COMP + tempText = GSH_MODE_COMP_TEXT_INDICATOR + End Select +oDataBoundObject.parentelement.parentelement.objects("txt_mode").value = tempText +'gsh_log_e("GSH_SETREGULATORYCONTROLINDICATORMODE set mode indicator to >>" & tempText & "<<") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_REGULATORYCONTROLINDICATORSHOWNORMAL''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' mode = +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_REGULATORYCONTROLINDICATORSHOWNORMAL(oDataBoundObject) +'gsh_log_s("GSH_REGULATORYCONTROLINDICATORSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next + 'Disable Alarms + call GSH_SHOWNOALARM(oDataBoundObject) + oDataBoundObject.objects("txt_AnalogValue").style.visibility = GSH_VISIBLE + oDataBoundObject.objects("txt_Initialization").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("plg_OpLow").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("plg_OpHigh").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_ramp").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_mode").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_REGULATORYCONTROLINDICATORShowNormal") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_REGULATORYCONTROLINDICATORSHOWOFFNORMAL'''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_REGULATORYCONTROLINDICATORSHOWOFFNORMAL(oDataBoundObject) +'gsh_log_s("GSH_REGULATORYCONTROLINDICATORSHOWOFFNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next + if (oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if +'gsh_log_e("GSH_REGULATORYCONTROLINDICATORSHOWOFFNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_REGULATORYCONTROLINDICATORSHOWBADPV'''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_REGULATORYCONTROLINDICATORSHOWBADPV(oDataBoundObject) +'gsh_log_s("GSH_REGULATORYCONTROLINDICATORSHOWBADPV oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("txt_Analogvalue").value = GSH_BADPV_TEXT + oDataBoundObject.objects("txt_AnalogValue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_REGULATORYCONTROLINDICATORSHOWBADPV") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_REGULATORYCONTROLINDICATORSHOWCOMMUNICATIONERROR''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_REGULATORYCONTROLINDICATORSHOWCOMMUNICATIONERROR(oDataBoundObject) +'gsh_log_s("GSH_REGULATORYCONTROLINDICATORSHOWCOMMUNICATIONERROR oDataBoundObject=" & oDataBoundObject.id) +on error resume next + 'SAME BEHAVIOR AS BAD PV + GSH_REGULATORYCONTROLINDICATORSHOWBADPV(oDataBoundObject) +'gsh_log_e("GSH_REGULATORYCONTROLINDICATORSHOWCOMMUNICATIONERROR") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_REGULATORYCONTROLINDICATORSHOWDISABLEDALARM'''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_REGULATORYCONTROLINDICATORSHOWDISABLEDALARM(oDataBoundObject) +'gsh_log_s("GSH_REGULATORYCONTROLINDICATORSHOWDISABLEDALARM oDataBoundObject=" & oDataBoundObject.id) +on error resume next + 'Change focus outline color + oDataBoundObject.objects("outline").styleClass = GSH_CSSREGULATORYCONTROLINDICATORDISABLEDALARM +'gsh_log_e("GSH_REGULATORYCONTROLINDICATORSHOWDISABLEDALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_REGULATORYCONTROLINDICATORSHOWINITIALIZATION''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_REGULATORYCONTROLINDICATORSHOWINITIALIZATION(oDataBoundObject) +'gsh_log_s("GSH_REGULATORYCONTROLINDICATORSHOWINITIALIZATION oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("txt_Intialization").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_REGULATORYCONTROLINDICATORSHOWINITIALIZATION") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_REGULATORYCONTROLINDICATORSHOW_RAMP'''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' txtValue = text to be shown in RAMP shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_REGULATORYCONTROLINDICATORSHOW_RAMP(oDataBoundObject,txtValue) +'gsh_log_s("GSH_REGULATORYCONTROLINDICATORSHOW_RAMP oDataBoundObject=" & oDataBoundObject.id & ",txtValue =" &txtValue ) +on error resume next + oDataBoundObject.objects("txt_ramp").value = txtValue + oDataBoundObject.objects("txt_ramp").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_REGULATORYCONTROLINDICATORSHOW_RAMP") +end sub + +'---------------------- END REGULATORY CONTROL INDICATOR GENERAL ----------------- + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_ISDATABAD +'Parameters: +' oDataScriptObject - data bound object within HCS shape +' bCheckNAN - check for PV value that is not a number +' bCheckPVSts - check if PVSts indicate that PV value is bad +'Returns: +' true of false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_ISDATABAD(oDataScriptObject, parameter, bCheckNAN, bCheckPVSts) +'gsh_log_s("GSH_ISDATABAD " & "oDataScriptObject=" & oDataScriptObject.ID &" parameter = " ¶meter) +on error resume next + Dim bValueIsNAN, bPVInError, bAllTests + bValueIsNAN = false + bPVInError = false + +' gsh_log_e("bValueIsNAN " & oDataScriptObject.IsNan(GSH_CPENTITY & "." & parameter)) + if bCheckNAN then + if oDataScriptObject.IsNan(GSH_CPENTITY & "." & parameter) then bValueIsNAN = true + end if + +' gsh_log_e("bCheckPVSts " &GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_CPPARAM_BADPV)) + if bCheckPVSts then + if (GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_CPPARAM_BADPV)<> 0) then + bPVInError = true + end if + end if + + bAllTests = ( bValueIsNAN or bPVInError ) + +'gsh_log_e("GSH_ISDATABAD returing " & bAllTests ) +GSH_ISDATABAD = bAllTests +end function + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_Show_StatusMessageFlag'''''''''''''''''''''''''''''''''''''''''' +'Show Status Message flag on a C200/TPS Regulatory Control shapes. +' stsMsg_flag = 0 => Off (No Message shown) - Default +' stsMsg_flag = 1 => Bypass (shown as Bypass) +' stsMsg_flag = 2 => HandJack (shown as Hand) +' stsMsg_flag = 3 => Isolated (shown as Isolate) +'08/08/07 - Created the sub routine (Cuong Ly) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_Show_StatusMessageFlag(oShape, stsMsg_flag) + + if IsNumeric(stsMsg_flag) then + + Select Case stsMsg_flag + Case 0 + 'hide the message + oShape.objects("txt_statusmessage").style.visibility = GSH_HIDDEN + Case 1 + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_BYPASSED_TEXT_MESSAGE) + Case 2 + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_HANDJACK_TEXT) + Case 3 + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_ISOLATED_TEXT) + Case else + 'hide the message + oShape.objects("txt_statusmessage").style.visibility = GSH_HIDDEN + End Select + end if + +end sub + + + + + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: GSH_UPDATEDISPLAYPAGE +' Used in conjunction with GSH_ONSHAPECLICKEVENTHANDLER to launch associated page +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_UPDATEDISPLAYPAGE + Dim sOnDisp + sOnDisp = GSH_READDISPLAYCOMMUNICATIONKEYVALUE("Type"&cstr(PAGE_DISPLAYTYPE)&"Filename","") + if strcomp(sOnDisp, "", vbtextcompare) <> 0 then + window.navigate( sOnDisp & GSH_DISPLAYFILEEXTENSION ) + end if +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_UpdateFaceplate +' Launches new faceplate based on Registry Display Communication info +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_UpdateFaceplate() +'gsh_log_s("GSH_UpdateFaceplate") +dim sTagname, sTagFaceplate + + sTagname = GSH_READDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_FOCUSTAG ,"") + sTagFaceplate = GSH_READTAGINFORMATIONKEYVALUE(sTagname, GSH_REGKEY_TagFacePlate, "") +' GSH_UpdateFaceplate_Old(sTagName) + +' gsh_log("sTagName="&sTagname) +' gsh_log("sTagFaceplate="&sTagFaceplate) + + if strcomp(sTagFaceplate,"",vbtextcompare) <> 0 then + HDXPopupbehavior.CreatePopupWindow Ucase(sTagFaceplate) & GSH_DISPLAYFILEEXTENSION&"?"&"currentpoint="&sTagname,10,10,1 + else + HDXPopupbehavior.CreatePopupWindow GSH_READDISPLAYNAMES("") & GSH_FP_DEFAULTFACEPLATE & GSH_DISPLAYFILEEXTENSION&"?"&"currentpoint="&sTagname,10,10,1 + end if +'gsh_log_e("GSH_UpdateFaceplate sTagFaceplate = "&sTagFaceplate&", sTagname ="&sTagname) +end sub + + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: Set Shape Focus +' Determines proper focusing for shape +'Parameters: +' oShape - HCS Shape that needs to test for focusing, must have shp_focus sub shape +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SETSHAPEFOCUS(oShape) +'gsh_log_s("GSH_SETSHAPEFOCUS " & "oShape=" & oShape.id) +On error resume next + call GSH_SHOWSUBSHAPE(oShape.objects("focus")) + Dim shapeTag, shapeFocusStyle + shapeTag = GSH_GETSHAPETAG(oShape) + If GSH_DOESSHAPEREQUIRESPRINCIPLEFOCUS(shapeTag) then + shapeFocusStyle = GSH_CSSFOCUSPRINCIPAL + else if GSH_DOESSHAPEREQUIRESASSOCIATEDFOCUS(shapeTag) then + shapeFocusStyle = GSH_CSSFOCUSASSOCIATED + else + shapeFocusStyle = GSH_CSSFOCUSNONE + end if + end if + 'apply focus style + oShape.objects("focus").styleClass = shapeFocusStyle +'gsh_log_e("GSH_SETSHAPEFOCUS shapeFocusStyle, err = " &shapeFocusStyle & ", " & err) +end sub + +sub GSH_SETSASHAPEFOCUS(oShape, objectName) +'gsh_log_s("GSH_SETSHAPEFOCUS " & "oShape=" & oShape.id) +On error resume next + call GSH_SHOWSUBSHAPE(oShape.objects(objectName)) + Dim shapeTag, shapeFocusStyle + shapeTag = GSH_GETSHAPETAG(oShape) + If GSH_DOESSHAPEREQUIRESPRINCIPLEFOCUS(shapeTag) then + shapeFocusStyle = GSH_CSSFOCUSASSOCIATED +' gsh_log "Pfocus" + else if GSH_DOESSHAPEREQUIRESASSOCIATEDFOCUS(shapeTag) then + shapeFocusStyle = GSH_CSSFOCUSASSOCIATED +' gsh_log "Afocus" + else + shapeFocusStyle = GSH_CSSFOCUSNONE +' GSH_LOG "Nofocus" + end if + end if +'apply focus style + oShape.objects(objectName).styleClass = shapeFocusStyle +'gsh_log_e("GSH_SETSHAPEFOCUS shapeForcusStyle = " &shapeFocusStyle) +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function Does Shape Require Principle Focus +' Determines if shape tag matches tag currently in focus +'Parameters: +' shapeTag - tagname +'Returns: +' true (tagname passed in matches focusTag in Registry) +' false (tagnmae passed in does not match focusTag in Registry) +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_DOESSHAPEREQUIRESPRINCIPLEFOCUS(shapeTag) +'gsh_log_s("GSH_DOESSHAPEREQUIRESPRINCIPLEFOCUS " & "shapeTag=" & shapeTag) +On error resume next + Dim tempReturn,currentFocusTag + tempReturn = false 'default + currentFocusTag = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_FOCUSTAG,"") + 'gsh_log("GSH_DOESSHAPEREQUIRESPRINCIPLEFOCUS comparing currentFocusTag="¤tFocusTag&" to shapeTag="&shapeTag) + if (strComp(currentFocusTag,shapeTag,vbTextCompare)=0) then + tempReturn = true + end if + GSH_DOESSHAPEREQUIRESPRINCIPLEFOCUS = tempReturn +'gsh_log_e("GSH_DOESSHAPEREQUIRESPRINCIPLEFOCUS retruning >>> " & cstr(tempReturn) & "<<<") +end function + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function Does Shape Require Associated Focus +' Determines if tag family or tag passed in matches current tag family +' in registry +'Parameters: +' shapeTag - tagname +'Returns: +' true (tagFamily information of tagname passed in matches tagFamily in Registry) +' false (tagFamily information of tagname passed in does not matche tagFamily in Registry) +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_DOESSHAPEREQUIRESASSOCIATEDFOCUS(shapeTag) +'gsh_log_s("GSH_DOESSHAPEREQUIRESASSOCIATEDFOCUS " & "shapeTag=" & shapeTag) +on error resume next + Dim tempReturn,shapeTagFamily, currentTagFamily + tempReturn = false 'default + currentTagFamily = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_TAGFAM,"") + shapeTagFamily = GSH_READTAGINFORMATIONKEYVALUE(shapeTag,GSH_REGKEY_TAGFAM,"") + 'gsh_log("GSH_DOESSHAPEREQUIRESASSOCIATEDFOCUS comparing currentTagFamily="¤tTagFamily&" to shapeTagFamily="&shapeTagFamily) + if shapeTagFamily <> "" then + if (strComp(currentTagFamily, shapeTagFamily, vbTextCompare) = 0) then + tempReturn = true + end if + end if + GSH_DOESSHAPEREQUIRESASSOCIATEDFOCUS = tempReturn +'gsh_log_e("GSH_DOESSHAPEREQUIRESASSOCIATEDFOCUS retruning >>> " & cstr(tempReturn) & "<<<") +end function + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function Get Shape Tag +' Gets the tag associated with the Shape (a custom property) +'Parameters: +' oShape - HCS Shape with a custom property of type 'Point' and named 'Entity' +'Returns: +' Shape Custom property GSH_CPENTITY ("Entity") +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETSHAPETAG(oShape) +'gsh_log_s("GSH_GETSHAPETAG " & "oShape=" & oShape.id) +on error resume next + Dim tempReturn + tempReturn = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPENTITY, GSH_CPPOINT) + GSH_GETSHAPETAG = tempReturn +'gsh_log_e("GSH_GETSHAPETAG returning >>>" & tempReturn & "<<<" ) +end function + + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Is Alarming Disabled +'Parameters: +' oDataBoundObject - HCS Group Shape +'Returns: +' boolean +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_SCADA_ISALARMINGDISABLED(oDataBoundObject) +'gsh_log_s("GSH_SCADA_ISALARMINGDISABLED oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim tempReturn + tempReturn = GSH_SCADA_ISALARMINGDISABLEDPARAMETER(oDataBoundObject, GSH_CPENTITY) +GSH_SCADA_ISALARMINGDISABLED = tempReturn +'gsh_log_e("GSH_SCADA_ISALARMINGDISABLED returning >>>" & cstr(tempReturn) & "<<<") +end function + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Is Alarming Disabled Parameter +'Parameters: +' oDataBoundObject - HCS Group Shape +' paramName - Parameter Name +'Returns: +' boolean +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_ISALARMINGDISABLEDPARAMETER(oDataBoundObject, pointName) +'gsh_log_s("GSH_ISALARMINGDISABLEDPARAMETER oDataBoundObject=" & oDataBoundObject.id & ", pointName=" & pointName) +on error resume next +Dim tempReturn +tempReturn = false +Select Case GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,GSH_CPPOINTTYPE,GSH_CPVALUE) + Case GSH_CPPOINTTYPE_SCADA + if (GSH_GETPARAMETERVALUE(oDataBoundObject, pointName, GSH_SCADA_PARAM_ALARMDISABLED) <> 0) then + tempReturn = true + end if + Case GSH_CPPOINTTYPE_C200 + tempReturn = false + Case GSH_CPPOINTTYPE_C300 + tempReturn = false + case else + tempReturn = false + End Select +GSH_ISALARMINGDISABLEDPARAMETER = tempReturn +'gsh_log_e("GSH_ISALARMINGDISABLEDPARAMETER returning >>>" & cstr(tempReturn) & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Is Alarming Disabled Parameter +'Parameters: +' oDataBoundObject - HCS Group Shape +' paramName - Parameter Name +'Returns: +' boolean +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_SCADA_ISALARMINGDISABLEDPARAMETER(oDataBoundObject, pointName) +'gsh_log_s("GSH_SCADA_ISALARMINGDISABLEDPARAMETER oDataBoundObject=" & oDataBoundObject.id & ", pointName=" & pointName) +on error resume next +Dim tempReturn +tempReturn = false + if (GSH_GETPARAMETERVALUE(oDataBoundObject, pointName, GSH_SCADA_PARAM_ALARMDISABLED) <> 0) then + tempReturn = true + end if +GSH_SCADA_ISALARMINGDISABLEDPARAMETER = tempReturn +'gsh_log_e("GSH_SCADA_ISALARMINGDISABLEDPARAMETER returning >>>" & cstr(tempReturn) & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Get Shape Custom Property +'Parameters: +' oShape - HCS Shape +'Returns: +' The value of the Custom Property +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,propertyName, propertyType) +'gsh_log_s("GSH_GETSHAPE_CUSTOM_PROPERTY " & "oShape=" & oShape.id & ",propertyName=" & propertyName& ",propertyType=" & propertyType) +on error resume next + Dim tempReturn + tempReturn = oShape.GetCustomProperty(propertyType,propertyName) + GSH_GETSHAPE_CUSTOM_PROPERTY = tempReturn +'gsh_log_e("GSH_GETSHAPE_CUSTOM_PROPERTY returning >>>" & tempReturn&"<<<") +end function + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Get Shape Custom Property +'Parameters: +' oShape - HCS Shape +'Returns: +' The value of the Custom Property +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SETSHAPE_CUSTOM_PROPERTY(oShape,propertyName, propertyType, propertyValue) +'gsh_log_s("GSH_SETSHAPE_CUSTOM_PROPERTY " & "oShape=" & oShape.id & ",propertyName=" & propertyName& ",propertyType=" & propertyType & ",propertyValue=" & propertyValue) +on error resume next + + oShape.SetCustomProperty propertyType, propertyName, propertyValue + +'gsh_log_e("GSH_SETSHAPE_CUSTOM_PROPERTY returning >>>" & tempReturn&"<<<") +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Is PV Data Bad +'Parameters: +' oDataScriptObject - data bound object within HCS shape +' bCheckNAN - check for PV value that is not a number +' bCheckTransmitter - check device sending data for errors +' bCheckRange - check PV value for value way out of range (station configurable unreasonably hi / lo alarm +'Returns: +' true of false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_SCADA_ISDATABAD(oDataScriptObject,bCheckNAN,bCheckTransmitter,bCheckRange) +'gsh_log_s("GSH_SCADA_ISDATABAD " & "oDataScriptObject=" & oDataScriptObject.ID) +on error resume next + Dim bPVInError +' , bInUnreasonablyLowAlarm, bInUnreasonablyHighAlarm, bInTransmitterLowAlarm, bInTransmitterHighAlarm + bPVInError = false +' bInUnreasonablyLowAlarm = false +' bInUnreasonablyHighAlarm = false +' bInTransmitterLowAlarm = false +' bInTransmitterHighAlarm = false + if bCheckNAN then + if GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_CPPARAM_BADPV)<> 0 then + bPVInError = true + end if + end if + 'gsh_log ("PVInError"&bPVInError) +' if bCheckTransmitter then +' bInTransmitterLowAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_SCADA_PARAM_INTRANSMITTERLOWALARM)) +' bInTransmitterHighAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_SCADA_PARAM_INTRANSMITTERHIGHALARM)) +' end if +' if bCheckRange then +' bInUnreasonablyLowAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_SCADA_PARAM_INUNREASONABLYLOWALARM)) +' bInUnreasonablyHighAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_SCADA_PARAM_INUNREASONABLYHIGHALARM)) +' end if +' bAllTests = bPVInError +' bAllTests = ( bPVInError or bInUnreasonablyLowAlarm or bInUnreasonablyHighAlarm or bInTransmitterLowAlarm or bInTransmitterHighAlarm ) +'GSH_SCADA_ISDATABAD = bAllTests +GSH_SCADA_ISDATABAD = bPVInError +'gsh_log_e("GSH_SCADA_ISDATABAD returing " & bAllTests ) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_FP_SCADA_IsDataBad +'Parameters: +' oDataScriptObject - data bound object within HCS shape +' bCheckNAN - check for PV value that is not a number +' bCheckTransmitter - check device sending data for errors +' bCheckRange - check PV value for value way out of range (station configurable unreasonably hi / lo alarm +'Returns: +' true of false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_FP_SCADA_IsDataBad(oDataScriptObject,bCheckNAN,bCheckTransmitter,bCheckRange) +'gsh_log_s("GSH_FP_SCADA_IsDataBad " & "oDataScriptObject=" & oDataScriptObject.ID) +on error resume next + Dim bPVInError, bInUnreasonablyLowAlarm, bInUnreasonablyHighAlarm, bInTransmitterLowAlarm, bInTransmitterHighAlarm + bPVInError = false + bInUnreasonablyLowAlarm = false + bInUnreasonablyHighAlarm = false + bInTransmitterLowAlarm = false + bInTransmitterHighAlarm = false + if bCheckNAN then + if (oDataScriptObject.DataValue(GSH_SDR_CURRENTPOINT&"."&GSH_SCADA_PARAM_PVINERROR)<> 0) then : bPVInError = true: end if + end if + if bCheckTransmitter then + 'bInTransmitterLowAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_SCADA_PARAM_INTRANSMITTERLOWALARM)) + 'bInTransmitterHighAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_SCADA_PARAM_INTRANSMITTERHIGHALARM)) + end if + if bCheckRange then + 'bInUnreasonablyLowAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_SCADA_PARAM_INUNREASONABLYLOWALARM)) + 'bInUnreasonablyHighAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_SCADA_PARAM_INUNREASONABLYHIGHALARM)) + end if + bAllTests = ( bPVInError or bInUnreasonablyLowAlarm or bInUnreasonablyHighAlarm or bInTransmitterLowAlarm or bInTransmitterHighAlarm ) +GSH_FP_SCADA_IsDataBad = bAllTests +'gsh_log_e("GSH_FP_SCADA_IsDataBad returning " & bAllTests ) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Compare Highest Alarm Priority '''''''''''''''''''''''''''''' +'Parameters: +' iAlarmCode1 = Alarm Code 1 +' iAlarmCode2 = Alarm Code 2 +'Returns: Alarm Code = GSH_ACKLOW, GSH_ACKHIGH, GSH_ACKEMERG, +' GSH_UNACKLOW, GSH_UNACKHIGH, GSH_UNACKEMERG, GSH_NOALARMCODE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_COMPAREHIGHESTALARMPRIORITY(iAlarmCode1, iAlarmCode2) +'gsh_log_s("GSH_COMPAREHIGHESTALARMPRIORITY iAlarmCode1=" & iAlarmCode1 & ", iAlarmCode2=" & iAlarmCode2) +on error resume next + +Dim iAlarmCode + + iAlarmCode = GSH_NOALARMCODE + + if ((iAlarmCode1 = GSH_UNACKEMERG) or (iAlarmCode2 = GSH_UNACKEMERG)) then + iAlarmCode = GSH_UNACKEMERG + elseif ((iAlarmCode1 = GSH_UNACKHIGH) or (iAlarmCode2 = GSH_UNACKHIGH)) then + iAlarmCode = GSH_UNACKHIGH + elseif ((iAlarmCode1 = GSH_UNACKLOW) or (iAlarmCode2 = GSH_UNACKLOW)) then + iAlarmCode = GSH_UNACKLOW + elseif ((iAlarmCode1 = GSH_ACKEMERG) or (iAlarmCode2 = GSH_ACKEMERG)) then + iAlarmCode = GSH_ACKEMERG + elseif ((iAlarmCode1 = GSH_ACKHIGH) or (iAlarmCode2 = GSH_ACKHIGH)) then + iAlarmCode = GSH_ACKHIGH + elseif((iAlarmCode1 = GSH_ACKLOW) or (iAlarmCode2 = GSH_ACKLOW)) then + iAlarmCode = GSH_ACKLOW + end if + + + GSH_COMPAREHIGHESTALARMPRIORITY = iAlarmCode +'gsh_log_e("GSH_COMPAREHIGHESTALARMPRIORITY returing " & iAlarmCode) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Get Highest Alarm Priority '''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = data bound object within an HCS shape +'Returns: Alarm Code = GSH_ACKLOW, GSH_ACKHIGH, GSH_ACKEMERG, +' GSH_UNACKLOW, GSH_UNACKHIGH, GSH_UNACKEMERG, GSH_NOALARMCODE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETHIGHESTALARMPRIORITY(oDataBoundObject) +'gsh_log_s("GSH_GETHIGHESTALARMPRIORITY oDataBoundObject=" & oDataBoundObject.id) +on error resume next + +Dim iAlarmCode + + iAlarmCode = GSH_GETHIGHESTALARMPRIORITYPARAMETER(oDataBoundObject, GSH_CPENTITY) + GSH_GETHIGHESTALARMPRIORITY = iAlarmCode +'gsh_log_e("GSH_GETHIGHESTALARMPRIORITY returing " & iAlarmCode) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'TODO: hardcoded to fix. +'Function: Get Highest Alarm Priority Parameter''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = data bound object within an HCS shape +' paraName - Script Data parameter Name +'Returns: Alarm Code = GSH_ACKLOW, GSH_ACKHIGH, GSH_ACKEMERG, +' GSH_UNACKLOW, GSH_UNACKHIGH, GSH_UNACKEMERG, GSH_NOALARMCODE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETHIGHESTALARMPRIORITYPARAMETER(oDataBoundObject, pointName) +'gsh_log_s("GSH_GETHIGHESTALARMPRIORITYPARAMETER oDataBoundObject=" & oDataBoundObject.id & ", pointName=" & pointName) +on error resume next + Dim iAlarmCode, iAlarmSeverity, iUnackAlarmExists + iUnackAlarmExists = 0 + iAlarmSeverity = 0 + + '0 = no, 1 = low, 2= high, 3= urgent + iAlarmSeverity = oDataBoundObject.AlarmSeverity(pointName & "." & GSH_CPPARAM_PV) + + if oDataBoundObject.UnacknowledgedAlarm(pointName & "." & GSH_CPPARAM_PV) then + iUnackAlarmExists = 1 + else + iUnackAlarmExists = 0 + end if + iAlarmCode = GSH_NOALARMCODE + +' gsh_log "GSH_GETHIGHESTALARMPRIORITYPARAMETER error Alarm Severity = " & iAlarmSeverity & ", Unacknowledged Alarm = " & oDataBoundObject.UnacknowledgedAlarm(pointName & "." & GSH_CPPARAM_PV) + + select case(2*iAlarmSeverity+iUnackAlarmExists) + case 0 + iAlarmCode = GSH_NOALARMCODE + case 1 + iAlarmCode = GSH_NOALARMCODE + case 2 + iAlarmCode = GSH_ACKLOW + case 3 + iAlarmCode = GSH_UNACKLOW + case 4 + iAlarmCode = GSH_ACKHIGH + case 5 + iAlarmCode = GSH_UNACKHIGH + case 6 + iAlarmCode = GSH_ACKEMERG + case 7 + iAlarmCode = GSH_UNACKEMERG + case else + 'gsh_log "GSH_GETHIGHESTALARMPRIORITYPARAMETER error Alarm Severity = " & iAlarmSeverity & ", Unacknowledged Alarm = " & oDataBoundObject.UnacknowledgedAlarm(pointName & "." & GSH_CPPARAM_PV) + end select + 'return alarm code + GSH_GETHIGHESTALARMPRIORITYPARAMETER = iAlarmCode +'gsh_log "GSH_GETHIGHESTALARMPRIORITYPARAMETER info Alarm Severity = " & iAlarmSeverity & ", Unacknowledged Alarm = " & oDataBoundObject.UnacknowledgedAlarm(pointName & "." & GSH_CPPARAM_PV) +'gsh_log_e("GSH_GETHIGHESTALARMPRIORITYPARAMETER returing " & iAlarmCode) +end function + + + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_GETHIGHESTALARMPRIORITY_OP '''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = data bound object within an HCS shape +'Returns: Alarm Code = GSH_ACKLOW, GSH_ACKHIGH, GSH_ACKEMERG, +' GSH_UNACKLOW, GSH_UNACKHIGH, GSH_UNACKEMERG, GSH_NOALARMCODE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETHIGHESTALARMPRIORITY_OP(oDataBoundObject) +'gsh_log_s("GSH_GETHIGHESTALARMPRIORITY_OP oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim iAlarmCode + iAlarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oDataBoundObject, GSH_CPENTITY, GSH_CPPARAM_OP) + GSH_GETHIGHESTALARMPRIORITY_OP = iAlarmCode +'gsh_log_e("GSH_GETHIGHESTALARMPRIORITY_OP returing " & iAlarmCode) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = data bound object within an HCS shape +' paraName - Script Data parameter Name +'Returns: Alarm Code = GSH_ACKLOW, GSH_ACKHIGH, GSH_ACKEMERG, +' GSH_UNACKLOW, GSH_UNACKHIGH, GSH_UNACKEMERG, GSH_NOALARMCODE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oDataBoundObject, pointName, parameter) +'gsh_log_s("GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER oDataBoundObject=" & oDataBoundObject.id & ", paraName=" & pointName & "." ¶meter) +on error resume next + Dim iAlarmCode, iAlarmSeverity, iUnackAlarmExists + '0 = no, 1 = low, 2= high, 3= urgent + + iAlarmSeverity = oDataBoundObject.AlarmSeverity(pointName & "." & parameter) + + if oDataBoundObject.UnacknowledgedAlarm(pointName & "." & parameter) then + iUnackAlarmExists = 1 + else + iUnackAlarmExists = 0 + end if + iAlarmCode = GSH_NOALARMCODE + + select case(2*iAlarmSeverity+iUnackAlarmExists) + case 0 + iAlarmCode = GSH_NOALARMCODE + case 1 + iAlarmCode = GSH_NOALARMCODE + case 2 + iAlarmCode = GSH_ACKLOW + case 3 + iAlarmCode = GSH_UNACKLOW + case 4 + iAlarmCode = GSH_ACKHIGH + case 5 + iAlarmCode = GSH_UNACKHIGH + case 6 + iAlarmCode = GSH_ACKEMERG + case 7 + iAlarmCode = GSH_UNACKEMERG + case else + + end select + 'return alarm code +' gsh_log "GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER info Alarm Severity = " & iAlarmSeverity & ", Unacknowledged Alarm = " & oDataBoundObject.UnacknowledgedAlarm(pointName & "." & parameter) +' gsh_log_e("GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER returing " & iAlarmCode) + + GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER = iAlarmCode +end function + +function GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oDataBoundObject, pointName, parameter) +'gsh_log_s("GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER oDataBoundObject=" & oDataBoundObject.id & ", paraName=" & pointName & "." ¶meter) +on error resume next + Dim iAlarmCode, iAlarmPriority, iUnackAlarmExists + '0 = no, 1 = low, 2= high, 3= urgent + + iAlarmPriority = oDataBoundObject.DataValue(pointName & "." & parameter) + + if oDataBoundObject.UnacknowledgedAlarm(pointName & "." & parameter) then + iUnackAlarmExists = 1 + else + iUnackAlarmExists = 0 + end if + iAlarmCode = GSH_NOALARMCODE + + select case(2*iAlarmPriority+iUnackAlarmExists) + case 0 + iAlarmCode = GSH_NOALARMCODE + case 1 + iAlarmCode = GSH_NOALARMCODE + case 2 + iAlarmCode = GSH_ACKLOW + case 3 + iAlarmCode = GSH_UNACKLOW + case 4 + iAlarmCode = GSH_ACKHIGH + case 5 + iAlarmCode = GSH_UNACKHIGH + case 6 + iAlarmCode = GSH_ACKEMERG + case 7 + iAlarmCode = GSH_UNACKEMERG + case else +' gsh_log "GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER error Alarm Severity = " & iAlarmSeverity & ", Unacknowledged Alarm = " & oDataBoundObject.UnacknowledgedAlarm(pointName & "." & parameter) + end select + 'return alarm code + 'gsh_log "GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER info iAlarmPriority = " & iAlarmPriority & ", Unacknowledged Alarm = " &iUnackAlarmExists + + GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER = iAlarmCode +'gsh_log_e("GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER returing " & iAlarmCode) +end function + + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Get Point PVSource ''''''''' '''''''''''''''''''''''''''''''''' +'Parameters: +' oShape - data bound object within an HCS Shape +'Returns: GSH_AUTO, GSH_MAN +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'return: GSH_AUTO, GSH_MAN +'Might be able to OMIT! +function GSH_GET_POINT_PVSOURCE(oDataBoundObject) +'gsh_log_s("GSH_GET_POINT_PVSOURCE " & "oDataBoundObject=" & oDataBoundObject.id) +on error resume next + dim tempReturn + Select Case GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject,GSH_CPVALUE,GSH_CPPOINTTYPE) + Case GSH_CPPOINTTYPE_SCADA + select case oDataBoundObject.DataValue(GSH_CPENTITY&"."&GSH_SCADA_PARAM_PVSOURCE) + case 0 + tempReturn = GSH_MAN + case 1 + tempReturn = GSH_AUTO + case else + tempReturn = GSH_AUTO 'Default + end select + Case GSH_CPPOINTTYPE_TPN + select case oDataBoundObject.DataValue(GSH_CPENTITY&"."&GSH_TPN_PARAM_PVSOURCE) + case 0 + tempReturn = GSH_MAN + case 1 + tempReturn = GSH_AUTO + case else + tempReturn = GSH_AUTO 'Default + end select + Case GSH_CPPOINTTYPE_C200 + tempReturn = GSH_NONE + CASE GSH_CPPOINTTYPE_C300 + tempReturn = GSH_NONE + End Select + GSH_GET_POINT_PVSOURCE = tempReturn +'gsh_log_e("GSH_GET_POINT_PVSOURCE returning >>>"&tempReturn&"<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Format Decimal Points''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject - data bound alphanumeric of HCS shape +'Returns: +' variant of formatted text to correct decimal places +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FORMATDECIMALPOINTS(oDataBoundObject) +'gsh_log_s("GSH_FORMATDECIMALPOINTS " & "oDataBoundObject=" & oDataBoundObject.id) +on error resume next + dim temp + temp = Right(GSH_READTAGINFORMATIONKEYVALUE(oDataBoundObject.parentElement.parentElement.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1) + oDataBoundObject.numericDisplayFormat = "%." & Right(GSH_READTAGINFORMATIONKEYVALUE(oDataBoundObject.parentElement.parentElement.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1) & "f" +'gsh_log_e("GSH_FORMATDECIMALPOINTS decimal points=" & temp) +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Format State Descriptor''''''''''''''''''''''''''''''''''''''' +'Parameters: stateValue - Value +'Returns: State value with 1st letter upper case and rest lowercase +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_FORMATSTATEDESCRIPTOR(sValue) +'gsh_log_s("GSH_FORMATSTATEDESCRIPTOR " & "sValue= " & sValue) +on error resume next + Dim formatValue + formatValue = Ucase(Left(sValue, 1)) & LCase(Right(sValue, len(sValue) - 1)) + GSH_FORMATSTATEDESCRIPTOR = formatValue +'gsh_log_e("GSH_FORMATSTATEDESCRIPTOR returns "& formatValue) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Get Parameter Value +'Parameters: +' oDataBoundObject - HCS Shape with Entity (of type Point)Custom Property and Scripted Data tab +' enabled with parameters of entity (point) +' pointName - Name of the point +' pointParameter - parameter of point (must be set up in scripted data tab +'Returns: +' DataValue of pointName.pointParameter from Experion point database +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETPARAMETERVALUE(oDataBoundObject, pointName, pointParameter) +'gsh_log_s("GSH_GETPARAMETERVALUE " & "oDataBoundObject=" & oDataBoundObject.id & ",pointName=" & pointName & ",pointParameter=" & pointParameter) + Dim tempReturn +' gsh_log("GSH_GETPARAMETERVALUE>>" & oDataBoundObject.DataValue(pointName&"."&pointParameter)) + tempReturn = oDataBoundObject.DataValue(pointName&"."&pointParameter) + GSH_GETPARAMETERVALUE = tempReturn +'gsh_log_e("GSH_GETPARAMETERVALUE returning >>>" & tempReturn&"<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: Get Entity Parameter Value +'Parameters: +' oDataBoundObject - HCS Shape with Entity (of type Point) Custom Property and Scripted Data tab +' enabled with parameters of entity (point) +' parameter - parameter of point (must be set up in scripted data tab +'Returns: +' DataValue of GSH_CPENTITY("Entity").parameter from Experion point database +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,parameter) +'gsh_log_s("GSH_GETENTITYPARAMETERVALUE " & "oDataBoundObject=" & oDataBoundObject.id & ",parameter=" & parameter) + Dim tempReturn +' gsh_log("GSH_GETENTITYPARAMETERVALUE>>" & oDataBoundObject.DataValue(GSH_CPENTITY&"."¶meter)) + + tempReturn = oDataBoundObject.DataValue(GSH_CPENTITY&"."¶meter) + If (StrComp(tempReturn,"1.#QNAN",vbTextCompare)=0) then + tempReturn = GSH_BADPV_TEXT + end If + + GSH_GETENTITYPARAMETERVALUE = tempReturn +'gsh_log_e("GSH_GETENTITYPARAMETERVALUE returning >>>" & tempReturn&"<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: Show High Alarm +' sets the common High Alarm behaviour of HCS Shapes by using CSS +'Parameters: +' oShape - HCS Shape with 'shp_outline (object) with internal object named 'outline' +' shp_EAlarm, shp_HAlarm, shp_LAlarm +' unAcknowledged - true or false , true if you want to show UnAcknowledged Alarm Behavior +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHOWHIGHALARM(oShape,unAcknowledged) +'gsh_log_s("GSH_SHOWHIGHALARM oShape=" & oShape.id & ",unAcknowledged=" & cstr(unAcknowledged)) +on error resume next + oShape.objects("outline").style.visibility = GSH_VISIBLE +' oShape.objects("outlinestatic").style.visibility = GSH_VISIBLE + oShape.objects("txt_HAlarm").style.visibility = GSH_VISIBLE + oShape.objects("rec_HAlarm").style.visibility = GSH_VISIBLE + if unAcknowledged then oShape.objects("outline").styleClass = GSH_CSSALARMHIGHUNACK else oShape.objects("outline").styleClass = GSH_CSSALARMHIGHACK end if + oShape.objects("txt_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ovl_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("plg_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_EAlarm").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_SHOWHIGHALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: Show Low Alarm +' sets the common Low Alarm behaviour of HCS Shapes by using CSS +'Parameters: +' oShape - HCS Shape with 'shp_outline (object) with internal object named 'outline' +' shp_EAlarm, shp_HAlarm, shp_LAlarm +' unAcknowledged - true or false , true if you want to show UnAcknowledged Alarm Behavior +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHOWLOWALARM(oShape,unAcknowledged) +'gsh_log_s("GSH_SHOWLOWALARM oShape=" & oShape.id & ",unAcknowledged=" & cstr(unAcknowledged)) +on error resume next + + oShape.objects("txt_LAlarm").style.visibility = GSH_VISIBLE + oShape.objects("ovl_LAlarm").style.visibility = GSH_VISIBLE + if unAcknowledged then oShape.objects("outline").styleClass = GSH_CSSALARMLOWUNACK else oShape.objects("outline").styleClass = GSH_CSSALARMLOWACK end if + oShape.objects("txt_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("rec_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("plg_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("outline").style.visibility = GSH_VISIBLE +' oShape.objects("outlinestatic").style.visibility = GSH_VISIBLE + +'gsh_log_e("GSH_SHOWLOWALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: Show Emergency Alarm +' sets the common Emergency Alarm behaviour of HCS Shapes by using CSS +'Parameters: +' oShape - HCS Shape with 'shp_outline (object) with internal object named 'outline' +' shp_EAlarm, shp_HAlarm, shp_LAlarm +' unAcknowledged - true or false , true if you want to show UnAcknowledged Alarm Behavior +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHOWEMERGENCYALARM(oShape,unAcknowledged) +'gsh_log_s("GSH_SHOWEMERGENCYALARM oShape=" & oShape.id & ",unAcknowledged=" & cstr(unAcknowledged)) +on error resume next + oShape.objects("outline").style.visibility = GSH_VISIBLE +' oShape.objects("outlinestatic").style.visibility = GSH_VISIBLE + oShape.objects("txt_EAlarm").style.visibility = GSH_VISIBLE + oShape.objects("plg_EAlarm").style.visibility = GSH_VISIBLE + if unAcknowledged then oShape.objects("outline").styleClass = GSH_CSSALARMEMERGENCYUNACK else oShape.objects("outline").styleClass = GSH_CSSALARMEMERGENCYACK end if + oShape.objects("txt_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("rec_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ovl_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_LAlarm").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_SHOWEMERGENCYALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: Show No Alarm +' sets the common Alarm objects to not visible when point is not in alarm. +'Parameters: +' oShape - HCS Shape with 'shp_outline (object) with internal object named 'outline' +' shp_EAlarm, shp_HAlarm, shp_LAlarm +' unAcknowledged - true or false , true if you want to show UnAcknowledged Alarm Behavior +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHOWNOALARM(oShape) +'gsh_log_s("GSH_SHOWNOALARM oShape=" & oShape.id) +on error resume next + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("outline").styleClass = GSH_CSSALARMNONE +' oShape.objects("outlinestatic").style.visibility = GSH_HIDDEN + oShape.objects("txt_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("plg_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("rec_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ovl_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_LAlarm").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_SHOWNOALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'INIT DISPLAY '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_INITDISPLAY(DisplayType, sT2FileName, sT3FileName, sT4FileName, displayObject) +on error resume next +'gsh_log_s("GSH_INITDISPLAY " & "DisplayType=" & DisplayType & ",sT2FileName=" & sT2FileName & ",sT3FileName=" & sT3FileName & ",sT4FileName=" & sT4FileName & ",displayObject=" & displayObject.id) + Dim sDisplayLocation + Dim sTemp + Dim sUseT4Default + sDisplayLocation = GSH_READDISPLAYNAMES(GSH_DISPLAYDEFAULT_LOC) + Select Case DisplayType + Case 2 + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_T2FN,sT2FileName + Case 3 + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_T3FN,sT3FileName + GSH_WRITEDISPLAYINFORMATION sT2FileName, GSH_REGKEY_PRIORT3, sT3FileName + +''' was commented out 1June08 - but lost the right click to level 4n from tabs - JE + sUseT4Default = GSH_READDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_USET4,"NO") + If sUseT4Default = "YES" And sT4FileName <> "" Then + sTemp = sDisplayLocation & sT4FileName & GSH_DISPLAYFILEEXTENSION + 'GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_T4FN,sT4FileName + + 'Sept 12, 2008 - use window.external.CurrentPage instread of using safeview (CL) + 'because the safeview's function SetFocus does not work. + 'window.navigate call does not work either as it will display L4 on L3 place. + window.external.CurrentPage = sTemp + 'GSH_INVOKEDISPLAY GSH_SVIEW_TYPE4,sTemp + 'window.navigate(sTemp) + + + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_USET4,"NO" + End If +'' to here + Case 4 + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_T4FN,sT4FileName + GSH_WRITEDISPLAYINFORMATION sT2FileName, GSH_REGKEY_PRIORT4, sT4FileName + End Select + g_PageCurrentFocusTag = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_FOCUSTAG,"") + g_PageShapesInit = 1 + + g_PageLoadTimerID=window.setTimeout("g_PageLoadCompleted = true",1500/DisplayType) +'gsh_log_e("GSH_INITDISPLAY DisplayType=" & DisplayType) +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'INIT Faceplate ''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_INITFACEPLATE(sFaceplateFileName, displayObject) +'gsh_log_s("GSH_INITFACEPLATE " & "sFaceplateFileName=" & sFaceplateFileName & ",displayObject=" & displayObject.id) +on error resume next + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_FacePlateFN,sFaceplateFileName + txt_Description.value = GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_REGKEY_DESCR, defaultString) + txt_Keyword.value = GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_REGKEY_KEYWORD, defaultString) + txt_Units.value = GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_REGKEY_UNITS, defaultString) + txt_alarmlim1.value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & GSH_ALARMLIM1) + txt_alarmlim2.value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & GSH_ALARMLIM2) + txt_alarmlim3.value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & GSH_ALARMLIM3) + txt_alarmlim4.value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & GSH_ALARMLIM4) + txt_euhi.value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & GSH_EUHI) + txt_eulo.value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & GSH_EULO) + +'Setup Alarm Limits +call showAlarmLimits + + call FP_RetrieveRegistryValues + call GSH_DetailTrendInitialize(ConAlpTagname.value) + call GSH_STARTDETAILTRENDTIMER(ConAlpTagname) +'gsh_log_e("GSH_INITFACEPLATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_INVOKEDISPLAY +'Use this function to open a URL in a specified Safeview Window +'sWindowType = SafeView Window Type +'sURL = URL of the Display +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_INVOKEDISPLAY (sWindowType, sURL) +'gsh_log_s("GSH_INVOKEDISPLAY sWindowType="&sWindowType&", sURL="&sURL) + dim sview + set sview = GetObject("" ,"Honeywell.Workspace.Client") + If sview.IsManagerActive = true then + 'dim bResult + 'bResult = sview.SetOutputFocus(sWindowType) + 'Sept12,2008 - Comment out because bResult is alway false (CL) + 'gsh_log("SetOutputFocus result "&bResult) + 'if bResult then + ' window.external.CurrentPage = sURL + 'end if + End if + window.external.CurrentPage = sURL + 'window.navigate(sURL) + set sview = nothing +'gsh_log_e("GSH_INVOKEDISPLAY") +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_UPDATESHAPESONDISPLAY +' This function fires the focus.onupdate event for all shapes' on the page +' It is called from the GSH_ONSHAPECLICKEVENTHANDLER on the page level +'***Assumes that the shape structure contains an object called +'*** focus +'sURL = URL of the Display +'06/07/07 removed check for shapename; now shapes can be renamed on the display +'06/07/07 use rec_datascript.onupdate instead of focus.update because it's +' still performant and has consistent updates for all shapes e.g. valves and levels +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_UPDATESHAPESONDISPLAY (sURL) +'gsh_log_s("GSH_UPDATESHAPESONDISPLAY sURL="&sURL) + +on error resume next + +Dim tempShape + For k=0 To (window.external.Page.children.length - 1) + set tempShape = window.external.Page.children(k).Objects("focus") +' set tempShape = window.external.Page.children(k).Objects("rec_datascript") + if tempShape then + tempShape.onupdate + end if + Next +set tempShape = nothing +'gsh_log_e("GSH_UPDATESHAPESONDISPLAY Focus SuppressedOnPgInit sURL="&sURL) +end sub + +' +'-------------------------------------END SHAPE GENERAL----------------------------------------------' +' + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' GSH_UPDATETAGNAMELABELONDISPLAY +' Updates the state of the TagNameLabel shape based on TagNameLabelVisible flag +' in the StationDataRespository +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_UPDATETAGNAMELABELONDISPLAY (sURL) +'gsh_log_s("GSH_UPDATETAGNAMELABELONDISPLAY sURL="&sURL) +on error resume next +Dim tempShape + For k=0 To (window.external.Page.children.length - 1) + set tempShape = window.external.Page.children(k).Objects("TagNameLabel_Script") + if tempShape then + tempShape.onupdate + end if + Next +set tempShape = nothing +'gsh_log_e("GSH_UPDATETAGNAMELABELONDISPLAY sURL="&sURL) +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' GSH_UPDATE_OPDEVMON_ONDISPLAY +' Updates the state of the OPDevMonitor shapes +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_UPDATE_OPDEVMON_ONDISPLAY (sURL) +'gsh_log_s("GSH_UPDATE_OPDEVMON_ONDISPLAY sURL="&sURL) +on error resume next +Dim tempShape + For k=0 To (window.external.Page.children.length - 1) + set tempShape = window.external.Page.children(k).Objects("OPDevMonitor_Script") + if tempShape then + tempShape.onupdate + end if + Next +set tempShape = nothing +'gsh_log_e("GSH_UPDATE_OPDEVMON_ONDISPLAY sURL="&sURL) +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' GSH_UPDATEPAGELINKONDISPLAY +' Updates the state of the GEN_PageLink shape based on PageLinkAlarmGroup +' in the Registry +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_UPDATEPAGELINKONDISPLAY (sURL) +'gsh_log_s("GSH_UPDATEPAGELINKONDISPLAY sURL="&sURL) +on error resume next +Dim tempShape + For k=0 To (window.external.Page.children.length - 1) + set tempShape = window.external.Page.children(k).Objects("PageLink_Script") + if tempShape then + tempShape.onupdate + end if + Next +set tempShape = nothing +'gsh_log_e("GSH_UPDATEPAGELINKONDISPLAY sURL="&sURL) +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GETDEMANDTREND''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' sSection - registry section +' sKey - registry subkey +' sDefaultString - Default string if error of nothing found +'Returns: +' String, value of specified Demand\Trend subkey +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETDEMANDTREND(strSection,strKey,defaultString) +'gsh_log_s("GSH_GETDEMANDTREND " & "strSection=" & strSection & ",strKey=" & strKey & ",defaultString=" & defaultString ) +on error resume next + dim strRegLocation, tempReturn + strRegLocation = GSH_REGISTRY_DEMANDTRD & strSection & "\" & strKey + tempReturn = GSH_READREGISTRY(strRegLocation,defaultString) + GSH_GETDEMANDTREND = tempReturn +'gsh_log_e("GSH_GETDEMANDTREND returning " & tempReturn) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SETDEMANDTREND''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' sSection - registry section +' sKey - registry subkey +' sDefaultString - Default string if error of nothing found +'Returns: +' String, value of specified Demand\Trend subkey +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SETDEMANDTREND(strSection,strKey,strValue) +'gsh_log_s("GSH_SETDEMANDTREND " & "strSection=" & strSection & ",strKey=" & strKey & ",strValue=" & strValue ) +on error resume next + dim strRegLocation + strRegLocation = GSH_REGISTRY_DEMANDTRD & strSection & "\"& strKey +' 'gsh_log("GSH_SETDEMANDTREND checkPoint strRegLocation=" & strRegLocation) + GSH_WRITETOREGISTRY strRegLocation,strValue,"REG_SZ" +'gsh_log_e("GSH_SETDEMANDTREND") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SETANYTREND''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' sTrendApp - trend application name +' sSection - registry section +' sKey - registry subkey +' sDefaultString - Default string if error of nothing found +'Returns: +' String, value of specified Demand\Trend subkey +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SETANYTREND(strTrendApp,strSection,strKey,strValue) +'gsh_log_s("GSH_SETANYTREND " & "strTrendApp=" & strTrendApp & ", strSection=" & strSection & ", strKey=" & strKey & ", strValue=" & strValue ) +on error resume next + dim strRegLocation + strRegLocation = GSH_REGISTRY_OPERATORTREND & "\" & strTrendApp & "\" & strSection & "\"& strKey +' gsh_log("GSH_SETANYTREND checkPoint strRegLocation=" & strRegLocation) + GSH_WRITETOREGISTRY strRegLocation,strValue,"REG_SZ" +'gsh_log_e("GSH_SETANYTREND") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GETMENUCONFIG''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' sKey - registry subkey +' sDefaultString - Default string if error of nothing found +'Returns: +' String, value of specified MenuConfig subkey +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETMENUCONFIG(strKey,defaultString) +'gsh_log_s("GSH_GETMENUCONFIG " & "strKey=" & strKey & ",defaultString=" & defaultString ) +on error resume next + dim strRegLocation, tempReturn + strRegLocation = GSH_REGISTRY_BASE & GSH_REGISTRY_MENUCONFIG & strKey + 'gsh_log("GSH_GETMENUCONFIG checkPoint strRegLocation=" & strRegLocation) + tempReturn = GSH_READREGISTRY(strRegLocation,defaultString) + GSH_GETMENUCONFIG = tempReturn +'gsh_log_e("GSH_GETMENUCONFIG returning & " & tempReturn) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GETMENUCONFIG_EQUIPMENT''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' sKey - registry subkey +' sDefaultString - Default string if error of nothing found +'Returns: +' String, value of specified MenuConfig subkey +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETMENUCONFIG_EQUIPMENT(strKey,defaultString) +'gsh_log_s("GSH_GETMENUCONFIG_EQUIPMENT " & "strKey=" & strKey & ",defaultString=" & defaultString ) +on error resume next + dim strRegLocation, tempReturn + strRegLocation = GSH_REGISTRY_BASE & GSH_REGISTRY_MENUCONFIG_EQUIPMENT & strKey +' gsh_log("GSH_GETMENUCONFIG_EQUIPMENT checkPoint strRegLocation=" & strRegLocation) + tempReturn = GSH_READREGISTRY(strRegLocation,defaultString) + GSH_GETMENUCONFIG_EQUIPMENT = tempReturn +'gsh_log_e("GSH_GETMENUCONFIG_EQUIPMENT returning " & tempReturn) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_RIGHTCLICK '''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_RIGHTCLICK(oDataBoundObject) +'gsh_log_s("GSH_RIGHTCLICK " & "oDataBoundObject=" & oDataBoundObject) +Dim sTagName + sTagName = oDataBoundObject.getCustomProperty("point","Entity") + call GSH_RIGHTCLICKTAGNAME(oDataBoundObject, sTagName) +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_RIGHTCLICKTAGNAME ''''''''''''''''''''''''''''''''''''''''''''''''' +'06/01/07 Added sTagNameHDA from the TagInformation because the Historian names do not match the tagname +'06/01/07 parse out the function block for storing the itemAlias +'08/21/2008 (CL) Add a check to determine if we should use shortname for HDA Item path in order to work with Sasol PHD historian interface (Issue#21) +'10/06/2008 (CL) Add writing value of tag euhigh and eulow to trend range high and trend range low to allow the trend use +' the range from registry when the range is not available from the historian +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_RIGHTCLICKTAGNAME(oDataBoundObject, sTagName) +'gsh_log_s("GSH_RIGHTCLICKTAGNAME " & "oDataBoundObject=" & oDataBoundObject & " sTagName=" & sTagName) +Dim DispStr(), asCommandStr(), asTrendParams(),asDeleteParams(8), asTraceNames(8), asStepped(8),asPVFormat(8), asActive(8), asTrendParamShort(8), asEUHIGH(8), asEULOW(8) +Dim nRetVal,nNumTrendParams, nNumCommands, nCount, nIndex, nAddIndex, nDeleteIndex, nCommandIndex, nCancelIndex, istrLen, iPosition +Dim nNumTrends, vTrendAvail, sParseStr, sTemp, nActiveCount, sPathPrefix, sPVFormat, sTagNameAlias, sPVeuhigh, sPVeulow + 'Check Registry for Tag Name Alias + sTagNameAlias = GSH_READTAGINFORMATIONKEYVALUE(sTagName, GSH_REGKEY_TAGNAME_ALIAS, sTagName) + nIndex = 0 + nNumTrends = 8 + nNumTrendParams = GSH_READTAGINFORMATIONKEYVALUE(sTagName, "NoOfTrendingParams", 0) + nNumCommands = GSH_GETMENUCONFIG(GSH_REGKEY_NUMCMDS, 0) + sPVFormat = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT) + sPathPrefix = GSH_GETDEMANDTREND (GSH_REGISTRY_SETTINGS,GSH_REGKEY_PATHPREFIX, "") + + '10/06/2008 CL + sPVeuhigh = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_EUHIGH, 0) + sPVeulow = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_EULOW, 0) + + If nNumTrendParams > 0 Then + ReDim asTrendParams(nNumTrendParams-1) + End If + + If nNumCommands > 0 Then + ReDim asCommandStr(nNumCommands-1) + End If + + nActiveCount = 0 + For nCount = 1 To nNumTrends Step 1 + asTraceNames(nCount) = GSH_GETDEMANDTREND (GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ITEMALIAS, "") + asActive(nCount) = GSH_GETDEMANDTREND (GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, "OFF") + asDeleteParams(nCount) = "" + If asActive(nCount) <> "OFF" Then + nActiveCount = nActiveCount + 1 + asDeleteParams(nCount) = asTraceNames(nCount) + End If + Next + + If (nNumTrendParams > 0) Then + For nCount = 1 To nNumTrendParams Step 1 + asTrendParams(nCount-1) = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_TRENDPARAM & nCount, "") + istrLen = len(asTrendParams(nCount-1)) + iPosition= Instr(1, asTrendParams(nCount-1) , ".",vbtextcompare) + asTrendParamShort(nCount-1) = right(asTrendParams(nCount-1), istrLen - iPosition) + asStepped(nCount) = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_TRENDSTEPPED & nCount, "OFF") + Select Case asTrendParamShort(nCount-1) +' Select Case asTrendParams(nCount-1) + Case "PV" + asPVFormat(nCount) = sPVFormat + + '10/06/2008 CL + asEUHIGH(nCount) = sPVeuhigh + asEULOW(nCount) = sPVeulow + Case "SP" + asPVFormat(nCount) = sPVFormat + asEUHIGH(nCount) = sPVeuhigh + asEULOW(nCount) = sPVeulow + Case "OP" + asPVFormat(nCount) = "D1" + asEUHIGH(nCount) = 106.9 + asEULOW(nCount) = -6.9 + Case Else + asPVFormat(nCount) = "D1" + asEUHIGH(nCount) = 100 + asEULOW(nCount) = 0 + End Select + Next + End If + + If (nNumCommands > 0) Then + For nCount = 1 To nNumCommands Step 1 + asCommandStr(nCount-1) = GSH_GETMENUCONFIG(GSH_REGKEY_CMDSTR & nCount, "") + Next + End If + + dim tempNumber + tempNumber = nNumTrendParams + 5 + nNumCommands + nActiveCount + + ReDim DispStr(tempNumber) + DispStr(nIndex) = "Tag : " & sTagNameAlias + nIndex = nIndex + 1 + DispStr(nIndex) = "" + nIndex = nIndex + 1 + If (nNumTrendParams > 0) Then + nAddIndex = nIndex + For nCount = 0 To UBound(asTrendParams) Step 1 + DispStr(nIndex) = "Add Trace " & sTagNameAlias & "." & asTrendParams(nCount) + nIndex = nIndex + 1 + Next + End If + If (nActiveCount > 0) Then + DispStr(nIndex) = "" + nIndex = nIndex + 1 + nDeleteIndex = nIndex + For nCount = 1 To nNumTrends Step 1 + If asDeleteParams(nCount) <> "" Then + DispStr(nIndex) = "Delete Trace " & asDeleteParams(nCount) + nIndex = nIndex + 1 + End If + Next + DispStr(nIndex) = "" + nIndex = nIndex + 1 + Else + DispStr(nIndex) = "" + nIndex = nIndex + 1 + End If + If (nNumCommands > 0) Then + nCommandIndex = nIndex + For nCount = 0 To UBound(asCommandStr) Step 1 + DispStr(nIndex) = asCommandStr(nCount) + nIndex = nIndex + 1 + Next + End If + nCancelIndex = nIndex + + If nNumCommands = 0 Then + nCommandIndex = nCancelIndex + End If + + 'CallAgain: + nRetVal = 0 + do while nRetVal = 0 + + Dim ArrMenu ' As ArrPopupMenuX + Set ArrMenu = CreateObject("ArrPopupMenuXControl.ArrPopupMenuX") + ArrMenu.ShowMenuArr DispStr + nRetVal = ArrMenu.Item + If nActiveCount = 0 Then 'added this to handle case when all traces are inactive + nDeleteIndex = nAddIndex + nNumTrendParams + End If + loop + Set ArrMenu = Nothing + Dim sOPC1_PathPrefix,sOPC2_PathPrefix, sTagNameHDA, bUseShortNameForHDA + sOPC1_PathPrefix = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_OPCKEY1PREFIX,"") + sOPC2_PathPrefix = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_OPCKEY2PREFIX,"") + bUseShortNameForHDA = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_USESHORTNAME_FOR_HDAPATH,"") + + If ((nRetVal >= nAddIndex) And (nRetVal < nDeleteIndex)) Then + For nCount = 1 To nNumTrends Step 1 + If asActive(nCount) = GSH_OFF Then + sTagNameHDA = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_TAGNAMEHDA, sTagName) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ITEMALIAS, sTagNameAlias & "." & asTrendParamShort(nRetVal - nAddIndex) + + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPCITEMPATH, sOPC1_PathPrefix & sTagName & "." & asTrendParams(nRetVal - nAddIndex) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPC2ITEMPATH, sOPC2_PathPrefix & sTagName & "." & asTrendParams(nRetVal - nAddIndex) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, GSH_ON + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TRENDSTEPPED, asStepped(nRetVal - nAddIndex + 1) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_PVFORMATKEY, asPVFormat(nRetVal - nAddIndex + 1) + + 'Added 10/06/2008 (CL) add to allows trend to use range from registry if they are not available from historian + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_HIGH, asEUHIGH(nRetVal - nAddIndex + 1) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_LOW, asEULOW(nRetVal - nAddIndex + 1) + + 'Added 08/21/2008 (CL) to work with Sasol PHD historian interface + 'Issue#21: http://wss-edm-1/clients/hcs/services/ISE-HCS8227/ClientProjectAccess/Lists/Issue%20Tracker/DispForm.aspx?ID=21 + If(UCASE(bUseShortNameForHDA) = "ON") then + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, sTagNameHDA & "." & asTrendParamShort(nRetVal - nAddIndex) + + Else + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, sTagNameHDA & "." & asTrendParams(nRetVal - nAddIndex) + End If + + Exit Sub + End If + Next + msgbox "Sorry ! No Traces available. Please delete a Trace before adding a new one." & Chr(13),,"HMI Operator Interface" + ElseIf ((nRetVal >= nDeleteIndex) And (nRetVal < nCommandIndex)) Then + nCount = nRetVal - nDeleteIndex + 1 + nDelete = 1 + For n = 1 To nNumTrends ' Step 1 + 'gsh_log("nCount"&nCount&",n"&n&", nDelete"&nDelete) + If asActive(n) <> GSH_OFF Then + If nDelete = nCount Then + 'gsh_log ("DELETE TRACE_"&n) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE&n,GSH_REGKEY_ACTIVE, GSH_OFF + Exit Sub + End If + nDelete = nDelete + 1 + End If + Next + + ElseIf (nRetVal >= nCommandIndex) And (nRetVal < nCancelIndex) Then + 'gsh_log("GSH_RIGHTCLICKTAGNAME nRetVal=" & nRetVal) + Dim nLen, nTemp, sCommandLeft, sCommandRight, sCommand + sParseStr = GSH_GETMENUCONFIG(GSH_REGKEY_CMDSTRING & ((nRetVal-nCommandIndex)+1), "") + nLen = Len(sParseStr) + nTemp = Instr(1,sParseStr,"XXXXXX",1) + + If nTemp = 0 Then ' do not need to add tag name to command + sCommand = sParseStr + Else + sCommandLeft = left(sParseStr,(nTemp - 1)) + nTemp = nLen - nTemp - 5 + If nTemp < 1 Then + sCommandRight = "" + Else + sCommandRight = right(sParseStr,(nTemp)) + End If + sCommand = sCommandLeft & sTagName & sCommandRight + End If + 'gsh_log("GSH_RIGHTCLICKTAGNAME sCommand=" & sCommand) + id = window.parent.external.shell(sCommand,1) + ElseIf (nRetVal = nCancelIndex) Then +' gsh_log_e("GSH_RIGHTCLICKTAGNAME1") + Exit Sub + End If +' gsh_log_e("GSH_RIGHTCLICKTAGNAME2") + Exit Sub +'gsh_log_e("GSH_RIGHTCLICKTAGNAME3") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_RIGHTCLICKEQUIPMENTNAME ''''''''''''''''''''''''''''''''''''''''''''''''' +'25Mar2008 created for Sasol - JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_RIGHTCLICKEQUIPMENTNAME(oDataBoundObject) +'gsh_log_s("GSH_RIGHTCLICKEQUIPMENTNAME ") +Dim DispStr(), asCommandStr() +Dim nRetVal, nNumCommands, nCount, nIndex, nCommandIndex, nCancelIndex, istrLen, iPosition +Dim sParseStr, sTemp, sPathPrefix, sEquipmentName, sSearchstring + + sEquipmentName = oDataBoundObject.GetCustomProperty("Value","TxtLabel") + sSearchstring = oDataBoundObject.GetCustomProperty("Value","Searchstring") + + nIndex = 0 + nNumCommands = GSH_GETMENUCONFIG_EQUIPMENT(GSH_REGKEY_NUMCMDS, 0) +' gsh_log("GSH_RIGHTCLICKEQUIPMENTNAME sEquipmentName=" & sEquipmentName & ",nIndex=" & nIndex & ",nNumCommands=" & nNumCommands) + + nActiveCount = 0 + If nNumCommands > 0 Then + ReDim asCommandStr(nNumCommands-1) + For nCount = 1 To nNumCommands Step 1 + asCommandStr(nCount-1) = GSH_GETMENUCONFIG_EQUIPMENT(GSH_REGKEY_CMDSTR & nCount, "") + Next + End If + + dim tempNumber + tempNumber = 5 + nNumCommands +' gsh_log("GSH_RIGHTCLICKEQUIPMENTNAME tempNumber=" &tempNumber) + + ReDim DispStr(tempNumber) +' gsh_log("GSH_RIGHTCLICKEQUIPMENTNAME Dim of DispStr=" & UBound(DispStr)) + DispStr(nIndex) = "Tag : " & sEquipmentName + nIndex = nIndex + 1 + DispStr(nIndex) = "" + nIndex = nIndex + 1 +' gsh_log("GSH_RIGHTCLICKEQUIPMENTNAME nIndex=" &nIndex) + + If (nNumCommands > 0) Then + nCommandIndex = nIndex + For nCount = 0 To UBound(asCommandStr) Step 1 + DispStr(nIndex) = asCommandStr(nCount) + nIndex = nIndex + 1 + Next + End If +' gsh_log("GSH_RIGHTCLICKEQUIPMENTNAME after nNumCommands nIndex=" &nIndex) + nCancelIndex = nIndex +' gsh_log("GSH_RIGHTCLICKEQUIPMENTNAME DispStr populated: nIndex=" & nIndex) + + 'Debugging +' For nCount = 0 To nIndex Step 1 +' gsh_log("GSH_RIGHTCLICKEQUIPMENTNAME nCount=" &nCount&"DispStr(nCount)"& DispStr(nCount)) +' Next +' gsh_log("GSH_RIGHTCLICKEQUIPMENTNAME nCommandIndex=" &nCommandIndex) + + If nNumCommands = 0 Then + nCommandIndex = nCancelIndex + End If + + 'CallAgain: + nRetVal = 0 + do while nRetVal = 0 + + Dim ArrMenu ' As ArrPopupMenuX + Set ArrMenu = CreateObject("ArrPopupMenuXControl.ArrPopupMenuX") + ArrMenu.ShowMenuArr DispStr + nRetVal = ArrMenu.Item +' gsh_log("GSH_RIGHTCLICKEQUIPMENTNAME nRetVal=" & nRetVal) + loop + Set ArrMenu = Nothing + If (nRetVal >= nCommandIndex) And (nRetVal < nCancelIndex) Then +' gsh_log("GSH_RIGHTCLICKEQUIPMENTNAME nRetVal=" & nRetVal) + Dim nLen, nTemp, sCommandLeft, sCommandRight, sCommand + sParseStr = GSH_GETMENUCONFIG_EQUIPMENT(GSH_REGKEY_CMDSTRING & ((nRetVal-nCommandIndex)+1), "") + nLen = Len(sParseStr) + nTemp = Instr(1,sParseStr,"XXXXXX",1) + + If nTemp = 0 Then ' do not need to add search string to command + sCommand = sParseStr + Else + sCommandLeft = left(sParseStr,(nTemp - 1)) + nTemp = nLen - nTemp - 5 + If nTemp < 1 Then + sCommandRight = "" + Else + sCommandRight = right(sParseStr,(nTemp)) + End If + sCommand = sCommandLeft & sSearchString & sCommandRight + End If +' gsh_log("GSH_RIGHTCLICKEQUIPMENTNAME sCommand=" & CStr(sCommand) & " sCommandLeft=" & sCommandLeft &" sCommandRight=" & sCommandRight) + id = window.parent.external.shell(CStr(sCommand),1) + ElseIf (nRetVal = nCancelIndex) Then +' gsh_log_e("GSH_RIGHTCLICKEQUIPMENTNAME1") + Exit Sub + End If +' gsh_log_e("GSH_RIGHTCLICKEQUIPMENTNAME2") + Exit Sub +'gsh_log_e("GSH_RIGHTCLICKEQUIPMENTNAME3") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GET_POINT_RAMPING_VALUE'''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = grp subshape name or me, if calling within subshape +'Returns GSH_RAMPING_NONE or GSH_RAMPING_RUN or GSH_RAMPING_PRESET or value from control database +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GET_POINT_RAMPING_VALUE(oDataBoundObject) +'gsh_log_s("GSH_GET_POINT_RAMPING_VALUE oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim tempReturn +tempReturn = GSH_RAMPING_NONE + Select Case GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_RAMP) + Case GSH_RAMPING_RUN + tempReturn = GSH_RAMPING_RUN + Case GSH_RAMPING_PRESET + tempReturn = GSH_RAMPING_PRESET + Case else + tempReturn = GSH_RAMPING_NONE + End Select +GSH_GET_POINT_RAMPING_VALUE = tempReturn +'gsh_log_e("GSH_GET_POINT_RAMPING_VALUE returning >>>" & tempReturn & "<<<") +end function + +function GSH_SHOWWINDUPSTATUS(sWindupCode,oShape) +'gsh_log_s("GSH_SHOWWINDUPSTATUS " & "sWindupCode=" & sWindupCode & ",oShape=" & oShape.id) +dim tempReturn: tempReturn = true + Select Case sWindupCode + Case GSH_WINDUP_LO + oShape.objects("plg_OpLow").style.visibility = GSH_VISIBLE + Case GSH_WINDUP_HI + oShape.objects("plg_OpHigh").style.visibility = GSH_VISIBLE + Case GSH_WINDUP_INIT + oShape.objects("txt_Initialization").style.visibility = GSH_VISIBLE + Case else + tempReturn = false 'do nothing because visibility is hidden by default and in Show Normal + end Select +GSH_SHOWWINDUPSTATUS = tempReturn +'gsh_log_e("GSH_SHOWWINDUPSTATUS returns >>>>>>>>> "&tempReturn) +end function +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_C200_ISALARMINGDISABLEDPARAMETER +'Parameters: +' oDataBoundObject - HCS Group Shape +' pointName - point Name +'Returns: +' boolean +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_ISALARMINGDISABLEDPARAMETER(oDataBoundObject, pointName) +'gsh_log_s("GSH_C200_ISALARMINGDISABLEDPARAMETER oDataBoundObject=" & oDataBoundObject.id & ", pointName=" & pointName) +on error resume next + Dim tempReturn + tempReturn = GSH_GETPARAMETERVALUE(oDataBoundObject, pointName, GSH_C200_PARAM_ALARMDISABLED) + if ( tempReturn = 0) then: tempReturn = true: else: tempReturn = false: end if +GSH_C200_ISALARMINGDISABLEDPARAMETER = tempReturn +'gsh_log_e("GSH_C200_ISALARMINGDISABLEDPARAMETER returning >>>" & cstr(tempReturn) & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_ANALOG_POINT_IS_OFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oDataBoundObject,sPointName,sOffNormalParam) +'gsh_log_s("GSH_C200_ANALOG_POINT_IS_OFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName & ",sOffNormalParam=" & sOffNormalParam ) +on error resume next +Dim tempReturn + +'''''Jamie Jan. 24, 2010''''' + + tempReturn = false + temp = GSH_GETPARAMETERVALUE(oDataBoundObject, sPointName, sOffNormalParam) + if strComp(temp,GSH_NODATA,vbTextCompare)<> 0 then + if strComp(temp,GSH_AUTO,vbTextCompare) <> 0 then + tempReturn = true + end if + end if +GSH_C200_ANALOG_POINT_IS_OFFNORMAL = tempReturn +'gsh_log_e("GSH_C200_ANALOG_POINT_IS_OFFNORMAL returning >>>" & tempReturn & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_DIGITAL_POINT_IS_OFFNORMAL''''''''''''''''''''''''''''''''' +'Function: only checks if Digital State is offnormal +'Parameters: +' oDataBoundObject = id of object with script data tab +' sPointName = Point name from to access tagname +' sDigitalStateTxt = string value to compare to registry tag info to determine if its offnormal +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oDataBoundObject,sPointName, sDigitalStateTxt) +'gsh_log_s("GSH_C200_DIGITAL_POINT_IS_OFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName) +on error resume next + Dim sTagname, sIsDigitalStateOffnormal + sTagname = GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + sIsDigitalStateOffnormal = GSH_DIGITAL_GETOFFNORMALSTATUS(sTagname, GSH_REGKEY_PVNORMAL_STATE, sDigitalStateTxt) + GSH_C200_DIGITAL_POINT_IS_OFFNORMAL = sIsDigitalStateOffnormal +'gsh_log_e("GSH_C200_DIGITAL_POINT_IS_OFFNORMAL returning >>>" & sIsDigitalStateOffnormal & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_DIGITAL_POINT_OP_ISOFFNORMAL''''''''''''''''''''''''''''''''' +'Function: only checks if Digital State is offnormal +'Parameters: +' oDataBoundObject = id of object with script data tab +' sPointName = Point name from to access tagname +' sDigitalStateTxt = string value to compare to registry tag info to determine if its offnormal +'Returns true or false +'Author: Didi Ekaette - August 1, 2007 +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_DIGITAL_POINT_OP_ISOFFNORMAL(oDataBoundObject,sPointName, sDigitalStateTxt) +'gsh_log_s("GSH_C200_DIGITAL_POINT_OP_ISOFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName) +on error resume next + Dim sTagname, sIsDigitalStateOffnormal + sTagname = GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + sIsDigitalStateOffnormal = GSH_DIGITAL_GETOFFNORMALSTATUS(sTagname, GSH_REGKEY_OPNORMAL_STATE, sDigitalStateTxt) + GSH_C200_DIGITAL_POINT_OP_ISOFFNORMAL = sIsDigitalStateOffnormal +'gsh_log_e("GSH_C200_DIGITAL_POINT_IS_OFFNORMAL returning >>>" & sIsDigitalStateOffnormal & "<<<") +end function + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITAL_GETOFFNORMALSTATUS''''''''''''''''''''''''''''''''' +'Parameters: +' sTagname = tag to access registry info for +' sRegKey = where to access registry tag information(GSH_REGKEY_PV_NORMAL_STATE, GSH_REGKEY_NMODATTR, GSH_REGKEY_NMODE) +' sParameterValue = string value to compare to registry tag info to determine if its offnormal +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_DIGITAL_GETOFFNORMALSTATUS(sTagname, sRegKey, sParameterValue) +'gsh_log_s("GSH_DIGITAL_GETOFFNORMALSTATUS sTagname="&sTagname&", sRegKey="&sRegKey&", sParameterValue="&sParameterValue) +on error resume next + Dim sOffNormalIndicatorStatus, sPVNormalState: sOffNormalIndicatorStatus = false + sPVNormalState = GSH_READTAGINFORMATIONKEYVALUE(sTagname, sRegKey, GSH_NONE) + if (strComp(sPVNormalState,GSH_NONE,vbTextCompare) <> 0) then 'if Registry key is not None + if (strComp(sParameterValue,sPVNormalState,vbTextCompare) <> 0) then + sOffNormalIndicatorStatus = true + end if + end if +GSH_DIGITAL_GETOFFNORMALSTATUS = sOffNormalIndicatorStatus +'gsh_log_e("GSH_DIGITAL_GETOFFNORMALSTATUS returning >>>" & sOffNormalIndicatorStatus & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_DIGITAL_GETOFFNORMALINDSTATUS''''''''''''''''''''''''''''''''' +'Parameters: +' sTagname = tag to access registry info for +' sRegKey = where to access registry tag information(GSH_REGKEY_PV_NORMAL_STATE, GSH_REGKEY_NMODATTR, GSH_REGKEY_NMODE) +' sParameterValue = string value to compare to registry tag info to determine if its offnormal +'Returns GSH_HIDDEN or GSH_VISIBLE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_FP_DIGITAL_GETOFFNORMALINDSTATUS(sTagname, sRegKey, sParameterValue) +'gsh_log_s("GSH_FP_DIGITAL_GETOFFNORMALINDSTATUS sTagname="&sTagname&", sParameterValue="&sParameterValue) +on error resume next + Dim sOffNormalIndicatorStatus, sPVNormalState: sOffNormalIndicatorStatus = GSH_HIDDEN + sPVNormalState = GSH_READTAGINFORMATIONKEYVALUE(sTagname, sRegKey, GSH_NONE) + if (strComp(sPVNormalState,GSH_NONE,vbTextCompare) <> 0) then 'if Registry key is not None + if (strComp(sParameterValue,sPVNormalState,vbTextCompare) <> 0) then + sOffNormalIndicatorStatus = GSH_VISIBLE + end if + end if +GSH_FP_DIGITAL_GETOFFNORMALINDSTATUS = sOffNormalIndicatorStatus +'gsh_log_e("GSH_FP_DIGITAL_GETOFFNORMALINDSTATUS returning >>>" & sOffNormalIndicatorStatus & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_DIGITAL_OP_POINT_IS_OFFNORMAL''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'Returns true or false +'06/09/07 not needed for digital output indicator +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'function GSH_C200_DIGITAL_OP_POINT_IS_OFFNORMAL(oDataBoundObject,sPointName) +'gsh_log_s("GSH_C200_DIGITAL_OP_POINT_IS_OFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName) +'on error resume next + 'Dim tempReturn,shapePoint, bOffNormalTest1, sPVNormalState + 'shapePoint = GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + 'tempReturn = false + 'bOffNormalTest1 = false + 'sPVNormalState = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_PV_NORMAL_STATE, GSH_PVNORMALSTATE_OFFNORMAL) + 'if (strComp(sPVNormalState,GSH_PVNORMALSTATE_OFFNORMAL,vbTextCompare) <> 0) then 'if Registry PVNormalState is None + 'if (strComp(GSH_GETPARAMETERVALUE(oDataBoundObject,sPointName, GSH_CPPARAM_OP),sPVNormalState,vbTextCompare) <> 0) then + 'bOffNormalTest1 = true + 'end if + 'end if +'GSH_C200_DIGITAL_OP_POINT_IS_OFFNORMAL = bOffNormalTest1 +'gsh_log_e("GSH_C200_DIGITAL_OP_POINT_IS_OFFNORMAL returning >>>" & bOffNormalTest1 & "<<<") +'end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_REGCTL_POINT_ISOFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +' In addition to Analog point off normal check, checks other RegCtl offnormal conditions +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' sTagName = TagName, eg. Entity or other literal tagname +' sParamName = Name of the param to check isNAN +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_REGCTL_POINT_ISOFFNORMAL(oDataBoundObject,sPointName,sOffNormalParam) +'gsh_log_s("GSH_C200_REGCTL_POINT_ISOFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName & ",sOffNormalParam=" & sOffNormalParam ) +on error resume next +Dim tempReturn,shapePoint, bOffNormalTest1,bOffNormalTest2, bOffNormalTest3 +Dim sNModAttr, sNMode + shapePoint = GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + bOffNormalTest1 = false + bOffNormalTest2 = false + bOffNormalTest3 = false + tempReturn = false 'default + +'''''Jamie Jan. 24, 2010''''' + temp = GSH_GETPARAMETERVALUE(oDataBoundObject, sPointName, sOffNormalParam) + if strComp(temp,GSH_NODATA,vbTextCompare)<> 0 then + if strComp(temp,GSH_AUTO,vbTextCompare) <> 0 then + bOffNormalTest1 = true + end if + end if +' if (strcomp(GSH_GETPARAMETERVALUE(oDataBoundObject, sPointName, sOffNormalParam),GSH_AUTO,vbtextcompare)<>0) then +' bOffNormalTest1 = true +' end if + sNModAttr = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODATTR, GSH_NONE) + dim modAttr + modAttr = GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODATTR) + if (strComp(sNModAttr,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NModAttr is None + if (strComp(GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODATTR),sNModAttr,vbTextCompare) <> 0) then + bOffNormalTest2 = true + end if + end if + sNMode = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODE, GSH_NONE) + if (strComp(sNMode,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NMode key is "None" + if (strComp(GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODE),sNMode,vbTextCompare) <> 0) then + bOffNormalTest3 = true + end if + end if + tempReturn = ( ( bOffNormalTest1 ) or ( bOffNormalTest2) or (bOffNormalTest3) ) + GSH_C200_REGCTL_POINT_ISOFFNORMAL = tempReturn +'gsh_log_e("GSH_C200_REGCTL_POINT_ISOFFNORMAL returning >>>"&bOffNormalTest1& " " & bOffNormalTest2 & " " & bOffNormalTest3 & cstr(tempReturn) & "<<<") +end function + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_ValveREGCTL_POINT_ISOFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +' In addition to Analog point off normal check, checks other RegCtl offnormal conditions +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' sTagName = TagName, eg. Entity or other literal tagname +' sParamName = Name of the param to check isNAN +'Returns true or false +'13/08/07 - Create the function to handle the cases where Mode and ModeAttr can be blank. +' In those cases, their values should not be used for checking offnormal. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_ValveREGCTL_POINT_ISOFFNORMAL(oDataBoundObject,sPointName,sOffNormalParam) +'gsh_log_s("GSH_C200_ValveREGCTL_POINT_ISOFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName & ",sOffNormalParam=" & sOffNormalParam ) +on error resume next +Dim tempReturn,shapePoint, bOffNormalTest1,bOffNormalTest2, bOffNormalTest3 +Dim sNModAttr, sNMode +Dim sModAttr, sMode + + shapePoint = GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + bOffNormalTest1 = false + bOffNormalTest2 = false + bOffNormalTest3 = false + tempReturn = false 'default + if (strcomp(GSH_GETPARAMETERVALUE(oDataBoundObject, sPointName, sOffNormalParam),GSH_AUTO,vbtextcompare)<>0) then + bOffNormalTest1 = true + end if + + 'Check for ModeAttr + sNModAttr = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODATTR, GSH_NONE) + + sModAttr = GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODATTR) + if (strComp(sNModAttr,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NModAttr is None + if (strComp(sModAttr,GSH_NODATA,vbTextCompare) <> 0 and strComp(sModAttr,sNModAttr,vbTextCompare) <> 0) then + bOffNormalTest2 = true + end if + end if + + sNMode = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODE, GSH_NONE) + sMode = GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODE) + + if (strComp(sNMode,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NMode key is "None" + if (strComp(sModAttr,GSH_NODATA,vbTextCompare) <> 0 and strComp(sMode,sNMode,vbTextCompare) <> 0) then + bOffNormalTest3 = true + end if + end if + + tempReturn = ( ( bOffNormalTest1 ) or ( bOffNormalTest2) or (bOffNormalTest3) ) + + GSH_C200_ValveREGCTL_POINT_ISOFFNORMAL = tempReturn + +' gsh_log("sNModAttr = " &sNModAttr &" sModAttr = " &sModAttr) +' gsh_log_e("GSH_C200_ValveREGCTL_POINT_ISOFFNORMAL returning >>>"&bOffNormalTest1& " " & bOffNormalTest2 & " " & bOffNormalTest3 & cstr(tempReturn) & "<<<") +end function + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_ANALOG_MODE_ISOFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +' In addition to Analog point off normal check, checks other RegCtl offnormal conditions +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' sTagName = TagName, eg. Entity or other literal tagname +' sParamName = Name of the param to check isNAN +'Returns true or false +'Author: Didi Ekaette - Aug 3, 2007 +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_ANALOG_MODE_ISOFFNORMAL(oDataBoundObject,sPointName) +'gsh_log_s("GSH_C200_ANALOG_MODE_ISOFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName ) +on error resume next +Dim tempReturn,shapePoint, bOffNormalTest1, bOffNormalTest2 +Dim sNModAttr, sNMode + shapePoint = GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + bOffNormalTest1 = false + bOffNormalTest2 = false + tempReturn = false 'default + sNModAttr = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODATTR, GSH_NONE) + + if (strComp(sNModAttr,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NModAttr is None + if (strComp(GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODATTR),sNModAttr,vbTextCompare) <> 0) then + bOffNormalTest1 = true + end if + end if + sNMode = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODE, GSH_NONE) + if (strComp(sNMode,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NMode key is "None" + if (strComp(GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODE),sNMode,vbTextCompare) <> 0) then + bOffNormalTest2 = true + end if + end if + tempReturn = ( ( bOffNormalTest1) or (bOffNormalTest2) ) +GSH_C200_ANALOG_MODE_ISOFFNORMAL = tempReturn +'gsh_log_e("GSH_C200_ANALOG_MODE_ISOFFNORMAL returning >>>" & bOffNormalTest1 & " " & bOffNormalTest2 & cstr(tempReturn) & "<<<") +end function + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_REGCTLSPLIT_POINT_ISOFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +' In addition to Analog point off normal check, checks other RegCtl offnormal conditions +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' sTagName = TagName, eg. Entity or other literal tagname +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_REGCTLSPLIT_POINT_ISOFFNORMAL(oDataBoundObject,sPointName) +'gsh_log_s("GSH_C200_REGCTLSPLIT_POINT_ISOFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName & ",sOffNormalParam=" & sOffNormalParam ) +on error resume next +Dim tempReturn,shapePoint, bOffNormalTest1,bOffNormalTest2 +Dim sNModAttr, sNMode + shapePoint = GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + bOffNormalTest1 = false + bOffNormalTest2 = false + tempReturn = false 'default + sNModAttr = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODATTR, GSH_NONE) + if (strComp(sNModAttr,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NModAttr is None + if (strComp(GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODATTR),sNModAttr,vbTextCompare) <> 0) then + bOffNormalTest1 = true + end if + end if + sNMode = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODE, GSH_NONE) + if (strComp(sNMode,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NMode key is "None" + if (strComp(GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODE),sNMode,vbTextCompare) <> 0) then + bOffNormalTest2 = true + end if + end if + tempReturn = ( ( bOffNormalTest1 ) or ( bOffNormalTest2) ) +GSH_C200_REGCTLSPLIT_POINT_ISOFFNORMAL = tempReturn +'gsh_log_e("GSH_C200_REGCTLSPLIT_POINT_ISOFFNORMAL returning >>>"&bOffNormalTest1& " " & bOffNormalTest2 & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''GSH_SCADA_POINT_MODE_ISOFFNORMAL '''''''''''''''''''''''''' +'''''' Check if the given object is off normal in term of MODE ''''' +''parameter: oScriptDataObject: the data object to be checked '''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_SCADA_POINT_MODE_ISOFFNORMAL(oScriptDataObject) + + dim shapePoint, offNormalTest, sNMode + + shapePoint = GSH_GETSHAPETAG(oScriptDataObject.parentElement.parentElement) + offNormalTest = false + sNMode = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODE, GSH_NONE) + + if (strComp(sNMode,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NMode key is "None" + if (strComp(GSH_GETENTITYPARAMETERVALUE(oScriptDataObject,GSH_CPPARAM_MODE),sNMode,vbTextCompare) <> 0) then + offNormalTest = true + end if + end if + + GSH_SCADA_POINT_MODE_ISOFFNORMAL = offNormalTest +end function + + +'GSH_C200_AUTOMAN_POINT_ISOFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' sTagName = TagName, eg. Entity or other literal tagname +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_AUTOMAN_POINT_ISOFFNORMAL(oDataBoundObject,sPointName) +'gsh_log_s("GSH_C200_AUTOMAN_POINT_ISOFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName ) +on error resume next +Dim tempReturn,shapePoint, bOffNormalTest1,bOffNormalTest2 +Dim sNModAttr, sNMode + shapePoint = GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + bOffNormalTest1 = false:bOffNormalTest2 = false: tempReturn = false 'default + sNModAttr = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODATTR, GSH_NONE) + if (strComp(sNModAttr,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NModAttr is None + if (strComp(GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODATTR),sNModAttr,vbTextCompare) <> 0) then + bOffNormalTest1 = true + end if + end if + sNMode = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODE, GSH_NONE) + if (strComp(sNMode,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NMode key is "None" + if (strComp(GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODE),sNMode,vbTextCompare) <> 0) then + bOffNormalTest2 = true + end if + end if + tempReturn = ( bOffNormalTest1 ) or ( bOffNormalTest2) +GSH_C200_AUTOMAN_POINT_ISOFFNORMAL = tempReturn +'gsh_log_e("GSH_C200_AUTOMAN_POINT_ISOFFNORMAL returning >>>"&bOffNormalTest1& " " & bOffNormalTest2 & " " & cstr(tempReturn) & "<<<") +end function +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_REGCTLGAP_DACA_POINT_ISOFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +' In addition to Analog point off normal check, checks other RegCtl offnormal conditions +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' sTagName = TagName, eg. Entity or other literal tagname +' sParamName = Name of the param to check isNAN +' 08/13/07 - Add the check if sModAttr <> "" then do check for modeAttr. Reference issue #439 (Cuong Ly) +' 09/06/07 - Remove ModeAttr check because DACA function block does not has ModeAttr parameter. +' and rename function to GSH_C200_REGCTLGAP_DACA_POINT_ISOFFNORMAL (CL) +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_REGCTLGAP_DACA_POINT_ISOFFNORMAL(oDataBoundObject,sPointName,sOffNormalParam) +'gsh_log_s("GSH_C200_REGCTLGAP_DACA_POINT_ISOFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName & ",sOffNormalParam=" & sOffNormalParam ) +on error resume next +Dim tempReturn, bOffNormalTest1 + + bOffNormalTest1 = false + tempReturn = false 'default + if (strcomp(GSH_GETPARAMETERVALUE(oDataBoundObject, sPointName, sOffNormalParam),GSH_AUTO,vbtextcompare)<>0) then + bOffNormalTest1 = true + end if + + + tempReturn = bOffNormalTest1 +GSH_C200_REGCTLGAP_DACA_POINT_ISOFFNORMAL = tempReturn +'gsh_log_e("GSH_C200_REGCTLGAP_DACA_POINT_ISOFFNORMAL returning >>>"&bOffNormalTest1& " " & bOffNormalTest2 &" " & cstr(tempReturn) & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL(oDataBoundObject,sPointName,sOffNormalParam, sDigitalStateText) +'gsh_log_s("GSH_C200_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName & ",sOffNormalParam=" & sOffNormalParam & ",sDigitalStateText=" & sDigitalStateText) +on error resume next + Dim tempReturn,sTagname, bOffNormalTest1,bOffNormalTest2, bOffNormalTest3, sPVNormalState,sNModAttr + sTagname = GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + tempReturn = false: bOffNormalTest1 = false: bOffNormalTest2 = false: bOffNormalTest3 = false + if (strcomp(GSH_GETPARAMETERVALUE(oDataBoundObject, sPointName, sOffNormalParam),GSH_AUTO,vbTextCompare)<>0) then + bOffNormalTest1 = true + end if + bOffNormalTest2 = GSH_DIGITAL_GETOFFNORMALSTATUS(sTagname, GSH_REGKEY_PVNORMAL_STATE, sDigitalStateText) + bOffNormalTest3 = GSH_DIGITAL_GETOFFNORMALSTATUS(sTagname, GSH_REGKEY_NMODATTR, GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODATTR)) + 'gsh_log("bOffNormalTest1="& bOffNormalTest1 &",bOffNormalTest2="&bOffNormalTest2& ",bOffNormalTest3="&bOffNormalTest3) + tempReturn = (bOffNormalTest1 or bOffNormalTest2 or bOffNormalTest3) +GSH_C200_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL = tempReturn +'gsh_log_e("GSH_C200_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL returning >>>" & tempReturn & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_SELECTOROUTPUT_POINT_ISOFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +' In addition to Analog point off normal check, checks other RegCtl offnormal conditions +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' sPointName = Entity +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_SELECTOROUTPUT_POINT_ISOFFNORMAL(oDataBoundObject,sPointName) +'gsh_log_s("GSH_C200_SELECTOROUTPUT_POINT_ISOFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName ) +on error resume next +Dim tempReturn,shapePoint, bOffNormalTest1, sNMode + shapePoint = GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + bOffNormalTest1 = false + tempReturn = false 'default + sNMode = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODE, GSH_NONE) + if (strComp(sNMode,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NMode key is "None" + if (strComp(GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODE),sNMode,vbTextCompare) <> 0) then + bOffNormalTest1 = true + end if + end if + tempReturn = bOffNormalTest1 +GSH_C200_SELECTOROUTPUT_POINT_ISOFFNORMAL = tempReturn +'gsh_log_e("GSH_C200_SELECTOROUTPUT_POINT_ISOFFNORMAL returning >>>" & cstr(tempReturn) & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_IS_POINT_OFF_NORMAL removed Apr 13, 2007 + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_ANALOG_POINT_IS_OFFNORMAL no longer needed as it was only checking if PV was NaN +' approved by HCS issue #284 06/08/07 + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_ANALOG_SCADA_POINT_IS_OFFNORMAL no longer needed as it was only checking if PV was NaN +' approved by HCS issue #284 06/08/07 + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITAL_SCADA_POINT_IS_OFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +' In addition to other offnormal checks, this function also checks PVNormalState in the Registry +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' sTagName = TagName, eg. Entity or other literal tagname +' sParamName = Name of the param to compare to PVNormalState, eg. PV or OP +' sOffNormalParam = name of the off normal param to check, eg. PVSource +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oDataBoundObject,sPointName,sPVStateText) +'gsh_log_s("GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName & ", sPVStateText=" &sPVStateText) + Dim sIsDigitalStateOffnormal,sTagname, nPVNumValue, sPVNormalState: sIsDigitalStateOffnormal = false + sTagname = GSH_GETSHAPE_CUSTOM_PROPERTY(ODataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + sPVNormalState = GSH_READTAGINFORMATIONKEYVALUE(sTagname, GSH_REGKEY_PV_NORMAL_STATE, GSH_NONE) + if (strComp(sPVNormalState,GSH_NONE,vbTextCompare) <> 0) then 'if Registry PVNormalState is NOT None + if (strComp(sPVStateText,sPVNormalState,vbTextCompare) <> 0) then + sIsDigitalStateOffnormal = true + end if + end if +GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL =sIsDigitalStateOffnormal +'gsh_log_e("GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL returning >>>" & sIsDigitalStateOffnormal & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITAL_SCADA_POINT_OP_ISOFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +' In addition to other offnormal checks, this function also checks OPNormalState in the Registry +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' sTagName = TagName, eg. Entity or other literal tagname +' sParamName = Name of the param to compare to OPNormalState +' sOffNormalParam = name of the off normal param to check, eg. OPSource +'Returns true or false +'Author: Didi Ekaette August 1, 2007 +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_SCADA_DIGITAL_POINT_OP_ISOFFNORMAL(oDataBoundObject,sPointName,sOPStateText) +'gsh_log_s("GSH_SCADA_DIGITAL_POINT_OP_ISOFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName & ", sOPStateText=" &sOPStateText) + Dim sIsDigitalStateOffnormal,sTagname, nOPNumValue, sOPNormalState: sIsDigitalStateOffnormal = false + sTagname = GSH_GETSHAPE_CUSTOM_PROPERTY(ODataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + sOPNormalState = GSH_READTAGINFORMATIONKEYVALUE(sTagname, GSH_REGKEY_OP_NORMAL_STATE, GSH_NONE) + if (strComp(sOPNormalState,GSH_NONE,vbTextCompare) <> 0) then 'if Registry OPNormalState is NOT None + if (strComp(sOPStateText,sOPNormalState,vbTextCompare) <> 0) then + sIsDigitalStateOffnormal = true + end if + end if +GSH_SCADA_DIGITAL_POINT_OP_ISOFFNORMAL =sIsDigitalStateOffnormal +'gsh_log_e("GSH_SCADA_DIGITAL_POINT_OP_ISOFFNORMAL returning >>>" & sIsDigitalStateOffnormal & "<<<") +end function + + +'NOTE: This function is replaced by GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oDataBoundObject,sPointName,sPVStateText) +'function above + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_REGCTL_POINT_ISOFFNORMAL remove Apr 13, 2007''''''''''''''''''' + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' +''''''''''''''''''''''''''''''''''''' +' Only checks if Mode is offnormal +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' sTagName = TagName, eg. Entity or other literal tagname +' sParamName = Name of the param to check isNAN +'Returns true or false +'06/08/07 Optimized code as this function no longer needs to call GSH_ANALOG_POINT_IS_OFFNORMAL +' and only checks mode. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_REGCTL_SCADA_POINT_ISOFFNORMAL(oScriptDataObject,sTagName,sParamName) +'gsh_log_s("GSH_REGCTL_SCADA_POINT_ISOFFNORMAL oScriptDataObject=" & oScriptDataObject.id & ",sTagName=" &sTagName) +on error resume next +Dim tempReturn,shapePoint, sNMode + shapePoint = GSH_GETSHAPETAG(oScriptDataObject.parentElement.parentElement) + tempReturn = false 'default + sNMode = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODE, GSH_NONE) + if (strComp(sNMode,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NMode key is "None" + if (strComp(GSH_GETENTITYPARAMETERVALUE(oScriptDataObject,GSH_CPPARAM_MODE),sNMode,vbTextCompare) <> 0) then + tempReturn = true + end if + end if +GSH_REGCTL_SCADA_POINT_ISOFFNORMAL = tempReturn +'gsh_log_e("GSH_REGCTL_SCADA_POINT_ISOFFNORMAL returning >>>" & cstr(tempReturn) & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_C200_ANALOG_ISDATABAD +'Parameters: +' oDataScriptObject - data bound object within HCS shape +' bCheckNAN - check for PV value that is not a number +' bCheckTransmitter - check device sending data for errors +' bCheckRange - check PV value for value way out of range (station configurable unreasonably hi / lo alarm +'Returns: +' true of false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_ANALOG_ISDATABAD(oDataScriptObject,bCheckPVSts,bCheckTransmitter,bCheckRange) +'gsh_log_s("GSH_C200_ANALOG_ISDATABAD " & "oDataScriptObject=" & oDataScriptObject.ID) +on error resume next + Dim bPVInError, bAllTests, bInUnreasonablyLowAlarm, bInUnreasonablyHighAlarm, bInTransmitterLowAlarm, bInTransmitterHighAlarm + bPVInError = false + bInUnreasonablyLowAlarm = false + bInUnreasonablyHighAlarm = false + bInTransmitterLowAlarm = false + bInTransmitterHighAlarm = false + if bCheckPVSts then + if GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_CPPARAM_BADPV)<> 0 or oDataScriptObject.IsNan(GSH_CPENTITY & "." & GSH_CPPARAM_PV) then bPVInError = true end if + end if + 'gsh_log ("GSH_C200_ANALOG_ISDATABAD PVInError = "&bPVInError) + if bCheckTransmitter then + bInTransmitterLowAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_C200_PARAM_INTRANSMITTERLOWALARM)) + bInTransmitterHighAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_C200_PARAM_INTRANSMITTERHIGHALARM)) + end if + if bCheckRange then + bInUnreasonablyLowAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_C200_PARAM_INUNREASONABLYLOWALARM)) + bInUnreasonablyHighAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_C200_PARAM_INUNREASONABLYHIGHALARM)) + end if + bAllTests = ( bPVInError or bInUnreasonablyLowAlarm or bInUnreasonablyHighAlarm or bInTransmitterLowAlarm or bInTransmitterHighAlarm ) +GSH_C200_ANALOG_ISDATABAD = bAllTests +'gsh_log_e("GSH_C200_ANALOG_ISDATABAD returing " & bAllTests ) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_C200_DIGITAL_ISDATABAD (used in faceplates) +'Parameters: +' oDataScriptObject - data bound object within HCS shape +' bCheckNAN - check for PV value that is not a number +' bCheckTransmitter - check device sending data for errors +' bCheckRange - check PV value for value way out of range (station configurable unreasonably hi / lo alarm +'Returns: +' true of false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_DIGITAL_ISDATABAD(oDataScriptObject,bCheckPVSts,bCheckTransmitter,bCheckRange) +'gsh_log_s("GSH_C200_DIGITAL_ISDATABAD " & "oDataScriptObject=" & oDataScriptObject.ID) +on error resume next + Dim bPVInError, bAllTests, bInUnreasonablyLowAlarm, bInUnreasonablyHighAlarm, bInTransmitterLowAlarm, bInTransmitterHighAlarm + bPVInError = false + bInUnreasonablyLowAlarm = false + bInUnreasonablyHighAlarm = false + bInTransmitterLowAlarm = false + bInTransmitterHighAlarm = false + if bCheckPVSts then + if GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_CPPARAM_PV)<> 0 then bPVInError = true end if + end if + 'gsh_log ("GSH_C200_DIGITAL_ISDATABAD PVInError"&bPVInError) + if bCheckTransmitter then + bInTransmitterLowAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_C200_PARAM_INTRANSMITTERLOWALARM)) + bInTransmitterHighAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_C200_PARAM_INTRANSMITTERHIGHALARM)) + end if + if bCheckRange then + bInUnreasonablyLowAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_C200_PARAM_INUNREASONABLYLOWALARM)) + bInUnreasonablyHighAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_C200_PARAM_INUNREASONABLYHIGHALARM)) + end if + bAllTests = ( bPVInError or bInUnreasonablyLowAlarm or bInUnreasonablyHighAlarm or bInTransmitterLowAlarm or bInTransmitterHighAlarm ) +GSH_C200_DIGITAL_ISDATABAD = bAllTests +'gsh_log_e("GSH_C200_DIGITAL_ISDATABAD returing " & bAllTests ) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_C200_DIGITALCOMPOSITE_ISDATABAD +'Parameters: +' oDataScriptObject - data bound object within HCS shape +'Returns: true of false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_DIGITALCOMPOSITE_ISDATABAD(oDataScriptObject) +'gsh_log_s("GSH_C200_DIGITALCOMPOSITE_ISDATABAD " & "oDataScriptObject=" & oDataScriptObject.ID) +on error resume next + Dim bPVInError + bPVInError = false + 'oDataBoundObject.DataValue(GSH_CPENTITY&"."¶meter) + if strComp(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_CPPARAM_PV),"Bad",vbtextcompare) = 0 then + bPVInError = true + end if + GSH_C200_DIGITALCOMPOSITE_ISDATABAD = bPVInError +'gsh_log_e("GSH_C200_DIGITALCOMPOSITE_ISDATABAD returing " & bPVInError ) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_C200_REGCTL_ISDATABAD +'Parameters: +' oDataScriptObject - data bound object within HCS shape +' bCheckNAN - check for PV value that is not a number +' bCheckTransmitter - check device sending data for errors +' bCheckRange - check PV value for value way out of range (station configurable unreasonably hi / lo alarm +'Returns: +' true of false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_C200_REGCTL_ISDATABAD(oDataScriptObject,bCheckPVSts,bCheckTransmitter,bCheckRange) +'gsh_log_s("GSH_C200_REGCTL_ISDATABAD " & "oDataScriptObject=" & oDataScriptObject.ID) +on error resume next + Dim bPVInError, bAllTests, bInUnreasonablyLowAlarm, bInUnreasonablyHighAlarm, bInTransmitterLowAlarm, bInTransmitterHighAlarm + bPVInError = false + bInUnreasonablyLowAlarm = false + bInUnreasonablyHighAlarm = false + bInTransmitterLowAlarm = false + bInTransmitterHighAlarm = false + if bCheckPVSts then + if GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_CPPARAM_BADPV)<> 0 then bPVInError = true end if + end if +' gsh_log ("GSH_C200_REGCTL_ISDATABAD PVInError"&bPVInError) + if bCheckTransmitter then + bInTransmitterLowAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_C200_PARAM_INTRANSMITTERLOWALARM)) + bInTransmitterHighAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_C200_PARAM_INTRANSMITTERHIGHALARM)) + end if + if bCheckRange then + bInUnreasonablyLowAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_C200_PARAM_INUNREASONABLYLOWALARM)) + bInUnreasonablyHighAlarm = cbool(GSH_GETENTITYPARAMETERVALUE(oDataScriptObject,GSH_C200_PARAM_INUNREASONABLYHIGHALARM)) + end if + bAllTests = ( bPVInError or bInUnreasonablyLowAlarm or bInUnreasonablyHighAlarm or bInTransmitterLowAlarm or bInTransmitterHighAlarm ) +GSH_C200_REGCTL_ISDATABAD = bAllTests +'gsh_log_e("GSH_C200_REGCTL_ISDATABAD returing " & bAllTests ) +end function + +'GSH_IS_POINT_INITIALIZING remove 06/27/07 + +'Returns GSH_WINDUP_HI, GSH_WINDUP_LO, GSH_WINDUP_INIT or GSH_WINDUP_NONE +function GSH_GET_POINT_WINDUP_VALUE(oDataBoundObject) +'gsh_log_s("GSH_GET_POINT_WINDUP_VALUE oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim tempReturn + tempReturn = GSH_WINDUP_NONE + tempReturn = GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_WINDUP ) +' gsh_log "tempReturn ="& tempReturn + Select Case tempReturn + Case GSH_WINDUP_HI + tempReturn = GSH_WINDUP_HI + Case GSH_WINDUP_LO + tempReturn = GSH_WINDUP_LO + Case GSH_WINDUP_HILO + tempReturn = GSH_WINDUP_INIT + Case else + tempReturn = GSH_WINDUP_NONE + End Select + GSH_GET_POINT_WINDUP_VALUE = tempReturn +'gsh_log_e("GSH_GET_POINT_WINDUP_VALUE returning >>>" & tempReturn & "<<<") +end function + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_ISINFOCUS'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_ISINFOCUS(oDataBoundObject) +'gsh_log_s("GSH_ISINFOCUS oDataBoundObject=" & oDataBoundObject.id) +on error resume next + dim tempReturn + tempReturn = (not(oDataBoundObject.parentElement.objects("focus").styleClass = GSH_CSSFOCUSNONE)) + GSH_ISINFOCUS = tempReturn +'gsh_log_e("GSH_ISINFOCUS returning >>>>"&tempReturn&"<<<<") +end function + + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SHOWALARMS'''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHOWALARMS(sAlarmPriority,bUnAcknowledge,oShape) +'gsh_log_s("GSH_SHOWALARMS " & "sAlarmPriority=" & sAlarmPriority & ",bUnAcknowledge=" & bUnAcknowledge & ",oShape=" & oShape.id) + select case sAlarmPriority + Case 0 'GSH_NOALARMCODE + Case 3 'GSH_UNACKEMERG + call GSH_SHOWEMERGENCYALARM(oShape,bUnAcknowledge) + Case 2 'GSH_UNACKHIGH + call GSH_SHOWHIGHALARM(oShape,bUnAcknowledge) + Case 1 'GSH_UNACKLOW + call GSH_SHOWLOWALARM(oShape,bUnAcknowledge) + End Select +'gsh_log_e("GSH_SHOWALARMS ") +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_SHOWPOINTALARMS +'Parameters: +' sAlarmCode - Code that describes alarm priority and ack status +' oShape - reference to the shape going into alarm +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHOWPOINTALARMS(sAlarmCode,oShape) +'gsh_log_s("GSH_SHOWPOINTALARMS " & "sAlarmCode=" & sAlarmCode & ",oShape=" & oShape.id) + Select Case sAlarmCode + Case GSH_NOALARMCODE + call GSH_SHOWNOALARM(oShape) + Case GSH_UNACKEMERG + call GSH_SHOWEMERGENCYALARM(oShape,true) + Case GSH_UNACKHIGH + call GSH_SHOWHIGHALARM(oShape,true) + Case GSH_UNACKLOW + call GSH_SHOWLOWALARM(oShape,true) + Case GSH_ACKEMERG + call GSH_SHOWEMERGENCYALARM(oShape,false) + Case GSH_ACKHIGH + call GSH_SHOWHIGHALARM(oShape,false) + Case GSH_ACKLOW + call GSH_SHOWLOWALARM(oShape,false) + Case Else + call GSH_SHOWNOALARM(oShape) + End Select +'gsh_log_e("GSH_SHOWPOINTALARMS ") +end sub +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_SHOWALARMS_WOOUTLINE +'Parameters: +' sAlarmCode - Code that describes alarm priority and ack status +' oShape - reference to the shape going into alarm +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SHOWALARMS_WOOUTLINE(sAlarmCode,oShape) +'gsh_log_s ("GSH_SHOWALARMS_WOOUTLINE " & "sAlarmCode=" & sAlarmCode & ",oShape=" & oShape.id) + Select Case sAlarmCode + Case GSH_NOALARMCODE + oShape.objects("txt_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("plg_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("rec_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ovl_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_NONE + Case GSH_UNACKEMERG + oShape.objects("txt_EAlarm").style.visibility = GSH_VISIBLE + oShape.objects("plg_EAlarm").style.visibility = GSH_VISIBLE + oShape.objects("txt_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("rec_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ovl_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_UNACKEMERG + Case GSH_ACKEMERG + oShape.objects("txt_EAlarm").style.visibility = GSH_VISIBLE + oShape.objects("plg_EAlarm").style.visibility = GSH_VISIBLE + oShape.objects("txt_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("rec_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ovl_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_ACKEMERG + Case GSH_UNACKHIGH + oShape.objects("txt_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("plg_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_HAlarm").style.visibility = GSH_VISIBLE + oShape.objects("rec_HAlarm").style.visibility = GSH_VISIBLE + oShape.objects("ovl_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_UNACKHIGH + Case GSH_ACKHIGH + oShape.objects("txt_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("plg_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_HAlarm").style.visibility = GSH_VISIBLE + oShape.objects("rec_HAlarm").style.visibility = GSH_VISIBLE + oShape.objects("ovl_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_ACKHIGH + Case GSH_UNACKLOW + oShape.objects("txt_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("plg_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("rec_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ovl_LAlarm").style.visibility = GSH_VISIBLE + oShape.objects("txt_LAlarm").style.visibility = GSH_VISIBLE + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_UNACKLOW + Case GSH_ACKLOW + oShape.objects("txt_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("plg_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("rec_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ovl_LAlarm").style.visibility = GSH_VISIBLE + oShape.objects("txt_LAlarm").style.visibility = GSH_VISIBLE + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_ACKLOW + Case Else + 'Show no alarms + oShape.objects("txt_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("plg_EAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("rec_HAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ovl_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("txt_LAlarm").style.visibility = GSH_HIDDEN + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_NONE + End Select +'gsh_log_e("GSH_SHOWALARMS_WOOUTLINE ") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TYPE2TABRBUTTONCLICK''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = subshape name or me, if calling within subshape +' +' Revised Jan 2, 2008 - JE to support smaller lists of displays and menu for selected L2 tab +' May 27, 2008 - fix problem when Registry key GSH_REGKEY_NUMOFT3 does not existed or = 0 +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TYPE2TABRBUTTONCLICK(oShape) +'gsh_log_s("GSH_TYPE2TABRBUTTONCLICK oShape = "& oShape) +'On Error GoTo ErrorHandler + + Dim DispStr(), asAssocDisplays(), asAssocLabels() + Dim nRetVal, nAssocDisplays, nCnt, nIndex, nCancelIndex, nStartIndex + Dim sTabDisplayName, sTabLabel, sTemp, sPriorT3, sPriorT4, sPriorT4A, sDispLocation + Dim ArrMenu + + sDispLocation = GSH_READDISPLAYNAMES("") + sTabDisplayName = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPDISPLAYNAME) + sTabLabel = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPTABLEVEL) + + 'if the clicked tab is the same as the current Type 2 Diplay, exit sub + ' Remove this check to provide continuous shortcut menu --- JE - Jan 2, 2008 +'' If sTabDisplayName = GSH_READDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T2FN,"") Then +'' Exit Sub +'' End If + + nAssocDisplays = CSng(GSH_READDISPLAYINFO(sTabDisplayName, GSH_REGKEY_NUMOFT3, "0")) + if nAssocDisplays > 0 then 'this was set for nAssocDisplays > 3 --- JE - Jan 2, 2008 changed to >0 + ReDim asAssocDisplays(nAssocDisplays) + ReDim asAssocLabels(nAssocDisplays) + else 'add this path so that the next for loop won't produce error when #OfAssociatedDisplay = 0) (CL - May 27,2008) + Set ArrMenu = CreateObject("ArrPopupMenuXControl.ArrPopupMenuX") + ReDim DispStr(1) + DispStr(0) = "No associated display available" + ArrMenu.ShowMenuArr DispStr + Set ArrMenu = Nothing + Exit Sub + end if + + For nCnt = 1 To nAssocDisplays + sDisplay = "File3_" & nCnt + sLabel = "Label3_" & nCnt + asAssocDisplays(nCnt) = GSH_READDISPLAYINFO(sTabDisplayName, sDisplay, "") + 'gsh_log("asAssocDisplays("&nCnt&") is "&asAssocDisplays(nCnt)) + + asAssocLabels(nCnt) = GSH_READDISPLAYINFO(sTabDisplayName, sLabel, "") + Next + + asAssocDisplays(0) = sTabDisplayName + asAssocLabels(0) = sTabLabel + + nIndex = 0 + ' If nAssocDisplays <= 0 Then +' Exit Sub +' Else + ReDim DispStr(nAssocDisplays+4) + DispStr(nIndex) = sTabLabel + 'gsh_log("DispStr("&nIndex&") is "&DispStr(nIndex)) + nIndex = nIndex + 1 + DispStr(nIndex) = "" + 'gsh_log("DispStr("&nIndex&") is "&DispStr(nIndex)) + nStartIndex = nIndex + + nIndex = nIndex + 1 + For nCnt = 1 To nAssocDisplays + DispStr(nIndex) = asAssocLabels(nCnt) + 'gsh_log("DispStr("&nIndex&") is "&DispStr(nIndex)) + nIndex = nIndex + 1 + Next + + nCancelIndex = nIndex + + 'CallAgain: +' Dim ArrMenu + Set ArrMenu = CreateObject("ArrPopupMenuXControl.ArrPopupMenuX") + ArrMenu.ShowMenuArr DispStr + nRetVal = ArrMenu.Item + Set ArrMenu = Nothing +' gsh_log ("GSH_TYPE2TABRBUTTONCLICK nRetVal = "&nRetVal) + + If nRetVal < 0 Then + Exit Sub + Else + If nRetVal = nCancelIndex Then + Exit Sub + ElseIf nRetVal = 0 Then + If asAssocDisplays(0) <> "" Then + sTemp = sDispLocation & sTabDisplayName & GSH_DISPLAYFILEEXTENSION +' gsh_log("sTemp is "&sTemp) + 'path of the Prior Type3 Display page + sPriorT3 = GSH_READDISPLAYINFO(sTabDisplayName,"PriorType3","") +' gsh_log ("sPriorT3 = "& sPriorT3) + sPriorT3A = sDispLocation & sPriorT3 & GSH_DISPLAYFILEEXTENSION + 'path of the Prior Type4 Display page + sPriorT4 = GSH_READDISPLAYINFO(sTabDisplayName,"PriorType4","") +' gsh_log ("sPriorT4 = "& sPriorT4) + sPriorT4A = sDispLocation & sPriorT4 & GSH_DISPLAYFILEEXTENSION + call GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS(GSH_FALSE) 'Reset all tagname labels to hidden + If sTabDisplayName <> "" Then + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T2FN,sTabDisplayName) + 'gsh_log("Navigating to sTemp "&sTemp) + window.navigate(sTemp) + End If + If sPriorT3 <> "" Then + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T3FN,sPriorT3) + window.navigate(sPriorT3A) + End If + If sPriorT4 <> "" Then + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T4FN,sPriorT4) + window.navigate(sPriorT4A) + End If + End If + Else + 'Selected Tab is a Type2 Display + If asAssocDisplays(nRetVal-nStartIndex) <> "" Then + call GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS(GSH_FALSE) 'Reset all tagname labels to hidden + 'Selected Associated Type3 Display from RClick Menu + sTemp = sDispLocation & asAssocDisplays(nRetVal-nStartIndex) & GSH_DISPLAYFILEEXTENSION + If asAssocDisplays(nRetVal-nStartIndex) <> "" Then + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_USET4,"YES") + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T3FN,asAssocDisplays(nRetVal-nStartIndex)) +' gsh_log("Navigating to sTemp "&sTemp) + window.navigate(sTemp) + End If + sTemp = sDispLocation & sTabDisplayName & GSH_DISPLAYFILEEXTENSION + If sTabDisplayName <> "" Then + ' Added check for current Type 2 as now allow right click on active Type 2 display ---- JE Jan. 2, 2008 + 'if the clicked tab is the same as the current Type 2 Diplay, exit sub + If sTabDisplayName = GSH_READDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T2FN,"") Then + Exit Sub + End if + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T2FN,sTabDisplayName) +' gsh_log("Navigating to sTemp "&sTemp) + window.navigate(sTemp) + End If + End If + End If + End If +' End If +'gsh_log_e("GSH_TYPE2TABRBUTTONCLICK") +end sub + + +'09/04/2007 - Added g_PageLoadCompleted check to make sure the page is completely loaded +' before user click b/c this generate problem of L4 loaded on L2 or L3 location. (CL) +'01/11/2008 - Modified so that the function will find and load a L3 page which is on the same +' satellite instead of loading the Prior L3 when the SAME_SATELLITE_LINK option in +' the registry is set to ON +'27Feb2008 - Added function to define the L4 display if the satellie option is on (JE) +'04Mar2008 - Added L1 tab handling +'18July2008 - Remove duplicated call to L4 display at the end of Case 2. +' +'Note: avoid using window.external.Parent.stationWindows because it might cause problems that requires +' the whole station to restart + +Sub GSH_NAVTAB_LCLICK (oShape) +'gsh_log_s("GSH_NAVTAB_LCLICK oShape = "& oShape.id &"Page Load Completed = " &g_PageLoadCompleted) + + + If(g_PageLoadCompleted) then + + Dim sTemp, sPriorT3, sPriorT3A, sPriorT4, sPriorT4A, sDispLocation, sDisplayName, sAssocDisplayName, sT2FileOnDisplay, sT3FileOnDisplay, sT4FileOnDisplay + sDispLocation = GSH_READDISPLAYNAMES("") + sDisplayName = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPDISPLAYNAME) + Dim displayLevel + displayLevel = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPDISPLAYLEVEL) + + window.clearTimeout g_PageLoadTimerID + g_PageLoadCompleted = false + g_PageLoadTimerID=window.setTimeout("g_PageLoadCompleted = true",2400/displayLevel) + + Select Case displayLevel + Case 1 + sTemp = sDispLocation & sDisplayName & ".htm" + If sDisplayName <> "" Then + window.navigate(sTemp) + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T1FN,sDisplayName) + End if + Case 2 + sAssocDisplayName = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPASSOCLEVEL4) ' Added June 25, 2008 - JE - to catch L4_Blanks for Wintershall + sT2FileOnDisplay = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T2FN,"") + + + 'Compare DisplayName to Currently Displayed Type2FileName + If Ucase(sDisplayName) <> UCase(sT2FileOnDisplay) Then + + 'path of the Type2 Display page + sTemp = sDispLocation & sDisplayName & ".htm" + 'path of the Prior Type3 Display page + 'sPriorT3 = GSH_READDISPLAYINFO(sDisplayName,"PriorType3","") + sPriorT3 = FIND_L3PAGE(sDisplayName) + sPriorT3A = sDispLocation & sPriorT3 & ".htm" + 'path of the Prior Type4 Display page + + sPriorT4 = GSH_READDISPLAYINFO(sDisplayName,"PriorType4","") + + If sAssocDisplayName = "" Then ' Added June 25, 2008 + sPriorT4 = FIND_L4PAGE(sDisplayName,sPriorT3) + sPriorT4A = sDispLocation & sPriorT4 & ".htm" + Else ' + sPriorT4 = sAssocDisplayName ' + sPriorT4A = sDispLocation & sPriorT4 & ".htm" ' + End if + ' + call GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS(GSH_FALSE) 'Reset all tagname labels to hidden + + + + '' Moved T4 Call ahead of T2 to try and stop the T4 being put into wrong window - 25June08 JE + If sPriorT4 <> "" Then + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T4FN,sPriorT4) + window.navigate(sPriorT4A) + End If + + + If sPriorT3 <> "" Then 'Navigate to L3 display first so that the PageLinkAlarmGroup is updated before the L2 display is refreshed. + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T3FN,sPriorT3) + window.navigate(sPriorT3A) + End If + + If sDisplayName <> "" Then + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T2FN,sDisplayName) + window.navigate(sTemp) + End If + + End If + Case 3 + sAssocDisplayName = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPASSOCLEVEL4) + + 'path of the Type3 Display page + sTemp = sDispLocation & sDisplayName & ".htm" + sT3FileOnDisplay = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T3FN,"") + 'Compare DisplayName to Currently Displayed Type3FileName + + If Ucase(sTemp) <> Ucase(sT3FileOnDisplay) Then + + 'path of the Prior Type4 Display page + sPriorT4 = sDispLocation & sAssocDisplayName & ".htm" + + call GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS(GSH_FALSE) 'Reset all tagname labels to hidden + + If sAssocDisplayName <> "" Then + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T4FN,sAssocDisplayName) + window.navigate(sPriorT4) + End If + + If sDisplayName <> "" Then + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T3FN,sDisplayName) + window.navigate(sTemp) + End If + End If + Case 4 + sT4FileOnDisplay = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T4FN,"") + call GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS(GSH_FALSE) 'Reset all tagname labels to hidden + 'Compare DisplayName to Currently Displayed Type4FileName + If Ucase(sDisplayName) <> Ucase(sT4FileOnDisplay) Then + 'path of the Type4 Display page + sTemp = sDispLocation & sDisplayName & ".htm" + If sDisplayName <> "" Then + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T4FN,sDisplayName) + window.navigate(sTemp) + + End If + End If + End Select + + End If +'gsh_log_e("GSH_NAVTAB_LCLICK") +End Sub + +function FIND_L3PAGE(sDisplayName) +'gsh_log_s("FIND_L3PAGE sDisplayName = "& sDisplayName) + + dim same_satellite_link, L3_page, i + + L3_page = "" + + same_satellite_link = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_SAME_SATELLITE_LINK,GSH_NONE) + + if strcomp (same_satellite_link, GSH_ON, vbtextcompare) <> 0 then + L3_page = GSH_READDISPLAYINFO(sDisplayName,"PriorType3","") + else + dim last_L3_page, satellite_code, satellite, numOfType3 + last_L3_page = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T3FN,GSH_NONE) + satellite_code = Mid(last_L3_page, 1, 4) + satellite_code = Replace(satellite_code, "_", "") + + numOfType3 = GSH_READDISPLAYINFO(sDisplayName,GSH_REGKEY_NUMOFT3,0) + dim type3Tmp + + for i=1 to numOfType3 + type3Tmp = GSH_READDISPLAYINFO(sDisplayName,"File3_"&i,"") + satellite = Mid(type3Tmp, 1, 4) 'new + satellite = Replace(satellite, "_", "") 'new + if strcomp (satellite,satellite_code, vbtextcompare) = 0 then + ' if InStr(type3Tmp,satellite_code)>0 then + L3_page=type3Tmp +' gsh_log("L3_page = " & L3_page) + Exit For + end if + next + 'This is for exceptional handle b/c the for loop should practically + 'handle all the cases. + if strcomp (L3_page, "", vbtextcompare) = 0 then + L3_page = GSH_READDISPLAYINFO(sDisplayName,"PriorType3","") +' gsh_log ("into exception L3_Page = " & L3_page) + end if + + end if + FIND_L3PAGE = L3_page +'gsh_log_e("FIND_L3PAGE oShape L3_PAGE="&L3_page) +end function + +function FIND_L4PAGE(sDisplayName,sL3Name) +'gsh_log_s("FIND_L4PAGE sDisplayName = "& sDisplayName) + + dim same_satellite_link, L4_page, i + + L4_page = "" + + same_satellite_link = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_SAME_SATELLITE_LINK,GSH_NONE) + + if strcomp (same_satellite_link, GSH_ON, vbtextcompare) <> 0 then + L4_page = GSH_READDISPLAYINFO(sDisplayName,"PriorType4","") + else + dim last_L3_page, satellite_code, satellite, numOfType3 + last_L3_page = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T3FN,GSH_NONE) + L4_page = Replace(sL3Name, "_L3_", "_L4_") + L4_page = L4_page & "_1" +' gsh_log("L4_page="&L4_page) + 'just in case + if strcomp (L4_page, "", vbtextcompare) = 0 then +' L4_page = GSH_READDISPLAYINFO(sDisplayName,"PriorType3","") - April 11, 2008 JE + L4_page = GSH_READDISPLAYINFO(sDisplayName,"PriorType4","") + end if + end if + FIND_L4PAGE = L4_page +'gsh_log_e("FIND_L4PAGE oShape L4_PAGE="&L4_page) +end function + +Const GSH_REGKEY_PAGELINKALARMGROUP = "PageLinkAlarmGroup" +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: GSH_PAGELINK_LCLICK +' Updates the PageLinkAlarmGroup registry key; Updates shapes on L2 Display; +' Launches associated L3 and L4 displays +'Parameters: +' oShape - required to access the Shape property CPEntity value +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_PAGELINK_LCLICK (oShape) +'gsh_log_s("GSH_PAGELINK_LCLICK oShape = "& oShape.id) + Dim sTemp, sDispLocation, sPgLinkTagName + Dim sAssocDisplayName3, sAssocDisplayName4, sT2FileOnDisplay, sT3FileOnDisplay, sT4FileOnDisplay + 'Store Tag Name in Display Communication Mailbox + sPgLinkTagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_PAGELINKALARMGROUP,sPgLinkTagName + call GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS(GSH_FALSE) 'Reset all tagname labels to hidden + 'Compare DisplayName to Currently Displayed Type2FileName + sDispLocation = GSH_READDISPLAYNAMES("") + sT2FileOnDisplay = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T2FN,"") + 'Update all shapes on Display Level 2 + GSH_UPDATESHAPESONDISPLAY sT2FileOnDisplay & GSH_DISPLAYFILEEXTENSION + 'Launch the associated display Level 3 if not currently displayed + sAssocDisplayName3 = UCase(oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPASSOCTYPE3)) + sT3FileOnDisplay = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T3FN,"") + If sAssocDisplayName3 <> "" Then + If Ucase(sT3FileOnDisplay) <> sAssocDisplayName3 Then + sTemp = sDisplayLocation & sAssocDisplayName3 & GSH_DISPLAYFILEEXTENSION + call GSH_WRITEDISPLAYINFORMATION (sT2FileOnDisplay, GSH_REGKEY_PRIORT3, sAssocDisplayName3) + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T3FN,sAssocDisplayName3) + window.navigate(sTemp) + End If + 'Else What To do if custom prop is empty? Error Msg? + End if + 'Launch the associated display Type4 if not currently displayed + sAssocDisplayName4 = UCase(oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPASSOCTYPE4)) + sT4FileOnDisplay = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T4FN,"") + If sAssocDisplayName4 <> "" Then + If Ucase(sT4FileOnDisplay) <> sAssocDisplayName4 Then + sTemp = sDisplayLocation & sAssocDisplayName4 & GSH_DISPLAYFILEEXTENSION + call GSH_WRITEDISPLAYINFORMATION (sT2FileOnDisplay, GSH_REGKEY_PRIORT4, sAssocDisplayName4) + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T4FN,sAssocDisplayName4) + window.navigate(sTemp) + End If + Else 'What To do if custom prop is empty? + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_USET4,"YES") + End If +'gsh_log_e("GSH_PAGELINK_LCLICK") +End Sub + +Sub GSH_PAGELINK_ONUPDATE (oShape) +'gsh_log_s("GSH_PAGELINK_ONUPDATE oShape = "& oShape.id & " flag = "& flag) +on error resume next + call GSH_INITTABNORMAL(oShape) + If (strComp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_PAGELINKALARMGROUP,""),vbTextCompare) = 0) Then + call GSH_INITTABFOCUS (oShape) + End If + dim sAlarmPriority, bUnack + sAlarmPriority = GSH_GETALARMGROUPPRIORITYPARAMETER(oShape.objects("PageLink_Script"),GSH_CPENTITY) + bUnack = GSH_GETALARMGROUPUNACKPARAMETER(oShape.objects("PageLink_Script"),GSH_CPENTITY) + 'gsh_log ("sAlarmPriority = " & sAlarmPriority & "bUnack = " & bUnack ) + call GSH_SHOWALARMS (sAlarmPriority, bUnack, oShape) +'gsh_log_e("GSH_PAGELINK_ONUPDATE") +End Sub + +sub GSH_TABORGANIZER_UPDATEFOCUS (oShape) +Dim sFN(4) + 'oShape.Objects("focus").StyleClass = GSH_CSSTABFOCUSNORMAL + oShape.Objects("focus").StyleClass = GSH_CSSTABORAGANIZEROUTLINENORMAL 'Added 09Jan08 JE + For i = 1 to 4 + sFN(i) = oShape.GetCustomProperty("Text", "Filename"&i) + If (strComp(sFN(i),GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T2FN,""),vbTextCompare) = 0) Then + oShape.Objects("focus").StyleClass = GSH_CSSFOCUSASSOCIATEDTABORGANIZER 'GSH_CSSFOCUSASSOCIATED + exit for + end if + Next +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_NAVTAB_ONUPDATE +' Event handler for GEN_NAVIGATIONTAB shape. +' 05/31/07 Check if Entity is blank. If so then do not update alarms. AL(332) +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_NAVTAB_ONUPDATE (oShape) +'gsh_log_s("GSH_NAVTAB_ONUPDATE oShape = "& oShape.id) +on error resume next + call GSH_INITTABNORMAL(oShape) + Dim sRegKey + sRegKey = 0 + Select Case oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPDISPLAYLEVEL) + Case 1 + sRegKey = GSH_REGKEY_T1FN + Case 2 + sRegKey = GSH_REGKEY_T2FN + Case 3 + sRegKey = GSH_REGKEY_T3FN + Case 4 + sRegKey = GSH_REGKEY_T4FN + End Select + If (strComp(oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPDISPLAYNAME),GSH_READDISPLAYCOMMUNICATIONKEYVALUE(sRegKey,""),vbTextcompare) = 0) Then + call GSH_INITTABFOCUS (oShape) + End If + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT, GSH_CPENTITY), "", VBTEXTCOMPARE) <> 0 then + If oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPDISPLAYLEVEL) = 1 then + ' skip alarm checking + exit sub + else + dim sAlarmPriority, bUnack + sAlarmPriority = GSH_GETALARMGROUPPRIORITYPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITY) + bUnack = GSH_GETALARMGROUPUNACKPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITY) + 'gsh_log ("sAlarmPriority = " & sAlarmPriority & " bUnack = " & bUnack ) + oShape.Objects("focus").linewidth = 0 + + if(sAlarmPriority > 0) then + call GSH_SHOWALARMS (sAlarmPriority, bUnack, oShape) + else + call GSH_SHOWNOALARM(oShape) + oShape.Objects("outline").styleClass = GSH_CSSTABOUTLINENORMAL + ' gsh_log ("setting outline") + end if + end if + end if +'gsh_log_e("GSH_NAVTAB_ONUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_GETALARMGROUPPRIORITYPARAMETER''''''''''''''''''''''''' +'Alarm Groups are Experion Points aggregates all point types +'Parameters: +' oDataBoundObject = data bound object within an HCS shape +' paraName - Script Data parameter Name +'Returns: Alarm Code = GSH_ACKLOW, GSH_ACKHIGH, GSH_ACKEMERG, +' GSH_UNACKLOW, GSH_UNACKHIGH, GSH_UNACKEMERG, GSH_NOALARMCODE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETALARMGROUPPRIORITYPARAMETER(oDataBoundObject, pointName) +'gsh_log_s("GSH_GETALARMGROUPPRIORITYPARAMETER oDataBoundObject=" & oDataBoundObject.id & ", pointName=" & pointName) +on error resume next + Dim iAlarmCode + iAlarmCode = 0 + 'Check total alarms + iAlarmCode = GSH_GETPARAMETERVALUE(oDataBoundObject, pointName, GSH_EXPERION_PARAM_ALARMPRIORITY) + 'return alarm code + GSH_GETALARMGROUPPRIORITYPARAMETER = iAlarmCode +'gsh_log_e("GSH_GETALARMGROUPPRIORITYPARAMETER returning " & iAlarmCode) +end function +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_GETALARMGROUPPRIORITYPARAMETER''''''''''''''''''''''''' +'Alarm Groups are Experion Points aggregates all point types +'Parameters: +' oDataBoundObject = data bound object within an HCS shape +' paraName - Script Data parameter Name +'Returns: Alarm Code = GSH_ACKLOW, GSH_ACKHIGH, GSH_ACKEMERG, +' GSH_UNACKLOW, GSH_UNACKHIGH, GSH_UNACKEMERG, GSH_NOALARMCODE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETALARMGROUPUNACKPARAMETER(oDataBoundObject, pointName) +'gsh_log_s("GSH_GETALARMGROUPUNACKPARAMETER oDataBoundObject=" & oDataBoundObject.id & ", paraName=" & pointName) +on error resume next + Dim bUnack + bUnack = false + if (oDataBoundObject.DataValue(pointName & "." & GSH_EXPERION_PARAM_UNACKALARMEXISTS) = 1) then + bUnack = True + end if + GSH_GETALARMGROUPUNACKPARAMETER = bUnack +'gsh_log_e("GSH_GETALARMGROUPUNACKPARAMETER returning " & bUnack) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_INITTABNORMAL'''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_INITTABNORMAL(oShape) +'gsh_log_s("GSH_INITTABNORMAL " & "oShape=" & oShape.id) + oShape.Objects("focus").styleClass = GSH_CSSTABFOCUSNORMAL + oShape.Objects("outline").styleClass = GSH_CSSTABOUTLINENORMAL +'gsh_log_e("GSH_INITTABNORMAL ") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_INITTABFOCUS'''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_INITTABFOCUS(oShape) +'gsh_log_s("GSH_INITTABFOCUS " & "oShape=" & oShape.id) + 'show these objects + oShape.Objects("focus").StyleClass = GSH_CSSFOCUSASSOCIATED + oShape.Objects("outline").styleClass = GSH_CSSTABOUTLINENORMAL +'gsh_log_e("GSH_INITTABFOCUS ") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GEN_SETSHAPEFOCUS'''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = shape object +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GEN_SETSHAPEFOCUS(oShape) +'gsh_log_s("GSH_GEN_SETSHAPEFOCUS oShape=" & oShape.id) +on error resume next + call GSH_SETSHAPEFOCUS(oShape) + if (strcomp(oShape.objects("focus").styleClass,GSH_CSSFOCUSNONE,vbtextcompare) = 0) then + oShape.objects("outline").fillstyle = GSH_FILLSOLID + else + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT 'in focus, outline must be transparent + end if +'gsh_log_e("GSH_GEN_SETSHAPEFOCUS") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'ANALOGINDICATOR Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_ANALOGINDICATORSETFOCUS''''' +'Parameters: oShape = Shape object +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_ANALOGINDICATORSETFOCUS(oShape) +'gsh_log_s("GSH_ANALOGINDICATORSETFOCUS oShape=" & oShape.id) +on error resume next + call GSH_SETSHAPEFOCUS(oShape) + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + end if +'gsh_log_e("GSH_ANALOGINDICATORSETFOCUS") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_ANALOGINDICATORSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_ANALOGINDICATORSHOWNORMAL(oShape) +'gsh_log_s("GSH_ANALOGINDICATORSHOWNORMAL oShape=" & oShape.id) +on error resume next + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE + oShape.objects("focus").style.visibility = GSH_HIDDEN + call GSH_SHOWNOALARM(oShape) +'gsh_log_e("GSH_ANALOGINDICATORSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_ANALOGINDICATOR_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'06/08/07 Removing offnormal check from all Scada analog shapes AL(284) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_ANALOGINDICATOR_SCADA_ONUPDATE (oShape, flag) +on error resume next + + If flag = 0 then + call GSH_ANALOGINDICATORSHOWNORMAL(oShape) + + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("outline").styleClass = GSH_CSSANALOGINDICATORDISABLEDALARM + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + '06/08/07 Removing offnormal check from all Scada analog shapes AL(284) + End If + + If flag = 0 then + + 'Bad Data Check + If GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + oShape.objects("txt_PVvalue").value = "---" + Else + oShape.objects("txt_PVvalue").value = GSH_FormatPVText(oShape,oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV)) + End If + End If +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'DIGITALINDICATOR Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITALINDICATORSETFOCUS''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = calling shape. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DIGITALINDICATORSETFOCUS(oShape) +'gsh_log_s("GSH_DIGITALINDICATORSETFOCUS oShape=" & oShape.id) +on error resume next + call GSH_SETSHAPEFOCUS(oShape) + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show DIGITAL value and outline + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + end if +'gsh_log_e("GSH_DIGITALINDICATORSETFOCUS") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITALINDICATORSHOWNORMAL''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = calling shape. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DIGITALINDICATORSHOWNORMAL(oShape) +'gsh_log_s("GSH_DIGITALINDICATORSHOWNORMAL oShape=" & oShape.id) +on error resume next + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE + call GSH_SHOWNOALARM(oShape) + oShape.objects("shp_focus").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_DIGITALINDICATORSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITALINDICATOR_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital value does not change often) only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DIGITALINDICATOR_SCADA_ONUPDATE (oShape, flag) +on error resume next + + +If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If +End If + +If flag <=1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + dim sPVStateTxt + sPVStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If + +If flag = 0 then + 'Bad Data Check + If GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + oShape.objects("txt_PVvalue").value = "---" + Else + oShape.objects("txt_PVvalue").value = sPVStateTxt + End If + +End If +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITALINDICATOR_SCADA_P6A_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital value does not change often) only to increase performance +'12/19/2007: Added to handle SCADA_DI_P6A shape +'01/11/2008: Modified to handle the change that input parameter are F1,..,F4 instread of F1_0, F1_1, ... +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DIGITALINDICATOR_SCADA_P6A_ONUPDATE (oShape, flag) +'gsh_log_s("GSH_DIGITALINDICATOR_SCADA_P6A_ONUPDATE oShape=" & oShape.id) +on error resume next + + +' If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) +' End If + +' If flag <=1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + dim alarmPara + alarmPara = GSH_CPPARAM_IP1 + + 'Find value of GSH_CPPARAM_PV_IP1 + dim input1_val, input2_val, expected_input1_val, expected_input2_val, sPVStateTxt + + sPVStateTxt = GSH_NONE + input1_val = Cint(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_IP1)) + input2_val = Cint(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_IP2)) + + expected_input1_val = Cint(oShape.GetCustomProperty(GSH_CPVALUE,GSH_EXPECTEDVAL1)) + expected_input2_val = Cint(oShape.GetCustomProperty(GSH_CPVALUE,GSH_EXPECTEDVAL2)) + + if((input1_val=expected_input1_val) And (input2_val=expected_input2_val)) then + sPVStateTxt = GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),"BothOn","") + elseif ((input1_val=expected_input1_val) And (input2_val<>expected_input2_val)) then + sPVStateTxt = GSH_GET_STATE_TEXT_P6A(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), oShape.GetCustomProperty(GSH_CPPARAMETER,GSH_CPPARAM_IP1)&"_"&input1_val) + alarmPara=GSH_CPPARAM_IP1 + elseif ((input1_val<>expected_input1_val) And (input2_val=expected_input2_val)) then + sPVStateTxt = GSH_GET_STATE_TEXT_P6A(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), oShape.GetCustomProperty(GSH_CPPARAMETER,GSH_CPPARAM_IP2)&"_"&input2_val) + alarmPara=GSH_CPPARAM_IP2 + else + sPVStateTxt = GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),"BothOff","") + end if + + + oShape.objects("txt_PVvalue").value = sPVStateTxt + + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"), GSH_CPENTITY, alarmPara),oShape) + End If + + 'Check for Off Normal if not in focus - To be checked with Rich if need offnormal checking +' if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then +' if GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, sPVStateTxt) then +' if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then +' oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL +' else +' oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL +' end if +' end if +' end if +' End If + + +'gsh_log_e("GSH_DIGITALINDICATOR_SCADA_P6A_ONUPDATE oShape=") + +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITALINDICATOR_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital value does not change often) only to increase performance +'Author: Didi Ekaette July 31, 2007 +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DIGITALOUTPUTINDICATORALARMS_ONUPDATE (oShape, flag) +on error resume next + +If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITY_OP(oShape.objects("rec_DataScript")),oShape) + End If +End If + +If flag <=1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + dim sOPStateTxt + sOPStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_OP, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_SCADA_DIGITAL_POINT_OP_ISOFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, sOPStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If + +If flag = 0 then + oShape.objects("txt_OPvalue").value = sOPStateTxt +End if + +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITALINDICATOR_SCADA_NOFORMAT_ONUPDATE''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DIGITALINDICATOR_SCADA_NOFORMAT_ONUPDATE (oShape) +on error resume next +call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + +'Alarming +if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED +else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) +End If + + +'Set the focus +call GSH_DIGITALINDICATORSETFOCUS(oShape) + +'Check for Off Normal if not in focus +if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_DIGITAL_SCADA_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_PV, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if +end if + +'Bad Data Check +If GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + oShape.objects("txt_PVvalue").value = "---" +Else + oShape.objects("txt_PVvalue").value = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV) +End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'MOTORINDICATOR Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MOTORINDICATORSETFOCUS replaced BY GSH_GEN_SETSHAPEFOCUS + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MOTORINDICATORSHOWNORMAL''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MOTORINDICATORSHOWNORMAL(oShape) +'gsh_log_s("GSH_MOTORINDICATORSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next + call GSH_SHOWNOALARM(oShape) + oShape.objects("outline").styleClass = GSH_CSSMOTORINDICATORNORMAL +'gsh_log_e("GSH_MOTORINDICATORShowNormal") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MOTORINDICATORMOTORSETRUNSTATE'''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = shape object +' currentState = Entity's PV value +' sTagName = Shape Tag Name +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MOTORINDICATORMOTORSETRUNSTATE(oShape,currentState, sTagName) +'gsh_log_s("GSH_MOTORINDICATORMOTORSETRUNSTATE oShape=" & oShape.id & "currentState=" & currentState & "sTagName=" & sTagName) +on error resume next +Dim sRecMotorCssStyle + Dim sStateTxt0, sStateTxt1, sStateTxt2, sStateStyle0, sStateStyle1, sStateStyle2 + sStateTxt0 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"StateTxt(0)","") + sStateTxt1 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"StateTxt(1)","") + sStateTxt2 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"StateTxt(2)","") + sStateStyle0 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"STATESTYLE(0)","") + sStateStyle1 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"STATESTYLE(1)","") + sStateStyle2 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"STATESTYLE(2)","") + 'gsh_log("GSH_MOTORINDICATORMOTORSETRUNSTATE checkpoint1 sStateTxt0 = "&sStateTxt0&",sStateTxt1 = "&sStateTxt1&",sStateTxt2 = "&sStateTxt2&",currentState = "¤tState) + + sRecMotorCssStyle = GSH_CSSMOTORINDICATORMOTOROFFNORMAL + If strComp(currentState,sStateTxt0,vbTextCompare)=0 Then + sRecMotorCssStyle = sStateStyle0 + Else If strComp(currentState,sStateTxt1,vbTextCompare)=0 Then + sRecMotorCssStyle = sStateStyle1 + Else If strComp(currentState,sStateTxt2,vbTextCompare)=0 Then + sRecMotorCssStyle = sStateStyle2 + Else + sRecMotorCssStyle = GSH_CSSMOTORINDICATORMOTOROFFNORMAL + End If + End If + End If + + oShape.objects("rec_Motor").styleClass = sRecMotorCssStyle +'gsh_log_e("GSH_MOTORINDICATORMOTORSETRUNSTATE set to "& sRecMotorCssStyle) +end sub + +sub GSH_MOTORINDICATORSETNUMERICSTATE(oShape,nNumericStateValue,sParameterName) +'gsh_log_s("GSH_MOTORINDICATORSETNUMERICSTATE oShape=" & oShape.id & "nNumericStateValue=" & nNumericStateValue) +on error resume next + Dim sTagName, sStateStyle + sTagName = GSH_GETSHAPETAG(oShape) + sStateStyle = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"STATESTYLE("&nNumericStateValue&")",GSH_CSSMOTOROFFNORMALFILL) + oShape.objects("rec_Motor").styleClass = sStateStyle +'gsh_log_e("GSH_MOTORINDICATORSETNUMERICSTATE set to "& sStateStyle) +end sub + +'sub GSH_MOTORINDICATOR_P6A_SETNUMERICSTATE(oShape,nNumericStateValue,sParameterName) +'gsh_log_s("GSH_MOTORINDICATOR_P6A_SETNUMERICSTATE oShape=" & oShape.id & "nNumericStateValue=" & nNumericStateValue) +'on error resume next +' Dim sTagName, sStateStyle +' sTagName = GSH_GETSHAPETAG(oShape) +' sStateStyle = GSH_READTAGINFORMATIONKEYVALUE(sTagName,sParameterName&"STATESTYLE",GSH_CSSMOTORINDICATORMOTOROFFNORMAL) +' oShape.objects("rec_Motor").styleClass = sStateStyle +'gsh_log_e("GSH_MOTORINDICATOR_P6A_SETNUMERICSTATE set to "& sStateStyle) +'end sub + +sub GSH_C200_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericStateValue,sParameterName) +'gsh_log_s("GSH_C200_VALVEDIGITALSETVALVENUMERICSTATE oShape=" & oShape.id & "nNumericStateValue=" & nNumericStateValue) +on error resume next + Dim sTagName, sStateStyle + sTagName = GSH_GETSHAPETAG(oShape) +' gsh_log("GSH_ValveDigitalSetValveState checkpoint1 sStateStyle = "&sStateStyle) + sStateStyle = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"STATESTYLE("&nNumericStateValue&")",GSH_CSSVALVEDIGITALTRAVEL) + oShape.objects("txt_PVValue").style.visibility = GSH_HIDDEN + If strComp(sStateStyle,GSH_CSSVALVEDIGITALTRAVEL,vbTextCompare)=0 Then 'if the style is travel then make txt_PVValue visible + oShape.objects("txt_PVValue").style.visibility = GSH_VISIBLE + end if + call GSH_ValveDigitalSetValveCSSStyle(oShape,sStateStyle) +'gsh_log_e("GSH_C200_VALVEDIGITALSETVALVENUMERICSTATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_MOTORINDICATOR_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 06/13/07 use GSH_GEN_SETSHAPEFOCUS to display focus +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_SCADA_MOTORINDICATOR_ONUPDATE(oShape, flag) +On Error Resume Next + + If flag = 0 then + call GSH_MOTORINDICATORSHOWNORMAL(oShape) + 'set motor to running or not based on registry + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV),GSH_CPPARAM_PV) + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'check offnormal + dim sPVStateTxt + sPVStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_MOTORINDICATOR_P6A_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 12/19/2007: Added the function to handle MOTORINDICATOR_P6A shape (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_SCADA_MOTORINDICATOR_P6A_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_SCADA_MOTORINDICATOR_P6A_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + If flag = 0 then + call GSH_MOTORINDICATORSHOWNORMAL(oShape) + + + dim alarmPara + alarmPara = GSH_CPPARAM_IP1 + + 'set motor to running or not based on registry + 'Find value of GSH_CPPARAM_PV_IP1 + dim input1_val, input2_val, expected_input1_val, expected_input2_val, sPVStateTxt + + sPVStateTxt = GSH_NONE + input1_val = Cint(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_IP1)) + input2_val = Cint(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_IP2)) + + expected_input1_val = Cint(oShape.GetCustomProperty(GSH_CPVALUE,GSH_EXPECTEDVAL1)) + expected_input2_val = Cint(oShape.GetCustomProperty(GSH_CPVALUE,GSH_EXPECTEDVAL2)) + + if((input1_val=expected_input1_val) And (input2_val=expected_input2_val)) then + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,2,GSH_CPPARAM_IP1) + elseif ((input1_val=expected_input1_val) And (input2_val<>expected_input2_val)) then + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,0,GSH_CPPARAM_IP1) + alarmPara=GSH_CPPARAM_IP1 + elseif ((input1_val<>expected_input1_val) And (input2_val=expected_input2_val)) then + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,1,GSH_CPPARAM_IP1) + alarmPara=GSH_CPPARAM_IP2 + else + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,2,GSH_CPPARAM_IP1) + end if + + dim activeInput + activeInput = GSH_CPPARAM_PV_IP1 + + + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"), GSH_CPENTITY, activeInput),oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'check offnormal + 'if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + ' if GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sPVStateTxt) then + ' if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + ' oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + ' else + ' oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + ' end if + ' end if + 'end if + End If +'gsh_log_e("GSH_SCADA_MOTORINDICATOR_P6A_ONUPDATE") +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'MOTORINDICATORMULTIPLEALARMS Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_MOTORINDICATORWITHALARMS_ONUPDATE'''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 06/12/07 use GSH_GEN_SETSHAPEFOCUS to display focus +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_SCADA_MOTORINDICATORWITHALARMS_ONUPDATE (oShape, flag) +'gsh_log_s("GSH_SCADA_MOTORINDICATORWITHALARMS_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + If flag = 0 then + call GSH_MOTORINDICATORSHOWNORMAL(oShape) + + 'set motor to running or not based on registry + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV),GSH_CPPARAM_PV) + + 'Alarming: Don't check alarm disabled for this alarm group (OK'd by Jamie) + dim sAlarmPriority, bUnack + sAlarmPriority = GSH_GETALARMGROUPPRIORITYPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITYALARM) + bUnack = GSH_GETALARMGROUPUNACKPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITYALARM) + 'gsh_log ("sAlarmPriority = " & sAlarmPriority & "bUnack = " & bUnack ) + call GSH_SHOWALARMS (sAlarmPriority, bUnack, oShape) + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'check offnormal + dim sPVStateTxt + sPVStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If +'gsh_log_e("GSH_SCADA_MOTORINDICATORWITHALARMS_ONUPDATE") +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MINIMOTORINDICATORSHOWNORMAL''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MINIMOTORINDICATORSHOWNORMAL(oShape) +'gsh_log_s("GSH_MINIMOTORINDICATORSHOWNORMAL oShape=" & oShape.id) +on error resume next + call GSH_SHOWNOALARM(oShape) +'gsh_log_e("GSH_MINIMOTORINDICATORShowNormal") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_MINIMOTORINDICATOR_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital value does not change often) only to increase performance +' 06/13/07 use GSH_GEN_SETSHAPEFOCUS to display focus +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_SCADA_MINIMOTORINDICATOR_ONUPDATE(oShape, flag) + On Error Resume Next + + if flag = 0 then + call GSH_MINIMOTORINDICATORSHOWNORMAL(oShape) + + 'set motor to running or not based on registry + dim sTagName + sTagName = GSH_GETSHAPETAG(oShape) + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV),GSH_CPPARAM_PV) + + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("outline").styleClass = GSH_CSSMINIMOTORINDICATORDISABLEDALARM + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'check offnormal + dim sPVStateTxt + sPVStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV,oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' REGULATAORYCONTROLINDICATOR Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_REGULATORYCONTROLINDICATOR_SCADA_ONUPDATE''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_REGULATORYCONTROLINDICATOR_SCADA_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_REGULATORYCONTROLINDICATOR_SCADA_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + If flag = 0 then + call GSH_REGULATORYCONTROLINDICATORSHOWNORMAL(oShape) + call GSH_SETREGULATORYCONTROLINDICATORMODE(oShape.objects("rec_DataScript")) + + 'Check the points alarming + if GSH_SCADA_ISALARMINGDISABLED(oShape.objects("rec_DataScript")) Then + 'Alarm is Disabled + call GSH_REGULATORYCONTROLINDICATORSHOWDISABLEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If + End If + + + If flag <= 1 then + 'Check Focus + 'call GSH_SETREGULATORYCONTROLINDICATORFOCUS(oShape) + call GSH_GEN_SETSHAPEFOCUS (oShape) + + 'Check for Off Normal if not in focus + + 'if (not(GSH_ISREGULATORYCONTROLINDICATOR_INFOCUS(oShape))) then + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if (GSH_REGCTL_SCADA_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_CPPARAM_PV)) then + call GSH_REGULATORYCONTROLINDICATORSHOWOFFNORMAL(oShape) + end if + end if + End If + + If flag = 0 then + 'PV Data Check + If GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true, false, false) Then + call GSH_GROUPREGULATORYCONTROLSHOWBADPV(oShape) + else + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + End If + + 'Set Mode + oShape.objects("txt_mode").value = Left(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE), 1) + + End If +'gsh_log_e("GSH_REGULATORYCONTROLINDICATOR_SCADA_ONUPDATE") +End Sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'ANALOGOUTPUTINDICATOR Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_ANALOGOUTPUTINDICATORSETFOCUS replaced by GSH_GEN_SETSHAPEFOCUS 06/12/07 + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_ANALOGOUTPUTINDICATOR_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_ANALOGOUTPUTINDICATOR_SCADA_ONUPDATE (oShape, flag) +on error resume next + +If flag = 0 then + oShape.objects("outline").styleClass = GSH_CSSANALOGOUTPUTINDICATORNORMAL +End If + +If flag <=1 then + 'call GSH_ANALOGOUTPUTINDICATORSETFOCUS(oShape) --> replaced by + call GSH_GEN_SETSHAPEFOCUS (oShape) +End If + +If flag =0 then + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) + +End If +'gsh_log_e("GSH_ANALOGOUTPUTINDICATOR_SCADA_ONUPDATE value = " &oShape.objects("txt_OPvalue").value) +End sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_ANALOGOUTPUTINDICATOR_ALARMS_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'Author: Didi Ekaette July 30, 2007 +'Jan10,2008: Remove Offnormal checking. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_ANALOGOUTPUTINDICATORALARMS_ONUPDATE (oShape, flag) +on error resume next + +If flag <= 1 then + call GSH_SHOWNOALARM(oShape) + call GSH_SETREGULATORYCONTROLINDICATORMODE(oShape.objects("rec_DataScript")) + + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("outline").styleClass = GSH_CSSANALOGINDICATORDISABLEDALARM + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITY_OP(oShape.objects("rec_DataScript")),oShape) + End If + + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + +End If + +If flag = 0 then + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) +End If + +End sub + + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_OPDEVMONITOR_SCADA_ONUPDATE +'Update function for the shape SCADA_OPDEVIATION +'10/03/2008 - Create this new shape & Add code to handle it (Cuong Ly) +' +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_OPDEVMONITOR_SCADA_ONUPDATE(oShape, flag) +' gsh_log_s("GSH_OPDEVMONITOR_SCADA_ONUPDATE oShapeId =" &oShape.id) + + call GSH_C200_OPDEVMONITOR_SHOWNORMAL(oShape) + ' No alarm checking (OK by Jamie) + + If flag <=1 then + + 'Do focus and offnormal checking here. It is important that all shape generic functionalities are + 'done before shape specific ones + call GSH_SETSHAPEFOCUS(oShape) + + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show analog value and outline +' oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("plg_LeftCover001").styleClass = GSH_CSSFOCUSASSOCIATED + oShape.objects("plg_LeftCover002").styleClass = GSH_CSSFOCUSASSOCIATED + oShape.objects("line007").styleClass = GSH_CSSFOCUSASSOCIATED + oShape.objects("line009").styleClass = GSH_CSSFOCUSASSOCIATED + end if + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_SCADA_POINT_MODE_ISOFFNORMAL(oShape.objects("OPDevMonitor_Script")) then + + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End if + + If flag = 0 then + + 'We do not want shape to reload it self when Value changes, the changes will affect in next update + oShape.autoReloadContent=false + + 'Get OP value + dim opRefVal, deadBand, filterVal, lastRefTime, diff_old + + 'Get the Deadband, filter, OPRefVal and the lastRefTime + + opRefVal = Cdbl(oShape.GetCustomProperty("Value","OPRefVal")) + deadBand = Cdbl(oShape.GetCustomProperty("Value","DeadBand")) + filterVal = oShape.GetCustomProperty("Value","Filter") + lastRefTime = oShape.GetCustomProperty("Value","LastRefTime") + diff_old = oShape.GetCustomProperty("Value","Diff_Old") + + dim diff_cur, deviation, opVal, diff_prev + opVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("OPDevMonitor_Script"),GSH_CPPARAM_OP) + + if(StrComp(opVal,GSH_BADPV_TEXT, vbtextcompare)=0) then + exit sub + end if + + 'Reference OP value is not set, + if(opRefVal < -99.0) then + opRefVal = opVal + oShape.SetCustomProperty "Value","OPRefVal",opVal + oShape.SetCustomProperty "Value","LastRefTime",now + oShape.objects("plg_OPRefValue").style.pixelleft = GSH_GET_OPREFPOSITION(oShape,opRefVal) + exit sub + end if + + 'Get the RefTime from Registry. + dim opDevMonRegistryBase, refTime + opDevMonRegistryBase = GSH_REGISTRY_BASE & GSH_REGISTRY_OPDEVMONITOR + refTime = GSH_READREGISTRY(opDevMonRegistryBase & GSH_REGKEY_OPDEVMON_RESETTIME, GSH_EMPTYSTRING) + + 'If the RefTime > lastRefTime then update OPRefVal to current OPVal & update lastRefTime to RefTime + 'Need to give it a time buffer (i.e within 10s)? + if((StrComp(refTime,GSH_EMPTYSTRING)<>0) AND (CDate(refTime) > CDate(lastRefTime))) then + oShape.SetCustomProperty "Value","OPRefVal",opVal + opRefVal = opVal + oShape.SetCustomProperty "Value","LastRefTime",refTime + oShape.SetCustomProperty "Value","Diff_Old",0 + diff_old = 0 + oShape.objects("plg_OPRefValue").style.pixelleft = GSH_GET_OPREFPOSITION(oShape,opRefVal) + end if + + 'Calculate OPDeviation + diff_prev = diff_old + diff_cur = opVal - opRefVal + diff_old = (diff_cur + diff_old)*filterVal + oShape.SetCustomProperty "Value","Diff_Old", diff_old + +' gsh_log("diff_cur = " &diff_cur &" diff_old = " &diff_old &" diff_prev = " &diff_prev) + + 'Set ButterFlies + if diff_cur > 0 then + oShape.objects("ind_OPDevBarRight").value = diff_cur + oShape.objects("ind_OPDevBarLeft").value = 0 + elseif diff_cur < 0 then + oShape.objects("ind_OPDevBarRight").value = 0 + oShape.objects("ind_OPDevBarLeft").value = diff_cur + else + oShape.objects("ind_OPDevBarRight").value = 0 + oShape.objects("ind_OPDevBarLeft").value = 0 + end if + + 'Set arrows - TODO: should this compare absolute value? + if ((diff_cur-diff_prev) > deadBand) then + 'set arrow to right + oShape.objects("grp_RightArrow").style.visibility = GSH_VISIBLE + oShape.objects("grp_LeftArrow").style.visibility = GSH_HIDDEN + elseif ((diff_prev - diff_cur) > deadBand) then + 'set arrow to the left + oShape.objects("grp_RightArrow").style.visibility = GSH_HIDDEN + oShape.objects("grp_LeftArrow").style.visibility = GSH_VISIBLE + else + 'hide arrows + oShape.objects("grp_RightArrow").style.visibility = GSH_HIDDEN + oShape.objects("grp_LeftArrow").style.visibility = GSH_HIDDEN + end if + + End If + +' gsh_log_e("GSH_OPDEVMONITOR_SCADA_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_OPDEVMONITOR_SCADA_ONUPDATE",oShape) + end if + +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_ANALOGOUTPUTINDICATORALARMS_W_OFFNORMAL_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'Author: Didi Ekaette July 30, 2007 +'Jan10,2008: Rename to GSH_ANALOGOUTPUTINDICATORALARMS_W_OFFNORMAL_ONUPDATE (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_ANALOGOUTPUTINDICATORALARMS_W_OFFNORMAL_ONUPDATE (oShape, flag) +on error resume next + +If flag <= 1 then + call GSH_SHOWNOALARM(oShape) + call GSH_SETREGULATORYCONTROLINDICATORMODE(oShape.objects("rec_DataScript")) + + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("outline").styleClass = GSH_CSSANALOGINDICATORDISABLEDALARM + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITY_OP(oShape.objects("rec_DataScript")),oShape) + End If + + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if (GSH_REGCTL_SCADA_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_CPPARAM_OP)) then + call GSH_REGULATORYCONTROLINDICATORSHOWOFFNORMAL(oShape) + end if + end if + +End If + +If flag = 0 then + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) +End If + +End sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'SENSOR Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SENSOR_SCADA_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: shape +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SENSOR_SCADA_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_SENSOR_SCADA_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + If flag = 0 then + call GSH_SENSORSHOWNORMAL(oShape) + + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + 'Alarm is Disabled + call GSH_SENSORSHOWSUPPRESSEDALARM(oShape) + else + 'alarming is enabled, get highest priority and change shape accordingly + Select Case GSH_GETHIGHESTALARMPRIORITY(oShape.objects("rec_DataScript")) + Case GSH_UNACKEMERG + call GSH_SENSORSHOWEMERGENCYALARM(oShape,true) + Case GSH_UNACKHIGH + call GSH_SENSORSHOWHIGHALARM(oShape,true) + Case GSH_UNACKLOW + call GSH_SENSORSHOWLOWALARM(oShape,true) + Case GSH_ACKEMERG + call GSH_SENSORSHOWEMERGENCYALARM(oShape,false) + Case GSH_ACKHIGH + call GSH_SENSORSHOWHIGHALARM(oShape,false) + Case GSH_ACKLOW + call GSH_SENSORSHOWLOWALARM(oShape,false) + Case Else + End Select + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_SETSHAPEFOCUS(oShape) + 'No Offnormal check as this shape could be a digital flag or analog point. + 'gsh_log_e("GSH_SENSOR_SCADA_ONUPDATE") + End If +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SENSORSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SENSORSHOWNORMAL(oDataBoundObject) +'gsh_log_s("GSH_SENSORSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next + 'Disable Alarms + call GSH_SHOWNOALARM(oDataBoundObject) + oDataBoundObject.objects("ovl_sensor").style.visibility = GSH_VISIBLE + oDataBoundObject.objects("ovl_sensor").styleClass = GSH_CSSSENSORNORMAL +'gsh_log_e("GSH_SENSORSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SENSORSHOWHIGHALARM'''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' unAcknowledged - true or false , true if you want to show UnAcknowledged Alarm Behavior +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SENSORSHOWHIGHALARM(oDataBoundObject,unAcknowledged) +'gsh_log_s("GSH_SENSORSHOWHIGHALARM oDataBoundObject=" & oDataBoundObject.id & "unAcknowledged=" & cstr(unAcknowledged)) + 'show + call GSH_ShowHighAlarm(oDataBoundObject,unAcknowledged) + oDataBoundObject.objects("ovl_sensor").style.visibility = GSH_VISIBLE + if unAcknowledged then + oDataBoundObject.objects("ovl_sensor").styleClass = GSH_CSSSENSORALARMHIGHUNACK + + else + oDataBoundObject.objects("ovl_sensor").styleClass = GSH_CSSSENSORALARMHIGHACK + end if +'gsh_log_e("GSH_SENSORSHOWHIGHALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SENSORSHOWLOWALARM''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' unAcknowledged - true or false , true if you want to show UnAcknowledged Alarm Behavior +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SENSORSHOWLOWALARM(oDataBoundObject,unAcknowledged) +'gsh_log_s("GSH_SENSORSHOWLOWALARM oDataBoundObject=" & oDataBoundObject.id & "unAcknowledged=" & cstr(unAcknowledged)) + 'show + call GSH_ShowLowAlarm(oDataBoundObject,unAcknowledged) + oDataBoundObject.objects("ovl_sensor").style.visibility = GSH_VISIBLE + if unAcknowledged then + oDataBoundObject.objects("ovl_sensor").styleClass = GSH_CSSSENSORALARMLOWUNACK + else + oDataBoundObject.objects("ovl_sensor").styleClass = GSH_CSSSENSORALARMLOWACK + end if +'gsh_log_e("GSH_SENSORSHOWLOWALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SENSORSHOWEMERGENCYALARM''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' unAcknowledged - true or false , true if you want to show UnAcknowledged Alarm Behavior +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SENSORSHOWEMERGENCYALARM(oDataBoundObject,unAcknowledged) +'gsh_log_s("GSH_SENSORSHOWEMERGENCYALARM oDataBoundObject=" & oDataBoundObject.id & "unAcknowledged=" & cstr(unAcknowledged)) + 'show + call GSH_ShowEmergencyAlarm(oDataBoundObject,unAcknowledged) + oDataBoundObject.objects("ovl_sensor").style.visibility = GSH_VISIBLE + if unAcknowledged then + oDataBoundObject.objects("ovl_sensor").styleClass = GSH_CSSSENSORALARMEMERGENCYUNACK + else + oDataBoundObject.objects("ovl_sensor").styleClass = GSH_CSSSENSORALARMEMERGENCYACK + end if +'gsh_log_e("GSH_SENSORSHOWEMERGENCYALARM") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SENSORSHOWDISABLEDALARM''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SENSORSHOWDISABLEDALARM(oDataBoundObject) +'gsh_log_s("GSH_SENSORSHOWDISABLEDALARM oDataBoundObject=" & oDataBoundObject.id) + oDataBoundObject.objects("ovl_sensor").styleClass = GSH_CSSSENSORDISABLEDALARM +'gsh_log_e("GSH_SENSORSHOWDISABLEDALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SENSORSHOWSUPPRESSEDALARM''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SENSORSHOWSUPPRESSEDALARM(oDataBoundObject) +'gsh_log_s("GSH_SENSORSHOWSUPPRESSEDALARM oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("ovl_sensor").styleClass = GSH_CSSSENSORDISABLEDALARM +'gsh_log_e("GSH_SENSORSHOWSUPPRESSEDALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SENSOR_ISPOINTOFFNORMAL removed Apr 13, 2007 (AL)'''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SENSORSHOWOFFNORMAL'''''''''''''''''''''''''''' +'Parameters: oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SENSORSHOWOFFNORMAL(oDataBoundObject) +'gsh_log_s("GSH_SENSORSHOWOFFNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL +'gsh_log_e("GSH_SENSORSHOWOFFNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'MULTIPLESENSORS Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MULTIPLESENSORS_SCADA_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'06/08/07 Removing offnormal check from all Scada analog shapes AL(284) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MULTIPLESENSORS_SCADA_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_MULTIPLESENSORS_SCADA_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + If flag = 0 then + call GSH_MULTIPLESENSORSSHOWNORMAL(oShape) + + 'Alarming + 'Check Alarming disabled + if (GSH_SCADA_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"), GSH_CPENTITY) or GSH_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"), GSH_CPENTITYALARM)) Then + 'Alarm is Disabled + call GSH_MULTIPLESENSORSSHOWSUPPRESSEDALARM(oShape) + end if + 'Get Highest Alarm + iAlarmCode1 = GSH_GETHIGHESTALARMPRIORITYParameter(oShape.objects("rec_DataScript"), GSH_CPENTITY) + iAlarmCode2 = GSH_GETHIGHESTALARMPRIORITYParameter(oShape.objects("rec_DataScript"), GSH_CPENTITYALARM) + iAlarmCode = GSH_COMPAREHIGHESTALARMPRIORITY(iAlarmCode1, iAlarmCode2) + + 'alert("iAlarmCode2 = " &iAlarmCode2) + + Select Case iAlarmCode + Case GSH_UNACKEMERG + call GSH_MULTIPLESENSORSSHOWEMERGENCYALARM(oShape,true) + Case GSH_UNACKHIGH + call GSH_MULTIPLESENSORSSHOWHIGHALARM(oShape,true) + Case GSH_UNACKLOW + call GSH_MULTIPLESENSORSSHOWLOWALARM(oShape,true) + Case GSH_ACKEMERG + call GSH_MULTIPLESENSORSSHOWEMERGENCYALARM(oShape,false) + Case GSH_ACKHIGH + call GSH_MULTIPLESENSORSSHOWHIGHALARM(oShape,false) + Case GSH_ACKLOW + call GSH_MULTIPLESENSORSSHOWLOWALARM(oShape,false) + Case Else + 'No Alarms + End Select + End If + + If flag <= 1 then + 'Set the focus + call GSH_MULTIPLESENSORSSETFOCUS(oShape) +'06/08/07 Removing offnormal check from all Scada analog shapes AL(284) + End If + +'gsh_log_e("GSH_MULTIPLESENSORS_SCADA_ONUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MULTIPLESENSORSSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MULTIPLESENSORSSHOWNORMAL(oDataBoundObject) +'gsh_log_s("GSH_MULTIPLESENSORSSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next + 'Disable Alarms + call GSH_SHOWNOALARM(oDataBoundObject) + oDataBoundObject.objects("plg_MultipleSensors").style.visibility = GSH_VISIBLE + oDataBoundObject.objects("plg_MultipleSensors").styleClass = GSH_CSSSENSORNORMAL +'gsh_log_e("GSH_MULTIPLESENSORSSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MULTIPLESENSORSSHOWHIGHALARM'''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' unAcknowledged - true or false , true if you want to show UnAcknowledged Alarm Behavior +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MULTIPLESENSORSSHOWHIGHALARM(oDataBoundObject,unAcknowledged) +'gsh_log_s("GSH_MULTIPLESENSORSSHOWHIGHALARM oDataBoundObject=" & oDataBoundObject.id & "unAcknowledged=" & cstr(unAcknowledged)) + 'show + call GSH_ShowHighAlarm(oDataBoundObject,unAcknowledged) + oDataBoundObject.objects("plg_MultipleSensors").style.visibility = GSH_VISIBLE + if unAcknowledged then + oDataBoundObject.objects("plg_MultipleSensors").styleClass = GSH_CSSSENSORALARMHIGHUNACK + + else + oDataBoundObject.objects("plg_MultipleSensors").styleClass = GSH_CSSSENSORALARMHIGHACK + end if +'gsh_log_e("GSH_MULTIPLESENSORSSHOWHIGHALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MULTIPLESENSORSSHOWLOWALARM''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' unAcknowledged - true or false , true if you want to show UnAcknowledged Alarm Behavior +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MULTIPLESENSORSSHOWLOWALARM(oDataBoundObject,unAcknowledged) +'gsh_log_s("GSH_MULTIPLESENSORSSHOWLOWALARM oDataBoundObject=" & oDataBoundObject.id & "unAcknowledged=" & cstr(unAcknowledged)) + 'show + call GSH_ShowLowAlarm(oDataBoundObject,unAcknowledged) + oDataBoundObject.objects("plg_MultipleSensors").style.visibility = GSH_VISIBLE + if unAcknowledged then + oDataBoundObject.objects("plg_MultipleSensors").styleClass = GSH_CSSSENSORALARMLOWUNACK + else + oDataBoundObject.objects("plg_MultipleSensors").styleClass = GSH_CSSSENSORALARMLOWACK + end if +'gsh_log_e("GSH_MULTIPLESENSORSSHOWLOWALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MULTIPLESENSORSSHOWEMERGENCYALARM''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' unAcknowledged - true or false , true if you want to show UnAcknowledged Alarm Behavior +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MULTIPLESENSORSSHOWEMERGENCYALARM(oDataBoundObject,unAcknowledged) +'gsh_log_s("GSH_MULTIPLESENSORSSHOWEMERGENCYALARM oDataBoundObject=" & oDataBoundObject.id & "unAcknowledged=" & cstr(unAcknowledged)) + 'show + call GSH_ShowEmergencyAlarm(oDataBoundObject,unAcknowledged) + oDataBoundObject.objects("plg_MultipleSensors").style.visibility = GSH_VISIBLE + if unAcknowledged then + oDataBoundObject.objects("plg_MultipleSensors").styleClass = GSH_CSSSENSORALARMEMERGENCYUNACK + else + oDataBoundObject.objects("plg_MultipleSensors").styleClass = GSH_CSSSENSORALARMEMERGENCYACK + end if +'gsh_log_e("GSH_MULTIPLESENSORSSHOWEMERGENCYALARM") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MULTIPLESENSORSSHOWDISABLEDALARM''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MULTIPLESENSORSSHOWDISABLEDALARM(oDataBoundObject) +'gsh_log_s("GSH_MULTIPLESENSORSSHOWDISABLEDALARM oDataBoundObject=" & oDataBoundObject.id) + oDataBoundObject.objects("plg_MultipleSensors").styleClass = GSH_CSSSENSORDISABLEDALARM +'gsh_log_e("GSH_MULTIPLESENSORSSHOWDISABLEDALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MULTIPLESENSORSSHOWSUPPRESSEDALARM''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MULTIPLESENSORSSHOWSUPPRESSEDALARM(oDataBoundObject) +'gsh_log_s("GSH_MULTIPLESENSORSSHOWSUPPRESSEDALARM oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("plg_MultipleSensors").styleClass = GSH_CSSSENSORDISABLEDALARM +'gsh_log_e("GSH_MULTIPLESENSORSSHOWSUPPRESSEDALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MULTIPLESENSORSSETFOCUS''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MULTIPLESENSORSSETFOCUS(oDataBoundObject) +'gsh_log_s("GSH_MULTIPLESENSORSSETFOCUS oDataBoundObject=" & oDataBoundObject.id) +on error resume next + call GSH_SETSHAPEFOCUS(oDataBoundObject) +'gsh_log_e("GSH_MULTIPLESENSORSSETFOCUS") +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Group Analog Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPANALOG_SCADA_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = shape +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'06/08/07 Removing offnormal check from all Scada analog shapes AL(284) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPANALOG_SCADA_ONUPDATE(oShape, flag) +on error resume next + If flag = 0 then + call GSH_GROUPANALOGSHOWNORMAL(oShape) + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + call GSH_GROUPANALOGSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If + End If + + If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS (oShape) + '06/08/07 Removing offnormal check from all Scada analog shapes AL(284) + End If + + If flag = 0 then + 'PV Data Check + If NOT(GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true, false, false)) Then + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + Else + call GSH_GROUPANALOGSHOWBADPV(oShape) + End If + End If + +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPANALOGSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPANALOGSHOWNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPANALOGSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim shapePoint, tagKeyword, stagName + 'Disable Alarms + call GSH_SHOWNOALARM(oDataBoundObject) + 'Show objects + oDataBoundObject.objects("outline").style.visibility = GSH_VISIBLE + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPANALOGNORMAL + oDataBoundObject.objects("txt_AnalogValue").style.visibility = GSH_VISIBLE + 'Read Values from Registry + shapePoint = GSH_GETSHAPETAG(oDataBoundObject) + stagName = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGNAME_ALIAS, shapePoint) + tagKeyword = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_KEYWORD, defaultString) + 'Assign values + 'gsh_log ("tagName = "&tagname) + oDataBoundObject.objects("txt_tagname").value = stagName + oDataBoundObject.objects("txt_keyword").value = tagKeyword +'gsh_log_e("GSH_GROUPANALOGSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPANALOGSHOWOFFNORMAL'''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPANALOGSHOWOFFNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPANALOGSHOWOFFNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next + if (oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if +'gsh_log_e("GSH_GROUPANALOGSHOWOFFNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPANALOGSHOWBADPV''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPANALOGSHOWBADPV(oDataBoundObject) +'gsh_log_s("GSH_GROUPANALOGSHOWBADPV oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("txt_AnalogValue").value = GSH_BADPV_TEXT +'gsh_log_e("GSH_GROUPANALOGSHOWBADPV") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPANALOGSHOWSUPPRESSEDALARM''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPANALOGSHOWSUPPRESSEDALARM(oDataBoundObject) +'gsh_log_s("GSH_GROUPANALOGSHOWSUPPRESSEDALARM oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPANALOGDISABLEDALARM +'gsh_log_e("GSH_GROUPANALOGSHOWSUPPRESSEDALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPANALOGSETFOCUS replaced by GSH_GEN_SETSHAPEFOCUS 06/12/07 + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALCOMPOSITESHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: ' oDataBoundObject = subshape name or me, if calling within subshape +'Used for C200 and SCADA +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITESHOWNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITESHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim shapePoint, tagKeyword, tagName + 'Disable Alarms + call GSH_SHOWNOALARM(oDataBoundObject) + 'Show values + oDataBoundObject.objects("outline").style.visibility = GSH_VISIBLE + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPDIGITALCOMPOSITENORMAL + 'Read Values from Registry + shapePoint = GSH_GETSHAPETAG(oDataBoundObject) + tagName = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGNAME_ALIAS, shapePoint) + tagKeyword = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_KEYWORD, defaultString) + 'Assign values to textboxes + oDataBoundObject.objects("txt_tagname").value = tagName + oDataBoundObject.objects("txt_keyword").value = tagKeyword +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITESHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALCOMPOSITESHOWOFFNORMAL'''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITESHOWOFFNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITESHOWOFFNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITESHOWOFFNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALCOMPOSITESHOWBADPV''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITESHOWBADPV(oDataBoundObject) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITESHOWBADPV oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("txt_DigitalValue").style.visibility = GSH_VISIBLE + oDataBoundObject.objects("txt_DigitalValue").value = GSH_BADPV_TEXT +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITESHOWBADPV") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALCOMPOSITESHOWSUPPRESSEDALARM''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITESHOWSUPPRESSEDALARM(oDataBoundObject) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITESHOWSUPPRESSEDALARM oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPDIGITALCOMPOSITEDISABLEDALARM +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITESHOWSUPPRESSEDALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALCOMPOSITESETFOCUS''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITESETFOCUS(oDataBoundObject) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITESETFOCUS oDataBoundObject=" & oDataBoundObject.id) +on error resume next + call GSH_SETSHAPEFOCUS(oDataBoundObject) + if (not(oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must change outline fill to transparent + oDataBoundObject.objects("outline").fillstyle = GSH_FILLTRANSPARENT + end if +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITESETFOCUS") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALCOMPOSITESETVALVECSSSTYLE'''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITESETVALVECSSSTYLE(oShape,style) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITESETVALVECSSSTYLE oShape=" & oShape.id&",style="&style) +on error resume next + 'gsh_log("GSH_GROUPDIGITALCOMPOSITESETVALVECSSSTYLE CHECKPOINT") + oShape.objects("outline").styleClass = style +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITESETVALVECSSSTYLE") +end sub + +'GSH_GROUPDIGITALCOMPOSITESETVALVESTATE''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITESETVALVESTATE(oShape,currentState) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITESETVALVESTATE oShape=" & oShape.id & "currentState=" & currentState) +on error resume next +Dim sTagName + + Dim sStateTxt0, sStateTxt1,sStateTxt2, sStateStyle0, sStateStyle1, sStateStyle2 + sTagName = GSH_GETSHAPETAG(oShape) + sStateTxt0 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"StateTxt(0)","") + sStateTxt1 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"StateTxt(1)","") + sStateTxt2 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"StateTxt(2)","") + sStateStyle0 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"STATESTYLE(0)","") + sStateStyle1 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"STATESTYLE(1)","") + sStateStyle2 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"STATESTYLE(2)","") + 'gsh_log("GSH_GROUPDIGITALCOMPOSITESETVALVESTATE checkpoint1 sStateTxt0 = "&sStateTxt0&",sStateTxt1 = "&sStateTxt1&",sStateTxt2 = "&sStateTxt2&",currentState = "¤tState) + + If currentState = sStateTxt0 Then + call GSH_GROUPDIGITALCOMPOSITESETVALVECSSSTYLE(oShape,sStateStyle0) + Else If currentState = sStateTxt1 Then + call GSH_GROUPDIGITALCOMPOSITESETVALVECSSSTYLE(oShape,sStateStyle1) + Else If currentState = sStateTxt2 Then + call GSH_GROUPDIGITALCOMPOSITESETVALVECSSSTYLE(oShape,sStateStyle2) + Else + call GSH_GROUPDIGITALCOMPOSITESETVALVECSSSTYLE(oShape,GSH_CSSGROUPDIGITALCOMPOSITEDEFAULT) + End If + End If + End If +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITESETVALVESTATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPDIGITALCOMPOSITEHIDEMODEENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITEHIDEMODEENTRY(oShape) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITEHIDEMODEENTRY oShape=" & oShape.id) + window.clearInterval(GSH_GroupTimerId) + oShape.objects("cmb_ModAttrValue").style.visibility = GSH_HIDDEN + oShape.objects("txt_ModAttrValue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITEHIDEMODEENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPDIGITALCOMPOSITESHOWMODEENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITESHOWMODEENTRY(oShape) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITESHOWMODEENTRY oShape=" & oShape.id) + oShape.objects("cmb_ModAttrValue").style.visibility = GSH_VISIBLE + oShape.objects("txt_ModAttrValue").style.visibility = GSH_HIDDEN + window.clearInterval(GSH_GroupTimerId) + GSH_GroupTimerId = window.setInterval("GSH_GROUPDIGITALCOMPOSITEHIDEMODEENTRY(" & oShape.id & ")", GSH_GroupTimeout * 1000) +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITESHOWMODEENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPDIGITALCOMPOSITEHIDEOPENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITEHIDEOPENTRY(oShape) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITEHIDEOPENTRY oShape=" & oShape.id) + window.clearInterval(GSH_GroupTimerId) + oShape.objects("cmb_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("txt_OPValue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITEHIDEOPENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPDIGITALCOMPOSITESHOWOPENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITESHOWOPENTRY(oShape) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITESHOWOPENTRY oShape=" & oShape.id) + oShape.objects("cmb_OPValue").style.visibility = GSH_VISIBLE + oShape.objects("txt_OPValue").style.visibility = GSH_HIDDEN + window.clearInterval(GSH_GroupTimerId) + GSH_GroupTimerId = window.setInterval("GSH_GROUPDIGITALCOMPOSITEHIDEOPENTRY(" & oShape.id & ")", GSH_GroupTimeout * 1000) +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITESHOWOPENTRY") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Group Digital Input Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_GROUPDIGITALINPUT_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape - Shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital value does not change often) only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_GROUPDIGITALINPUT_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_SCADA_GROUPDIGITALINPUT_ONUPDATE oShape = " & oShape.id) +on error resume next + +If flag = 0 then + GSH_GROUPDIGITALINPUTSHOWNORMAL(oShape) + + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + 'Alarm is Disabled + call GSH_GROUPDIGITALINPUTSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If +End If + +If flag <= 1 then + 'Set the focus + 'call GSH_GROUPDIGITALINPUTSETFOCUS(oShape) + call GSH_GEN_SETSHAPEFOCUS (oShape) + + 'Check for Off Normal if not in focus + dim sPVStateTxt + sPVStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV,oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, sPVStateTxt) then + call GSH_GROUPDIGITALINPUTSHOWOFFNORMAL(oShape) + end if + end if + +End If + +If flag = 0 then + + 'PV Data Check + If GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true, false, false) Then + call GSH_GROUPDIGITALINPUTSHOWBADPV(oShape) + else + oShape.objects("txt_DigitalValue").value = sPVStateTxt + End If + 'gsh_log_e("GSH_SCADA_GROUPDIGITALINPUT_ONUPDATE") +End If +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALINPUTSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALINPUTSHOWNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPDIGITALINPUTSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim shapePoint, tagKeyword, tagName + 'Disable Alarms + call GSH_SHOWNOALARM(oDataBoundObject) + 'Show values + oDataBoundObject.objects("outline").style.visibility = GSH_VISIBLE + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPDIGITALINPUTNORMAL + oDataBoundObject.objects("txt_DigitalValue").style.visibility = GSH_VISIBLE + 'Read Values from Registry + shapePoint = GSH_GETSHAPETAG(oDataBoundObject) + tagName = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGNAME_ALIAS, shapePoint) + tagKeyword = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_KEYWORD, defaultString) + 'Assign values to textboxes + oDataBoundObject.objects("txt_tagname").value = tagName + oDataBoundObject.objects("txt_keyword").value = tagKeyword +'gsh_log_e("GSH_GROUPDIGITALINPUTSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALINPUTSHOWOFFNORMAL'''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALINPUTSHOWOFFNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPDIGITALINPUTSHOWOFFNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next + if (oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if +'gsh_log_e("GSH_GROUPDIGITALINPUTSHOWOFFNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALINPUTSHOWBADPV''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALINPUTSHOWBADPV(oDataBoundObject) +'gsh_log_s("GSH_GROUPDIGITALINPUTSHOWBADPV oDataBoundObject=" & oDataBoundObject.id) +on error resume next + 'call GSH_HIDESUBSHAPE(oDataBoundObject.objects("alp_AnalogValue")) + 'oDataBoundObject.objects("txt_PVvalue").value = "---" + 'call GSH_SHOWSUBSHAPE(oDataBoundObject.objects("shp_BadPVText")) + oDataBoundObject.objects("txt_DigitalValue").value = GSH_BADPV_TEXT +'gsh_log_e("GSH_GROUPDIGITALINPUTSHOWBADPV") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALINPUTSHOWSUPPRESSEDALARM''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALINPUTSHOWSUPPRESSEDALARM(oDataBoundObject) +'gsh_log_s("GSH_GROUPDIGITALINPUTSHOWSUPPRESSEDALARM oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPDIGITALINPUTDISABLEDALARM +'gsh_log_e("GSH_GROUPDIGITALINPUTSHOWSUPPRESSEDALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALINPUTSETFOCUS''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALINPUTSETFOCUS(oDataBoundObject) +'gsh_log_s("GSH_GROUPDIGITALINPUTSETFOCUS oDataBoundObject=" & oDataBoundObject.id) +on error resume next + call GSH_SETSHAPEFOCUS(oDataBoundObject) + if (not(oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must change outline fill to transparent + oDataBoundObject.objects("outline").fillstyle = GSH_FILLTRANSPARENT + end if +'gsh_log_e("GSH_GROUPDIGITALINPUTSETFOCUS") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALINPUTSETVALVECSSSTYLE'''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALINPUTSETVALVECSSSTYLE(oShape,style) +'gsh_log_s("GSH_GROUPDIGITALINPUTSETVALVECSSSTYLE oShape=" & oShape.id&",style="&style) +on error resume next + 'gsh_log("GSH_GROUPDIGITALINPUTSETVALVECSSSTYLE CHECKPOINT") + oShape.objects("outline").styleClass = style +'gsh_log_e("GSH_GROUPDIGITALINPUTSETVALVECSSSTYLE") +end sub + +'GSH_GROUPDIGITALINPUTSETVALVESTATE''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALINPUTSETVALVESTATE(oShape,currentState) +'gsh_log_s("GSH_GROUPDIGITALINPUTSETVALVESTATE oShape=" & oShape.id & "currentState=" & currentState) +on error resume next +Dim sTagName + + Dim sStateTxt0, sStateTxt1,sStateTxt2, sStateStyle0, sStateStyle1, sStateStyle2 + sTagName = GSH_GETSHAPETAG(oShape) + sStateTxt0 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"StateTxt(0)","") + sStateTxt1 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"StateTxt(1)","") + sStateTxt2 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"StateTxt(2)","") + sStateStyle0 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"STATESTYLE(0)","") + sStateStyle1 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"STATESTYLE(1)","") + sStateStyle2 = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"STATESTYLE(2)","") + 'gsh_log("GSH_GROUPDIGITALINPUTSETVALVESTATE checkpoint1 sStateTxt0 = "&sStateTxt0&",sStateTxt1 = "&sStateTxt1&",sStateTxt2 = "&sStateTxt2&",currentState = "¤tState) + + If currentState = sStateTxt0 Then + call GSH_GROUPDIGITALINPUTSETVALVECSSSTYLE(oShape,sStateStyle0) + Else If currentState = sStateTxt1 Then + call GSH_GROUPDIGITALINPUTSETVALVECSSSTYLE(oShape,sStateStyle1) + Else If currentState = sStateTxt2 Then + call GSH_GROUPDIGITALINPUTSETVALVECSSSTYLE(oShape,sStateStyle2) + Else + call GSH_GROUPDIGITALINPUTSETVALVECSSSTYLE(oShape,GSH_CSSGROUPDIGITALINPUTDEFAULT) + End If + End If + End If +'gsh_log_e("GSH_GROUPDIGITALINPUTSETVALVESTATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Group Orsel Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPORSEL_SCADA_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = shape +'06/08/07 Removing offnormal check from all Scada analog shapes AL(284) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSEL_SCADA_ONUPDATE(oShape, flag) + +on error resume next + + If flag = 0 then + GSH_GROUPORSELSHOWNORMAL(oShape) + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + call GSH_GROUPORSELSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If + End If + + + If flag <= 1 then + 'Set the focus + call GSH_GROUPORSELSETFOCUS(oShape) + + End If + + If flag = 0 then + '06/08/07 Removing offnormal check from all Scada analog shapes AL(284) + 'Display OP Value + oShape.objects("txt_OPValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP)) + + 'Display Mode Data + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + + End If + 'Set Outline fill color White + oShape.objects("outline").styleClass = GSH_CSSWHITE +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPORSELSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSELSHOWNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPORSELSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim shapePoint, tagKeyword, tagName + 'Read Values from Registry + shapePoint = GSH_GETSHAPETAG(oDataBoundObject) + tagName = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGNAME_ALIAS, shapePoint) + tagKeyword = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_KEYWORD, defaultString) + 'Assign values to textboxes + oDataBoundObject.objects("txt_tagname").value = tagName + oDataBoundObject.objects("txt_keyword").value = tagKeyword + 'Disable Alarms + call GSH_SHOWNOALARM(oDataBoundObject) + 'Show values + oDataBoundObject.objects("outline").style.visibility = GSH_VISIBLE + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPORSELNORMAL + oDataBoundObject.objects("txt_statusmessage").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("plg_OpLow").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("plg_OpHigh").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_Initialization").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_GROUPORSELSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPORSEL_ISPOINTOFFNORMAL removed Apr 13, 2007'''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPORSELSHOWOFFNORMAL'''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSELSHOWOFFNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPORSELSHOWOFFNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next + if (oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if +'gsh_log_e("GSH_GROUPORSELSHOWOFFNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPORSELSHOWSUPPRESSEDALARM''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSELSHOWSUPPRESSEDALARM(oDataBoundObject) +'gsh_log_s("GSH_GROUPORSELSHOWSUPPRESSEDALARM oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPORSELDISABLEDALARM +'gsh_log_e("GSH_GROUPORSELSHOWSUPPRESSEDALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPORSELSETFOCUS''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSELSETFOCUS(oDataBoundObject) +'gsh_log_s("GSH_GROUPORSELSETFOCUS oDataBoundObject=" & oDataBoundObject.id) +on error resume next + call GSH_SETSHAPEFOCUS(oDataBoundObject) + if (not(oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must change outline fill to transparent + oDataBoundObject.objects("outline").fillstyle = GSH_FILLTRANSPARENT + end if +'gsh_log_e("GSH_GROUPORSELSETFOCUS") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPORSELSHOWINITIALIZATION''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSELSHOWINITIALIZATION(oDataBoundObject) +'gsh_log_s("GSH_GROUPORSELSHOWINITIALIZATION oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("txt_Initialization").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPORSELSHOWINITIALIZATION") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPORSELSHOWWINDUP_LOW''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSELSHOWWINDUP_LOW(oDataBoundObject) +'gsh_log_s("GSH_GROUPORSELSHOWWINDUP_LOW oDataBoundObject=" & oDataBoundObject.id) +on error resume next + 'show + 'call GSH_GROUPORSELSHOWNORMAL(oDataBoundObject) + oDataBoundObject.objects("plg_OpLow").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPORSELSHOWWINDUP_LOW") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPORSELSHOWWINDUP_HIGH'''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSELSHOWWINDUP_HIGH(oDataBoundObject) +'gsh_log_s("GSH_GROUPORSELSHOWWINDUP_HIGH oDataBoundObject=" & oDataBoundObject.id) +on error resume next + 'show + 'call GSH_GROUPORSELSHOWNORMAL(oDataBoundObject) + oDataBoundObject.objects("plg_OpHigh").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPORSELSHOWWINDUP_HIGH") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPORSELSETSTATUS'''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSELSETSTATUS(oDataBoundObject, sValue) +'gsh_log_s("GSH_GROUPORSELSETSTATUS oDataBoundObject=" & oDataBoundObject.id & " value=" & sValue) +on error resume next + oDataBoundObject.objects("txt_status").value = sValue + oDataBoundObject.objects("txt_status").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPORSELSETSTATUS") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPORSELHIDEMODEENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSELHIDEMODEENTRY(oShape) +'gsh_log_s("GSH_GROUPORSELHIDEMODEENTRY oShape=" & oShape.id) + window.clearInterval(GSH_GroupTimerId) + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + oShape.objects("txt_ModeValue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPORSELHIDEMODEENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPORSELSHOWMODEENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSELSHOWMODEENTRY(oShape) +'gsh_log_s("GSH_GROUPORSELSHOWMODEENTRY oShape=" & oShape.id) + oShape.objects("cmb_ModeValue").style.visibility = GSH_VISIBLE + oShape.objects("txt_ModeValue").style.visibility = GSH_HIDDEN + window.clearInterval(GSH_GroupTimerId) + GSH_GroupTimerId = window.setInterval("GSH_GROUPORSELHIDEMODEENTRY(" & oShape.id & ")", GSH_GroupTimeout * 1000) +'gsh_log_e("GSH_GROUPORSELSHOWMODEENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPORSELHIDEMODEENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSELHIDEOPENTRY(oShape) +'gsh_log_s("GSH_GROUPORSELHIDEOPENTRY oShape=" & oShape.id) + window.clearInterval(GSH_GroupTimerId) + oShape.objects("alp_OPValue").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_GROUPORSELHIDEOPENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPORSELSHOWOPENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPORSELSHOWOPENTRY(oShape) +'gsh_log_s("GSH_GROUPORSELSHOWOPENTRY oShape=" & oShape.id) + oShape.objects("alp_OPValue").style.visibility = GSH_VISIBLE + window.clearInterval(GSH_GroupTimerId) + GSH_GroupTimerId = window.setInterval("GSH_GROUPORSELHIDEOPENTRY(" & oShape.id & ")", GSH_GroupTimeout * 1000) +'gsh_log_e("GSH_GROUPORSELSHOWOPENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Group Regulatory Control Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROL_SCADA_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 09/14/07 hide OP combobox when the shape is not in principle focus to solve problem +' that the combox or alp entry was open, +' but no entry made, then other tag is selected as focus tag. (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROL_SCADA_ONUPDATE(oShape, flag) + +on error resume next + + If flag = 0 then + GSH_GROUPREGULATORYCONTROLSHOWNORMAL(oShape) + + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + 'Alarm is Disabled + call GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + 'call GSH_GROUPREGULATORYCONTROLSETFOCUS(oShape) + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in principle focus + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_SPValue").style.visibility = GSH_HIDDEN + oShape.objects("alp_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if (GSH_REGCTL_SCADA_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_CPPARAM_PV)) then + call GSH_GROUPREGULATORYCONTROLSHOWOFFNORMAL(oShape) + 'gsh_log_e("GSH_GROUPREGULATORYCONTROL_SCADA_ONUPDATE SHAPE IS OFF NORMAL") + end if + end if + End If + + + If flag = 0 then + 'PV Bad Data Check + If GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true, false, false) Then + call GSH_GROUPREGULATORYCONTROLSHOWBADPV(oShape) + else + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + End If + 'oShape.objects("txt_OPValue").value = FormatNumber(oShape.objects("alp_OPValue").value,GSH_OUTPUTINDICATORDECIMALS,-2,0,0) + 'oShape.objects("txt_SPValue").value = GSH_FormatPVText(oShape,oShape.objects("alp_SPValue").value) + 'oShape.objects("txt_ModeValue").value = oShape.objects("cmb_ModeValue").value + oShape.objects("txt_OPValue").value = FormatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS,-2,0,0) + oShape.objects("txt_SPValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SP)) + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + End If +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Group Regulatory Control Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROL_SCADA_SM_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROL_SCADA_SM_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_GROUPREGULATORYCONTROL_SCADA_SM_ONUPDATE oShape = " &oShape.id) +on error resume next + call GSH_GROUPREGULATORYCONTROL_SCADA_ONUPDATE(oShape, flag) + + dim val_stsMsg, tagName, stsMsgType, numOfMessage + val_stsMsg = cInt(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG)) + + if (val_stsMsg > 0) then + 'Get custom status messages from registry + tagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + stsMsgType = GSH_READTAGINFORMATIONKEYVALUE(tagName, GSH_REGKEY_STSMSGLIST, "") + numOfMessage = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & "NoOfMessages", "0") + if val_stsMsg >0 and val_stsMsg <=numOfMessage then + message = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & GSH_REGKEY_STATUSMESSAGE &val_stsMsg, "") + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,message) + end if + end if +'gsh_log_e("GSH_GROUPREGULATORYCONTROL_SCADA_SM_ONUPDATE") +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPAO_SCADA_SM_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPAO_SCADA_SM_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_GROUPAO_SCADA_SM_ONUPDATE oShape = " &oShape.id) +on error resume next + call GSH_GROUPAO_SCADA_ONUPDATE(oShape, flag) + dim val_stsMsg, tagName, stsMsgType, numOfMessage + val_stsMsg = cInt(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG)) + if (val_stsMsg > 0) then + 'Get custom status messages from registry + tagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + stsMsgType = GSH_READTAGINFORMATIONKEYVALUE(tagName, GSH_REGKEY_STSMSGLIST, "") + numOfMessage = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & "NoOfMessages", "0") + if val_stsMsg >0 and val_stsMsg <=numOfMessage then + message = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & GSH_REGKEY_STATUSMESSAGE &val_stsMsg, "") + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,message) + end if + end if +'gsh_log_e("GSH_GROUPAO_SCADA_SM_ONUPDATE") +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALCOMPOSITE_SCADA_SM_ONUPDATE'''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITE_SCADA_SM_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITE_SCADA_SM_ONUPDATE oShape = " &oShape.id) +on error resume next + call GSH_GROUPDIGITALCOMPOSITE_SCADA_ONUPDATE(oShape, flag) + dim val_stsMsg, tagName, stsMsgType, numOfMessage + val_stsMsg = cInt(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG)) + if (val_stsMsg > 0) then + 'Get custom status messages from registry + tagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + stsMsgType = GSH_READTAGINFORMATIONKEYVALUE(tagName, GSH_REGKEY_STSMSGLIST, "") + numOfMessage = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & "NoOfMessages", "0") + if val_stsMsg >0 and val_stsMsg <=numOfMessage then + message = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & GSH_REGKEY_STATUSMESSAGE &val_stsMsg, "") + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,message) + end if + end if +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITE_SCADA_SM_ONUPDATE") +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALCOMPOSITE_SCADA_SM_P6A_ONUPDATE'''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITE_SCADA_SM_P6A_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITE_SCADA_SM_P6A_ONUPDATE oShape = " &oShape.id) +on error resume next + call GSH_GROUPDIGITALCOMPOSITE_SCADA_P6A_ONUPDATE(oShape, flag) + dim val_stsMsg, tagName, stsMsgType, numOfMessage + val_stsMsg = cInt(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG)) + if (val_stsMsg > 0) then + 'Get custom status messages from registry + tagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + stsMsgType = GSH_READTAGINFORMATIONKEYVALUE(tagName, GSH_REGKEY_STSMSGLIST, "") + numOfMessage = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & "NoOfMessages", "0") + if val_stsMsg >0 and val_stsMsg <=numOfMessage then + message = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & GSH_REGKEY_STATUSMESSAGE &val_stsMsg, "") + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,message) + end if + end if +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITE_SCADA_SM_P6A_ONUPDATE") +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDO_SCADA_SM_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDO_SCADA_SM_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_GROUPDO_SCADA_SM_ONUPDATE oShape = " &oShape.id) +on error resume next + call GSH_GROUPDO_SCADA_ONUPDATE(oShape, flag) + dim val_stsMsg, tagName, stsMsgType, numOfMessage + val_stsMsg = cInt(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG)) + if (val_stsMsg > 0) then + 'Get custom status messages from registry + tagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + stsMsgType = GSH_READTAGINFORMATIONKEYVALUE(tagName, GSH_REGKEY_STSMSGLIST, "") + numOfMessage = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & "NoOfMessages", "0") + if val_stsMsg >0 and val_stsMsg <=numOfMessage then + message = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & GSH_REGKEY_STATUSMESSAGE &val_stsMsg, "") + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,message) + end if + end if +'gsh_log_e("GSH_GROUPDO_SCADA_SM_ONUPDATE") +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROLSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: ' oDataBoundObject = subshape name or me, if calling within subshape +'Used in ALL MULITFP Reg Ctl based! +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOWNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim shapePoint, tagKeyword, tagName + shapePoint = GSH_GETSHAPETAG(oDataBoundObject) + tagName = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGNAME_ALIAS, shapePoint) + tagKeyword = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_KEYWORD, defaultString) + 'Assign values to textboxes + oDataBoundObject.objects("txt_tagname").value = tagName + oDataBoundObject.objects("txt_keyword").value = tagKeyword + 'Disable Alarms + call GSH_SHOWNOALARM(oDataBoundObject) + 'Show values + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPREGULATORYCONTROLNORMAL + oDataBoundObject.objects("outline").style.visibility = GSH_VISIBLE +' oDataBoundObject.objects("txt_ModeValue").style.visibility = GSH_VISIBLE +' oDataBoundObject.objects("txt_OPValue").style.visibility = GSH_VISIBLE +' oDataBoundObject.objects("txt_SPValue").style.visibility = GSH_VISIBLE +' oDataBoundObject.objects("txt_AnalogValue").style.visibility = GSH_VISIBLE + 'Hide Bad Value +' oDataBoundObject.objects("alp_OPValue").style.visibility = GSH_HIDDEN +' oDataBoundObject.objects("alp_SPValue").style.visibility = GSH_HIDDEN +' oDataBoundObject.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_statusmessage").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("plg_OpLow").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("plg_OpHigh").style.visibility = GSH_HIDDEN +' oDataBoundObject.objects("txt_Intialization").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_Initialization").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_ramp").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROLSHOWOFFNORMAL'''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOWOFFNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOWOFFNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next + if (oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOWOFFNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROLSHOWBADPV''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOWBADPV(oDataBoundObject) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOWBADPV oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("txt_AnalogValue").value = GSH_BADPV_TEXT + oDataBoundObject.objects("txt_AnalogValue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOWBADPV") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROLSHOWBADSPHIGH''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOWBADSPHIGH(oDataBoundObject) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOWBADPV oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("txt_SPHighValue").value = GSH_BADPV_TEXT + oDataBoundObject.objects("txt_SPHighValue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOWBADPV") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROLSHOWBADSPLOW''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOWBADSPLOW(oDataBoundObject) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOWBADPV oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("txt_SPLowValue").value = GSH_BADPV_TEXT + oDataBoundObject.objects("txt_SPLowValue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOWBADPV") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM(oDataBoundObject) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPREGULATORYCONTROLDISABLEDALARM +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GEN_SETSHAPEFOCUS(oShape) replaces GSH_GROUPREGULATORYCONTROLSETFOCUS + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROLSHOWINITIALIZATION''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOWINITIALIZATION(oDataBoundObject) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOWINITIALIZATION oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("txt_Intialization").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOWINITIALIZATION") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROLSHOWWINDUP_LOW''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOWWINDUP_LOW(oDataBoundObject) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOWWINDUP_LOW oDataBoundObject=" & oDataBoundObject.id) +on error resume next + 'show + 'call GSH_GROUPREGULATORYCONTROLSHOWNORMAL(oDataBoundObject) + oDataBoundObject.objects("plg_OpLow").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOWWINDUP_LOW") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROLSHOWWINDUP_HIGH'''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOWWINDUP_HIGH(oDataBoundObject) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOWWINDUP_HIGH oDataBoundObject=" & oDataBoundObject.id) +on error resume next + 'show + 'call GSH_GROUPREGULATORYCONTROLSHOWNORMAL(oDataBoundObject) + oDataBoundObject.objects("plg_OpHigh").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOWWINDUP_HIGH") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROLSETSTATUS'''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSETSTATUS(oDataBoundObject, sValue) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSETSTATUS oDataBoundObject=" & oDataBoundObject.id & " value=" & sValue) +on error resume next + oDataBoundObject.objects("txt_status").value = sValue + oDataBoundObject.objects("txt_status").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSETSTATUS") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPREGULATORYCONTROLSHOW_RAMP'''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' txtValue = text to be shown in RAMP shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOW_RAMP(oDataBoundObject,txtValue) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOW_RAMP oDataBoundObject=" & oDataBoundObject.id & ",txtValue =" &txtValue ) +on error resume next + oDataBoundObject.objects("txt_ramp").value = txtValue + oDataBoundObject.objects("txt_ramp").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOW_RAMP") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPREGULATORYCONTROLHIDEMODEENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLHIDEMODEENTRY(oShape) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLHIDEMODEENTRY oShape=" & oShape.id) + window.clearInterval(GSH_GroupTimerId) + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + oShape.objects("txt_ModeValue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_GROUPREGULATORYCONTROLHIDEMODEENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPREGULATORYCONTROLSHOWMODEENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOWMODEENTRY(oShape) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOWMODEENTRY oShape=" & oShape.id) + oShape.objects("cmb_ModeValue").style.visibility = GSH_VISIBLE + oShape.objects("txt_ModeValue").style.visibility = GSH_HIDDEN + window.clearInterval(GSH_GroupTimerId) + GSH_GroupTimerId = window.setInterval("GSH_GROUPREGULATORYCONTROLHIDEMODEENTRY(" & oShape.id & ")", GSH_GroupTimeout * 1000) +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOWMODEENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPREGULATORYCONTROLHIDEOPENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLHIDEOPENTRY(oShape) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLHIDEOPENTRY oShape=" & oShape.id) + window.clearInterval(GSH_GroupTimerId) + oShape.objects("alp_OPValue").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_GROUPREGULATORYCONTROLHIDEOPENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPREGULATORYCONTROLSHOWOPENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOWOPENTRY(oShape) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOWOPENTRY oShape=" & oShape.id) + oShape.objects("alp_OPValue").style.visibility = GSH_VISIBLE + window.clearInterval(GSH_GroupTimerId) + GSH_GroupTimerId = window.setInterval("GSH_GROUPREGULATORYCONTROLHIDEOPENTRY(" & oShape.id & ")", GSH_GroupTimeout * 1000) +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOWOPENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPREGULATORYCONTROLHIDESPENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLHIDESPENTRY(oShape) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLHIDESPENTRY oShape=" & oShape.id) + window.clearInterval(GSH_GroupTimerId) + oShape.objects("alp_SPValue").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_GROUPREGULATORYCONTROLHIDESPENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GROUPREGULATORYCONTROLSHOWSPENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPREGULATORYCONTROLSHOWSPENTRY(oShape) +'gsh_log_s("GSH_GROUPREGULATORYCONTROLSHOWSPENTRY oShape=" & oShape.id) + oShape.objects("alp_SPValue").style.visibility = GSH_VISIBLE + window.clearInterval(GSH_GroupTimerId) + GSH_GroupTimerId = window.setInterval("GSH_GROUPREGULATORYCONTROLHIDESPENTRY(" & oShape.id & ")", GSH_GroupTimeout * 1000) +'gsh_log_e("GSH_GROUPREGULATORYCONTROLSHOWSPENTRY") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Group SCADA AO Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPAO_SCADA_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 09/14/07 hide OP combobox when the shape is not in principle focus to solve problem +' that the combox or alp entry was open, +' but no entry made, then other tag is selected as focus tag. (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPAO_SCADA_ONUPDATE(oShape, flag) +on error resume next + + If flag = 0 then + GSH_GROUPAOSHOWNORMAL(oShape) + End If + + If flag <= 1 then + 'Set the focus + 'call GSH_GROUPREGULATORYCONTROLSETFOCUS(oShape) + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in principle focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if (GSH_SCADA_POINT_MODE_ISOFFNORMAL(oShape.objects("rec_DataScript"))) then + call GSH_GROUPREGULATORYCONTROLSHOWOFFNORMAL(oShape) + end if + end if + End If + + + If flag = 0 then + + oShape.objects("txt_OPValue").value = FormatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS,-2,0,0) + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPAOSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPAOSHOWNORMAL(oDataBoundObject) +'gsh_log_s("GGSH_GROUPAOSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim shapePoint, tagKeyword, tagName + shapePoint = GSH_GETSHAPETAG(oDataBoundObject) + tagName = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGNAME_ALIAS, shapePoint) + tagKeyword = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_KEYWORD, defaultString) + 'Assign values to textboxes + oDataBoundObject.objects("txt_tagname").value = tagName + oDataBoundObject.objects("txt_keyword").value = tagKeyword + 'Disable Alarms + 'call GSH_SHOWNOALARM(oDataBoundObject) + 'Show values + oDataBoundObject.objects("txt_ModeValue").style.visibility = GSH_VISIBLE + oDataBoundObject.objects("txt_OPValue").style.visibility = GSH_VISIBLE + 'Hide Bad Value +'gsh_log_e("GSH_GROUPAOSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'DIGITALOUTPUTINDICATOR Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITALOUTPUTINDICATORSETFOCUS''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DIGITALOUTPUTINDICATORSETFOCUS(oDataBoundObject) +'gsh_log_s("GSH_DIGITALOUTPUTINDICATORSETFOCUS oDataBoundObject=" & oDataBoundObject.id) +on error resume next + call GSH_SETSHAPEFOCUS(oDataBoundObject) + if (not(oDataBoundObject.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must change outline fill to transparent + oDataBoundObject.objects("outline").fillstyle = GSH_FILLTRANSPARENT + end if +'gsh_log_e("GSH_DIGITALOUTPUTINDICATORSETFOCUS") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITALOUTPUTINDICATORSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DIGITALOUTPUTINDICATORSHOWNORMAL(oShape) +'gsh_log_s("GSH_DIGITALOUTPUTINDICATORSHOWNORMAL oShape=" & oShape.id) +on error resume next + call GSH_SHOWNOALARM(oShape) + oShape.objects("shp_focus").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_DIGITALOUTPUTINDICATORSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITALOUTPUTINDICATOR_SCADA_ONUPDATE''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'06/09/07 Check for Off Normal is not needed per RM +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DIGITALOUTPUTINDICATOR_SCADA_ONUPDATE (oShape, flag) +on error resume next +Dim sOPStateTxt +If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) +End If + +If flag <=1 then + 'Set the focus + 'call GSH_DIGITALOUTPUTINDICATORSETFOCUS(oShape) + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal is not needed per RM 06/09/07 + sOPStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_OP, oShape.objects("rec_DataScript")) + oShape.objects("txt_OPvalue").value = sOPStateTxt +End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'NUMERICINDICATOR Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_NUMERICINDICATORSETFOCUS replaced by GSH_GEN_SETSHAPEFOCUS 06/12/07 + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_NUMERICINDICATOR_SCADA_ONUPDATE replaced by GSH_SCADA_NUMERICINDICATOR_ONUPDATE May 4,2007 +'Parameters: oShape = shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 06/12/07 GSH_GEN_SETSHAPEFOCUS replaced GSH_NUMERICINDICATORSETFOCUS +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_NUMERICINDICATOR_ONUPDATE (oShape, flag) +on error resume next + + If flag = 0 then + oShape.objects("outline").styleClass = GSH_CSSNUMERICINDICATORNORMAL + End If + If flag <=1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) + End If + If flag = 0 then + 'Bad Data Check removed at request of Rich + oShape.objects("txt_PVvalue").value = GSH_FormatPVText(oShape,oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV)) + End If +End sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FormatPVText: Round value to appropriate number of decimal places for point +'Parameters: +' oShape: calling shape +' txtIn: value to be rounded +'Returns: +' Round value (text) +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_FormatPVText(oShape,txtIn) + Dim tempReturn, numOfDecimals +' july 8, 2008 - added extra bad value check - je +' If StrComp(txtIn,"1.#QNAN")= 0 then + If (StrComp(txtIn,"1.#QNAN")= 0) or (StrComp(txtIn,"---")= 0) then + tempReturn = GSH_BADPV_TEXT + else + 'gsh_log_s("GSH_FormatPVText oShape=" & oShape.id & ", txtIn=" & txtIn) + numOfDecimals = CInt(Right(GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1)) + tempReturn = FormatNumber(txtIn, numOfDecimals,-2, 0, 0) + 'gsh_log_e("GSH_FormatPVText returning: " & tempReturn) + End If + gsh_FormatPVText = tempReturn +end function + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FormatPVTextTag: Round value to appropriate number of decimal places for point +'Parameters: +' oShape: calling shape +' txtIn: value to be rounded +'Returns: +' Round value (text) +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_FormatPVTextTag(tagName,txtIn) +'gsh_log_s("GSH_FormatPVTextTag tagName=" & tagName & ", txtIn=" & txtIn) +Dim tempReturn +tempReturn = FormatNumber(txtIn,Right(GSH_READTAGINFORMATIONKEYVALUE(tagName, GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1),-2, 0, 0) +gsh_FormatPVTextTag = tempReturn +'gsh_log_e("GSH_FormatPVTextTag returning: " & tempReturn) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_ShapeMouseDown: Handler for all shape on mouse down (exception: group shapes & equipment label) +'Parameters: +' oShape: calling shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_ShapeMouseDown(oShape) +'gsh_log_s("GSH_ShapeMouseDown oShape=" & oShape.id) +If window.event.button = 2 Then call GSH_RIGHTCLICK(oShape) else call GSH_SHAPECLICKED(oShape) end if +'gsh_log_e("GSH_ShapeMouseDown") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_EquipLabelMouseDown: Handler for equipment label shape on mouse down +'Parameters: +' oShape: Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_EquipmentLabelMouseDown(oShape) +'gsh_log_s("GSH_EquipmentLabelMouseDown oShape=" & oShape.id) + call GSH_RIGHTCLICKEQUIPMENTNAME(oShape) +'gsh_log_e("GSH_EquipmentLabelMouseDown") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' GSH_OFFPAGECONNECTOR_ONSHAPELOAD Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_OFFPAGECONNECTOR_ONSHAPELOAD'''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_OFFPAGECONNECTOR_ONSHAPELOAD(oShape) +'gsh_log_s("GSH_OFFPAGECONNECTOR_ONSHAPELOAD oShape=" & oShape.id) + if (oShape.GetCustomProperty("Value","AssocLevel2") <> "") or (oShape.GetCustomProperty("Value","AssocLevel3") <> "") or (oShape.GetCustomProperty("Value","AssocLevel4") <> "") then + oShape.objects("plgShadow").style.visibility = GSH_VISIBLE + end if +'gsh_log_e("GSH_OFFPAGECONNECTOR_ONSHAPELOAD") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_OFFPAGECONNECTOR_ONCLICK''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_OFFPAGECONNECTOR_ONCLICK(oShape) +'gsh_log_s("GSH_OFFPAGECONNECTOR_ONCLICK oShape=" & oShape.id) +Dim sOnDispT2,sOnDispT3,sOnDispT4 +Dim sTemp,sDisplayName,sAssocT2Name, sAssocT3Name, sAssocT4Name, sDispLocation + sAssocT2Name = oShape.GetCustomProperty("Value","AssocLevel2") + sAssocT3Name = oShape.GetCustomProperty("Value","AssocLevel3") + sAssocT4Name = oShape.GetCustomProperty("Value","AssocLevel4") + sDispLocation = GSH_ReadDisplayNames("") +if (sAssocT2Name <> "") or (sAssocT3Name <> "") or (sAssocT4Name <> "") then + call GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS(GSH_FALSE) 'Reset all tagname labels to hidden +end if +if strcomp(sAssocT2Name,"",vbtextcompare)<>0 then + sOnDispT2 = Ucase(GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T2FN,"")) + sDisplayName = Ucase(sAssocT2Name) + If strcomp(sAssocT2Name,sOnDispT2,vbtextcompare)<>0 Then + sTemp = GSH_sDispLocation & sDisplayName & ".htm" + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T2FN,sDisplayName) + window.navigate(sTemp) + End If +End if +if strcomp(sAssocT3Name,"",vbtextcompare)<>0 then + sOnDispT3 = Ucase(GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T3FN,"")) + sDisplayName = Ucase(sAssocT3Name) + If strcomp(sAssocT3Name,sOnDispT3,vbtextcompare)<>0 Then + sTemp = sDispLocation & sDisplayName & ".htm" + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T3FN,sDisplayName) + window.navigate(sTemp) + End If +End if +if strcomp(sAssocT4Name,"",vbtextcompare)<>0 then + sOnDispT4 = Ucase(GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_T4FN,"")) + sDisplayName = Ucase(sAssocT4Name) + If strcomp(sAssocT4Name,sOnDispT4,vbtextcompare)<>0 Then + sTemp = sDispLocation & sDisplayName & ".htm" + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T4FN,sDisplayName) + window.navigate(sTemp) + End If +End if +'gsh_log_e("GSH_OFFPAGECONNECTOR_ONCLICK") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_OFFPAGECONNECTOR_L1AS_ONCLICK''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_OFFPAGECONNECTOR_L1AS_ONCLICK(oShape) +'gsh_log_s("GSH_OFFPAGECONNECTOR_L1AS_ONCLICK oShape=" & oShape.id) +Dim sOnDispT1 +Dim sTemp,sDisplayName,sAssocT1Name, sDispLocation + sAssocT1Name = oShape.GetCustomProperty("Value","AssocLevel1") + sDispLocation = GSH_ReadDisplayNames("") +if strcomp(sAssocT1Name,"",vbtextcompare)<>0 then + sDisplayName = Ucase(sAssocT1Name) + sTemp = GSH_sDispLocation & sDisplayName & ".htm" + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE ("Type1ASFileName",sDisplayName) + window.navigate(sTemp) +End If +'gsh_log_e("GSH_OFFPAGECONNECTOR_L1AS_ONCLICK") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' TAGNAMELABEL Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TAGNAMELABEL_ONSHAPELOAD'''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TAGNAMELABEL_ONSHAPELOAD(oShape) +'gsh_log_s("GSH_TAGNAMELABEL_ONSHAPELOAD oShape=" & oShape.id) +on error resume next + oShape.objects("txt_TagName").style.textAlign = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPJUSTIFYLABEL) + + if (strcomp(GSH_TAGNAMELABEL_GET_VISIBILITYSTATUS,GSH_TRUE, vbtextcompare) = 0) then + oShape.objects("txt_TagName").style.visibility = GSH_VISIBLE + else: oShape.objects("txt_TagName").style.visibility = GSH_HIDDEN + end if +'gsh_log_e("GSH_TAGNAMELABEL_ONSHAPELOAD") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TAGNAMELABEL_ONUPDATE'''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TAGNAMELABEL_ONUPDATE(oShape) +'gsh_log_s("GSH_TAGNAMELABEL_ONUPDATE oShape=" & oShape.id) +On Error resume next + dim strTurnOnTagNameLabel + strTurnOnTagNameLabel = GSH_TAGNAMELABEL_GET_VISIBILITYSTATUS + + If ((strComp(strTurnOnTagNameLabel,GSH_TRUE,vbtextcompare))=0) Then + oShape.objects("txt_TagName").style.visibility = GSH_VISIBLE + else + oShape.objects("txt_TagName").style.visibility = GSH_HIDDEN + End If +'gsh_log_e("TAGNAMELABEL_ONUPDATE") + +End Sub + + +' +'GSH_TAGNAMELABEL_GETVISIBILITY() +'look up the registry to get the current visibility +'status of the TAGNAMELABEL shape +' +'04/29/2008: Update for version 1.1.2 to replace the use of StationDataRepository(CL) +function GSH_TAGNAMELABEL_GET_VISIBILITYSTATUS +'gsh_log_s("GSH_TAGNAMELABEL_GET_VISIBILITYSTATUS") +on error resume next + + dim labelIsVisible + + labelIsVisible = GSH_READDISPLAYCOMMUNICATIONKEYVALUE(GSH_REGKEY_TAGNAMELABLESTATUS,GSH_FALSE) + +' gsh_log_e("GSH_TAGNAMELABEL_GET_VISIBILITYSTATUS labelIsVisible = " &labelIsVisible) + GSH_TAGNAMELABEL_GET_VISIBILITYSTATUS = labelIsVisible +end function + +' +'GSH_TAGNAMELABEL_SETVISIBILITY() +'set the visibility status of the TAGNAMELABEL shape +' +'04/29/2008: Update for version 1.1.2 to replace the use of StationDataRepository(CL) +sub GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS(status) +'gsh_log_s("GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS status=" &status) +on error resume next + + if(strComp(status,GSH_TRUE,vbtextcompare)<>0 AND strComp(status,GSH_FALSE,vbtextcompare)<>0) then + gsh_log("ERROR: status = " &status & " is invalid. Please use GSH_TRUE or GSH_FALSE") + else + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_TAGNAMELABLESTATUS,status + end if + + +'gsh_log_e("GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS") +End sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' TAGNAMEALIASLABEL Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TAGNAMEALIASLABEL_ONSHAPELOAD'''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TAGNAMEALIASLABEL_ONSHAPELOAD(oShape) +'gsh_log_s("GSH_TAGNAMEALIASLABEL_ONSHAPELOAD oShape=" & oShape.id) +on error resume next + dim sTagLabel, shapePoint + oShape.objects("txt_TagName").style.textAlign = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPJUSTIFYLABEL) + shapePoint = oShape.GetCustomProperty(GSH_CPVALUE,"TagName") + sTagLabel = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGNAME_ALIAS, shapePoint) + If (strcomp(sTagLabel,shapePoint,vbtextcompare)<>0) then + oShape.objects("txt_TagName").value = sTagLabel + End If + if (strcomp(GSH_TAGNAMELABEL_GET_VISIBILITYSTATUS, GSH_TRUE, vbtextcompare) = 0) then + oShape.objects("txt_TagName").style.visibility = GSH_VISIBLE + else: oShape.objects("txt_TagName").style.visibility = GSH_HIDDEN + end if +'gsh_log_e("GSH_TAGNAMEALIASLABEL_ONSHAPELOAD") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' TAGEUDESCLABEL Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TAGEUDESCLABEL_ONSHAPELOAD'''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TAGEUDESCLABEL_ONSHAPELOAD(oShape) +'gsh_log_s("GSH_TAGEUDESCLABEL_ONSHAPELOAD oShape=" & oShape.id) +on error resume next + dim sTagEULabel, shapePoint + oShape.objects("txt_TagEUDescName").style.textAlign = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPJUSTIFYLABEL) + shapePoint = oShape.GetCustomProperty(GSH_CPVALUE,"TagName") + sTagEULabel = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGEUDESC, shapePoint) + If (strcomp(sTagEULabel,shapePoint,vbtextcompare)<>0) then + oShape.objects("txt_TagEUDESC").value = sTagLabel + End If +'gsh_log_e("GSH_TAGEUDESC_ONSHAPELOAD") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'LevelIndicator Shape Section: Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_LevelIndicator_SCADA_OnUpdate''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'06/08/07 Removing offnormal check from all Scada analog shapes AL(284) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_LevelIndicator_SCADA_OnUpdate(oShape, flag) +'gsh_log_s("GSH_LevelIndicator_SCADA_OnUpdate oShape="&oShape.id) +On Error Resume Next +If flag <= 1 then + 'Initialize Shape + call GSH_LevelIndicatorShowNormal(oShape) + 'Check Alarms + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + 'Alarm is Disabled + call GSH_LevelIndicatorShowDisbledAlarm(oShape) + else + call GSH_SHOWLEVELALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If + call GSH_LevelIndicatorSetFocus(oShape) + '06/08/07 Removing offnormal check from all Scada analog shapes AL(284) +'End If +'If flag = 0 then + 'Check for Bad PV + If GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), GSH_LEVELINDICATORDECIMALS) + End if +End If +'gsh_log_e("GSH_LevelIndicator_SCADA_OnUpdate") +end sub + +'06/04/07 Added else case, if FocusNone +'06/07/07 Removed else case as if was causing problems when status is FocusNone and Alarming +sub GSH_LevelIndicatorSetFocus(oShape) +'gsh_log_s("GSH_LevelIndicatorSetFocus oShape=" & oShape.id) +on error resume next + call GSH_SETSHAPEFOCUS(oShape) + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE +' else +' oShape.objects("outline").style.visibility = GSH_HIDDEN +' oShape.objects("outline").fillstyle = GSH_FILLSOLID +' oShape.objects("txt_PVvalue").style.visibility = GSH_HIDDEN + end if +'gsh_log_e("GSH_LevelIndicatorSetFocus") +end sub + +sub GSH_LevelIndicatorShowNormal(oShape) +'gsh_log_s("GSH_LevelIndicatorShowNormal oShape=" & oShape.id) + oShape.objects("rec_IndicatorFloat").style.visibility = GSH_VISIBLE + oShape.objects("rec_IndicatorRange").style.visibility = GSH_VISIBLE + oShape.objects("txt_BadPVIndicator").style.visibility = GSH_HIDDEN + oShape.objects("txt_PVValue").style.visibility = GSH_HIDDEN + oShape.objects("txt_PVvalue").styleClass = GSH_CSSLEVELINDICATORNORMALPVTEXT + call GSH_LevelIndicatorShowNoAlarm(oShape) 'call GSH_SHOWNOALARM(oShape) + oShape.objects("outline").style.visibility = GSH_HIDDEN + oShape.objects("rec_IndicatorFloat").styleClass = GSH_CSSLEVELINDICATORFLOAT + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLEVELINDICATORNORMAL +'gsh_log_e("GSH_LevelIndicatorShowNormal") +end sub + +sub GSH_LevelIndicatorShowOffNormal(oShape) +'gsh_log_s("GSH_LevelIndicatorShowOffNormal oShape=" & oShape.id) + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("txt_PVValue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_LevelIndicatorShowOffNormal") +end sub + +sub GSH_LevelIndicatorShowHighAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_LevelIndicatorShowHighAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + 'show + call GSH_ShowHighAlarm(oShape,unAcknowledged) + if unAcknowledged then + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMHIGHUNACK + else + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMHIGHACK + end if + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_LevelIndicatorShowHighAlarm") +end sub + +sub GSH_LevelIndicatorShowNoAlarm(oShape) +'gsh_log_s("GSH_LevelIndicatorShowNoAlarm oShape=" & oShape.id) + call GSH_ShowNoAlarm(oShape) + oShape.objects("outline").style.visibility = GSH_HIDDEN + oShape.objects("txt_PVvalue").style.visibility = GSH_HIDDEN + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLEVELINDICATORNORMAL +'gsh_log_e("GSH_LevelIndicatorShowNoAlarm") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_LevelIndicatorShowLowAlarm: Show Low Alarm behavior for shape'''''' +'Parameters: +' oShape = calling shape +' unAcknowledged - true or false , true if you want to show UnAcknowledged Alarm Behavior +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_LevelIndicatorShowLowAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_LevelIndicatorShowLowAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + 'show + call GSH_ShowLowAlarm(oShape,unAcknowledged) + if unAcknowledged then + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMLOWUNACK + else + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMLOWACK + end if + oShape.objects("txt_PVValue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_LevelIndicatorShowLowAlarm") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_LevelIndicatorShowEmergencyAlarm: Show Emerg behavior for Shape ''' +'Parameters: +' oShape = Calling shape +' unAcknowledged - true or false , true if you want to show UnAcknowledged Alarm Behavior +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_LevelIndicatorShowEmergencyAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_LevelIndicatorShowEmergencyAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + 'show + call GSH_ShowEmergencyAlarm(oShape,unAcknowledged) + if unAcknowledged then + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMEMERGENCYUNACK + else + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMEMERGENCYACK + end if + oShape.objects("txt_PVValue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_LevelIndicatorShowEmergencyAlarm") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_LevelIndicatorShowDisbledAlarm: Show shape in disabled alarm state +'Parameters: +' oShape = calling shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_LevelIndicatorShowDisbledAlarm(oShape) +'gsh_log_s("GSH_LevelIndicatorShowDisbledAlarm oShape=" & oShape.id) + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLEVELINDICATORDISABLEDALARM + oShape.objects("outline").styleClass = GSH_CSSLEVELINDICATORDISABLEDALARM +'gsh_log_e("GSH_LevelIndicatorShowDisbledAlarm") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'LevelIndicatorSmallSMALL Shape Section +' Contains all functions specific to the Level Indicator Small shape +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'06/08/07 Removing offnormal check from all Scada analog shapes AL(284) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_LevelIndicatorSmall_SCADA_OnUpdate(oShape, flag) +'gsh_log_s("GSH_LevelIndicatorSmall_SCADA_OnUpdate, oshape=" & oShape.id) +On Error Resume Next + If flag <= 1 then + 'Initialize Shape + call GSH_LevelIndicatorShowNormal(oShape) + 'Check Alarms + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + 'Alarm is Disabled + call GSH_LevelIndicatorShowDisbledAlarm(oShape) + else + 'alarming is enabled, get highest priority and change shape accordingly + Select Case GSH_GETHIGHESTALARMPRIORITY(oShape.objects("rec_DataScript")) + Case GSH_NOALARMCODE + call GSH_LevelIndicatorShowNoAlarm(oShape) + Case GSH_UNACKEMERG + call GSH_LevelIndicatorSmallShowEmergencyAlarm(oShape,True) + Case GSH_UNACKHIGH + call GSH_LevelIndicatorSmallShowHighAlarm(oShape,true) + Case GSH_UNACKLOW + call GSH_LevelIndicatorSmallShowLowAlarm(oShape,true) + Case GSH_ACKEMERG + call GSH_LevelIndicatorSmallShowEmergencyAlarm(oShape,false) + Case GSH_ACKHIGH + call GSH_LevelIndicatorSmallShowHighAlarm(oShape,false) + Case GSH_ACKLOW + call GSH_LevelIndicatorSmallShowLowAlarm(oShape,false) + Case Else + call GSH_LevelIndicatorShowNoAlarm(oShape) + End Select + End If + call GSH_LEVELINDICATORSETFOCUS(oShape) + '06/08/07 Removing offnormal check from all Scada analog shapes AL(284) +'End If + +'If flag = 0 then + 'Check for Bad PV + If GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), GSH_LEVELINDICATORDECIMALS) + End If +End If +'gsh_log_e("GSH_LevelIndicatorSmall_SCADA_OnUpdate") +end sub + +sub GSH_LevelIndicatorSmallShowHighAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_LevelIndicatorSmallShowHighAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + call GSH_LevelIndicatorShowHighAlarm(oShape,unAcknowledged) + 'Make Alarm outline width smaller + oShape.objects("outline").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH +'gsh_log_e("GSH_LevelIndicatorSmallShowHighAlarm") +end sub + +sub GSH_LevelIndicatorSmallShowLowAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_LevelIndicatorSmallShowLowAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + call GSH_LevelIndicatorShowLowAlarm(oShape,unAcknowledged) + 'Make Alarm outline width smaller + oShape.objects("outline").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH +'gsh_log_e("GSH_LevelIndicatorSmallShowLowAlarm") +end sub + +sub GSH_LevelIndicatorSmallShowEmergencyAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_LevelIndicatorSmallShowEmergencyAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + call GSH_LevelIndicatorShowEmergencyAlarm(oShape,unAcknowledged) + 'Make Alarm outline width smaller + oShape.objects("outline").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH +'gsh_log_e("GSH_LevelIndicatorSmallShowEmergencyAlarm") +end sub + +sub GSH_LevelIndicatorSmallShowDisbledAlarm(oShape) +'gsh_log_s("GSH_LevelIndicatorSmallShowDisbledAlarm oShape=" & oShape.id ) + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLEVELINDICATORDISABLEDALARM + oShape.objects("outline").styleClass = GSH_CSSLEVELINDICATORDISABLEDALARM +'gsh_log_e("GSH_LevelIndicatorSmallShowDisbledAlarm") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'LEVEL INDICATOR REGULATORY CONTROL Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_LevelIndicatorRegulatoryControl_SCADA_OnUpdate(oShape, flag) +'gsh_log_s("GSH_LevelIndicatorRegulatoryControl_SCADA_OnUpdate oShape="&oShape.id) +On Error Resume Next + + If flag <= 1 then + call GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_datascript")) Then + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + else + call GSH_SHOWLEVELALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If + 'End If + + + 'If flag <= 1 then + 'Check Focus + call GSH_LevelIndicatorRegulatoryControlSetFocus(oShape) + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if (GSH_REGCTL_SCADA_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_CPPARAM_PV)) then + call GSH_LevelIndicatorRegulatoryControlShowOffNormal(oShape) + end if + end if + + 'End If + + + 'If flag = 0 then + 'Check for bad value + If GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + call GSH_LevelIndicatorShowSPFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), GSH_LEVELINDICATORDECIMALS) + End If + End If +'gsh_log_e("GSH_LevelIndicatorRegulatoryControl_SCADA_OnUpdate") +end sub + +' 06/04/07 Changed to sub and added else case for when focus is none. +' 06/05/07 Changed back because it affected the alarm display without focus. +sub GSH_LevelIndicatorRegulatoryControlSetFocus(oShape) +'gsh_log_s("GSH_LevelIndicatorRegulatoryControlSetFocus oShape=" & oShape.id) +on error resume next + call GSH_SETSHAPEFOCUS(oShape) + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show analog value and outline + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE + oShape.objects("outline").style.visibility = GSH_VISIBLE + end if +'gsh_log_e("GSH_LevelIndicatorRegulatoryControlSetFocus") +end sub + +sub GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) +'gsh_log_s("GSH_LevelIndicatorRegulatoryControlShowNormal oShape=" & oShape.id) + call GSH_LevelIndicatorShowNoAlarm(oShape) + oShape.objects("txt_PVvalue").style.visibility = GSH_HIDDEN + oShape.objects("txt_PVvalue").styleClass = GSH_CSSLEVELINDICATORNORMALPVTEXT + oShape.objects("txt_BadPVIndicator").style.visibility = GSH_HIDDEN + oShape.objects("outline").styleClass = GSH_CSSLEVELINDICATORNORMAL'GSH_CSSLEVELINDICATORREGULATORYCONTROLNORMAL + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLEVELINDICATORNORMAL'GSH_CSSLEVELINDICATORREGULATORYCONTROLNORMAL + oShape.objects("rec_IndicatorFloat").style.visibility = GSH_VISIBLE + oShape.objects("rec_IndicatorFloat").styleClass = GSH_CSSLEVELINDICATORFLOAT'GSH_CSSLEVELINDICATORREGULATORYCONTROLNORMAL + oShape.objects("plg_OpLow").style.visibility = GSH_HIDDEN + oShape.objects("plg_OpHigh").style.visibility = GSH_HIDDEN + oShape.objects("txt_initialization").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_LevelIndicatorRegulatoryControlShowNormal") +end sub + +sub GSH_LevelIndicatorRegulatoryControlShowNoAlarm(oShape) +'gsh_log_s("GSH_LevelIndicatorRegulatoryControlShowNoAlarm oShape=" & oShape.id) + call GSH_ShowNoAlarm(oShape) + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLEVELINDICATORNORMAL + oShape.objects("outline").style.visibility = GSH_HIDDEN + oShape.objects("txt_PVvalue").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_LevelIndicatorRegulatoryControlShowNoAlarm") +end sub + +sub GSH_LevelIndicatorRegulatoryControlShowOffNormal(oShape) +'gsh_log_s("GSH_LevelIndicatorRegulatoryControlShowOffNormal oShape=" & oShape.id) +on error resume next + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT +'gsh_log_e("GSH_LevelIndicatorRegulatoryControlShowOffNormal") +end sub + +sub GSH_LevelIndicatorRegulatoryControlShowHighAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_LevelIndicatorRegulatoryControlShowHighAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + call GSH_ShowHighAlarm(oShape,unAcknowledged) + if unAcknowledged then + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMHIGHUNACK + else + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMHIGHACK + end if + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_LevelIndicatorRegulatoryControlShowHighAlarm") +end sub + +sub GSH_LevelIndicatorRegulatoryControlShowLowAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_LevelIndicatorRegulatoryControlShowLowAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + call GSH_ShowLowAlarm(oShape,unAcknowledged) + if unAcknowledged then + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMLOWUNACK + else + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMLOWACK + end if + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_LevelIndicatorRegulatoryControlShowLowAlarm") +end sub + +sub GSH_LevelIndicatorRegulatoryControlShowEmergencyAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_LevelIndicatorRegulatoryControlShowEmergencyAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + call GSH_ShowEmergencyAlarm(oShape,unAcknowledged) + if unAcknowledged then + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMEMERGENCYUNACK + else + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMEMERGENCYACK + end if + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_LevelIndicatorRegulatoryControlShowEmergencyAlarm") +end sub + +sub GSH_LevelIndicatorShowPVFloat(oShape) +'gsh_log_s("GSH_LevelIndicatorShowPVFloat oShape=" & oShape.id) + Dim iNumPixels, iBottom + Dim iRangeHi, iRangeLo, iPV + 'Calculate pv value + iRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + iRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) + iPV = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + iNumPixels = 0 + if (iPV > iRangeHi) then + iNumPixels = oShape.objects("rec_IndicatorRange").style.pixelheight +' iNumPixels = oShape.objects("LinePVRange").style.pixelheight + ElseIf (iPV < iRangeLo) then + iNumPixels = 0 + else + iNumPixels = (oShape.objects("rec_IndicatorRange").style.pixelheight * ((iPV - iRangeLo) / (iRangeHi - iRangeLo))) +' iNumPixels = (oShape.objects("LinePVRange").style.pixelheight * ((iPV - iRangeLo) / (iRangeHi - iRangeLo))) + end if + iBottom = (oShape.objects("rec_IndicatorRange").style.pixelheight + oShape.objects("rec_IndicatorRange").style.pixeltop) + oShape.objects("rec_IndicatorFloat").style.pixeltop = iBottom - iNumPixels - (oShape.objects("rec_IndicatorFloat").style.pixelheight / 2) +' gsh_log(oShape.objects("rec_IndicatorFloat").id & " pixeltop=" & oShape.objects("rec_IndicatorFloat").style.pixeltop) +'gsh_log_e("GSH_LevelIndicatorShowPVFloat") +end sub + +sub GSH_LevelIndicatorShowSPFloat(oShape) +'gsh_log_s("GSH_LevelIndicatorShowSPFloat oShape=" & oShape.id) + oShape.objects("plg_SPIndicator").style.pixeltop = cint(GSH_LEVELINDICATOR_SPFLOATPOSITION (oShape,GSH_CPPARAM_SP)-(oShape.objects("plg_SPIndicator").style.pixelheight / 2)) +'gsh_log_e("GSH_LevelIndicatorShowSPFloat") +end sub + +function GSH_LEVELINDICATOR_SPFLOATPOSITION(oShape, SPParam) +'gsh_log_s("GSH_LEVELINDICATOR_SPFLOATPOSITION oShape=" & oShape.id) + Dim iNumPixels, iBottom + Dim iRangeHi, iRangeLo, iSP + 'Calculate pv value + iRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + iRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) + 'gsh_log("iRangeHi=" & iRangeHi & ", iRangeLo=" & iRangeLo) + iSP = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"), SPParam) + 'gsh_log("SP=" & iSP) + if (iSP > iRangeHi) then + iNumPixels = oShape.objects("rec_IndicatorRange").style.pixelheight + ElseIf (iSP < iRangeLo) then + iNumPixels = 0 + else + iNumPixels = (oShape.objects("rec_IndicatorRange").style.pixelheight * ((iSP - iRangeLo) / (iRangeHi - iRangeLo))) + end if + iBottom = (oShape.objects("rec_IndicatorRange").style.pixelheight + oShape.objects("rec_IndicatorRange").style.pixeltop) + Dim iPosition : iPosition = cint(iBottom - iNumPixels ) + GSH_LEVELINDICATOR_SPFLOATPOSITION = iPosition +'gsh_log_e("GSH_LEVELINDICATOR_SPFLOATPOSITION returns >>>>>>>>>>>>"&iPosition) +end function + +sub GSH_LevelIndicatorShowBadPV(oShape) +'gsh_log_s("GSH_LevelIndicatorShowBadPV oShape=" & oShape.id) + oShape.objects("txt_PVvalue").styleClass = GSH_CSSLEVELINDICATORBADPVTEXT + oShape.objects("txt_PVvalue").value = "---" + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLEVELINDICATORBADPV + oShape.objects("rec_IndicatorFloat").style.visibility = GSH_HIDDEN + oShape.objects("txt_BadPVIndicator").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_LevelIndicatorShowBadPV") +end sub + +sub GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) +'gsh_log_s("GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm oShape=" & oShape.id) + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLEVELINDICATORDISABLEDALARM + oShape.objects("outline").styleClass = GSH_CSSLEVELINDICATORDISABLEDALARM + oShape.objects("outline").style.visibility = GSH_HIDDEN + oShape.objects("txt_PVvalue").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'LEVEL INDICATOR REGULATORY CONTROL_GAPVARIN Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_LevelIndicatorRegulatoryControl_GAPVarIn_SCADA_OnUpdate(oShape, flag) +'gsh_log_s("GSH_LevelIndicatorRegulatoryControl_GAPVarIn_SCADA_OnUpdate oShape="&oShape.id) +On Error Resume Next + + If flag <= 1 then + call GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_datascript")) Then + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + else + call GSH_SHOWLEVELALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If + 'End If + + + 'If flag <= 1 then + 'Check Focus + call GSH_LevelIndicatorRegulatoryControlSetFocus(oShape) + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if (GSH_REGCTL_SCADA_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_CPPARAM_PV)) then + call GSH_LevelIndicatorRegulatoryControlShowOffNormal(oShape) + end if + end if + + 'End If + + + 'If flag = 0 then + 'Check for bad value + If GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) +' call GSH_LevelIndicatorShowSPFloat(oShape) + dim vsphi, vsplo + vsphi = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY_SPHI &"." &GSH_CPPARAM_ENTITY_SPHI_PARA) + vsplo = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY_SPLO &"." &GSH_CPPARAM_ENTITY_SPLO_PARA) + + oShape.objects("plg_SPIndicator1").style.pixeltop = cint(GSH_LEVELINDICATOR_SPFLOATPOSITION_GAPVarIn(oShape,vsphi) - (oShape.objects("plg_SPIndicator2").style.pixelheight / 2)) + oShape.objects("plg_SPIndicator2").style.pixeltop = cint(GSH_LEVELINDICATOR_SPFLOATPOSITION_GAPVarIn(oShape,vsplo)- (oShape.objects("plg_SPIndicator1").style.pixelheight / 2)) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), GSH_LEVELINDICATORDECIMALS) + End If + + 'When SPHigh or SPLow value is Nan -> do not show the marker + if not(isNAN(vsphi)) then + oShape.objects("plg_SPIndicator1").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_SPIndicator1").style.visibility = GSH_HIDDEN + end if + + if not(isNAN(vsplo)) then + oShape.objects("plg_SPIndicator2").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_SPIndicator2").style.visibility = GSH_HIDDEN + end if + + End If +'gsh_log_e("GSH_LevelIndicatorRegulatoryControl_GAPVarIn_SCADA_OnUpdate") +end sub + +function GSH_LEVELINDICATOR_SPFLOATPOSITION_GAPVARIN(oShape,InputVal) +'gsh_log_s("GSH_LEVELINDICATOR_SPFLOATPOSITION_GAPVarIn oShape=" & oShape.id) + Dim iNumPixels, iBottom + Dim iRangeHi, iRangeLo, iSP + 'Calculate pv value + iRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + iRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) +' gsh_log("iRangeHi=" & iRangeHi & ", iRangeLo=" & iRangeLo) + iSP = InputVal + 'iSP = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"), SPParam) +' gsh_log("SP=" & iSP) + if (iSP > iRangeHi) then + iNumPixels = oShape.objects("rec_IndicatorRange").style.pixelheight + ElseIf (iSP < iRangeLo) then + iNumPixels = 0 + else + iNumPixels = (oShape.objects("rec_IndicatorRange").style.pixelheight * ((iSP - iRangeLo) / (iRangeHi - iRangeLo))) +' gsh_log("iNumPixels=" & iNumPixels) + end if + iBottom = (oShape.objects("rec_IndicatorRange").style.pixelheight + oShape.objects("rec_IndicatorRange").style.pixeltop) + Dim iPosition : iPosition = cint(iBottom - iNumPixels) + GSH_LEVELINDICATOR_SPFLOATPOSITION_GAPVARIN = iPosition +'gsh_log_e("GSH_LEVELINDICATOR_SPFLOATPOSITION_GAPVARIN returns >>>>>>>>>>>>"&iPosition) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'LevelIndicatorRegCtlSmall Shape Section +' Contains all functions specific to the shape +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +sub GSH_LevelIndicatorRegCtlSmall_SCADA_OnUpdate(oShape, flag) +'gsh_log_s("GSH_LevelIndicatorRegCtlSmall_SCADA_OnUpdate oShape="&oShape.id) +On Error Resume Next + +If flag <= 1 then + GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_datascript")) Then + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + else + 'alarming is enabled, get highest priority and change shape accordingly + Select Case GSH_GETHIGHESTALARMPRIORITY(oShape.objects("rec_datascript")) + Case GSH_NOALARMCODE + call GSH_LevelIndicatorRegulatoryControlShowNoAlarm(oShape) + Case GSH_UNACKEMERG + call GSH_LevelIndicatorRegCtlSmallShowEmergencyAlarm(oShape,True) + Case GSH_UNACKHIGH + call GSH_LevelIndicatorRegCtlSmallShowHighAlarm(oShape,true) + Case GSH_UNACKLOW + call GSH_LevelIndicatorRegCtlSmallShowLowAlarm(oShape,true) + Case GSH_ACKEMERG + call GSH_LevelIndicatorRegCtlSmallShowEmergencyAlarm(oShape,false) + Case GSH_ACKHIGH + call GSH_LevelIndicatorRegCtlSmallShowHighAlarm(oShape,false) + Case GSH_ACKLOW + call GSH_LevelIndicatorRegCtlSmallShowLowAlarm(oShape,false) + Case Else + call GSH_LevelIndicatorRegulatoryControlShowNoAlarm(oShape) + End Select + End If +'End If + +'If flag <= 1 then + GSH_LevelIndicatorRegulatoryControlSetFocus(oShape) + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if (GSH_REGCTL_SCADA_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_CPPARAM_PV)) then + call GSH_LevelIndicatorRegulatoryControlShowOffNormal(oShape) + end if + end if + +'End If + + +'If flag = 0 then + 'Check for bad value + If GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + call GSH_LevelIndicatorShowSPFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), GSH_LEVELINDICATORDECIMALS) + End If +End If + +'gsh_log_e("GSH_LevelIndicatorRegCtlSmall_SCADA_OnUpdate") +end sub + +sub GSH_LevelIndicatorRegCtlSmallShowHighAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_LevelIndicatorRegCtlSmallShowHighAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + call GSH_LevelIndicatorRegulatoryControlShowHighAlarm(oShape,unAcknowledged) + 'Make Alarm outline width smaller compared to regular size + oShape.objects("outline").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH +'gsh_log_e("GSH_LevelIndicatorRegCtlSmallShowHighAlarm") +end sub + +sub GSH_LevelIndicatorRegCtlSmallShowLowAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_LevelIndicatorRegCtlSmallShowLowAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + call GSH_LevelIndicatorRegulatoryControlShowLowAlarm(oShape,unAcknowledged) + 'Make Alarm outline width smaller compared to regular size + oShape.objects("outline").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH +'gsh_log_e("GSH_LevelIndicatorRegCtlSmallShowLowAlarm") +end sub + +sub GSH_LevelIndicatorRegCtlSmallShowEmergencyAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_LevelIndicatorRegCtlSmallShowEmergencyAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + call GSH_LevelIndicatorRegulatoryControlShowEmergencyAlarm(oShape,unAcknowledged) + 'Make Alarm outline width smaller compared to regular size + oShape.objects("outline").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH +'gsh_log_e("GSH_LevelIndicatorRegCtlSmallShowEmergencyAlarm") +end sub + +sub GSH_LevelIndicatorRegCtlSmallShowDisbledAlarm(oShape) +'gsh_log_s("GSH_LevelIndicatorRegCtlSmallShowDisbledAlarm oShape=" & oShape.id ) + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLEVELINDICATORDISABLEDALARM + oShape.objects("outline").styleClass = GSH_CSSLEVELINDICATORDISABLEDALARM + 'Make Alarm outline width smaller + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH + oShape.objects("outline").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_LevelIndicatorRegCtlSmallShowDisbledAlarm") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' VALVE_DIGITAL Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_VALVEDIGITAL_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_VALVEDIGITAL_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_SCADA_ValveDigital_OnUpdate oShape=" & oShape.id) +on error resume next + + If flag <= 1 then + Dim nNumericState + nNumericState = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + call GSH_ValveDigitalShowNormal(oShape) + call GSH_SCADA_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericState) + if (GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript"))) Then 'Alarm is Disabled + call GSH_ValveDigitalShowDisabledAlarm(oShape) + else 'alarming is enabled, get highest priority and change shape accordingly + Select Case GSH_GETHIGHESTALARMPRIORITY(oShape.objects("rec_DataScript")) + Case GSH_NOALARMCODE + 'call GSH_ValveDigitalShowNormal(oShape) + Case GSH_UNACKEMERG + call GSH_ValveDigitalShowEmergencyAlarm(oShape,true) + Case GSH_UNACKHIGH + call GSH_ValveDigitalShowHighAlarm(oShape,true) + Case GSH_UNACKLOW + call GSH_ValveDigitalShowLowAlarm(oShape,true) + Case GSH_ACKEMERG + call GSH_ValveDigitalShowEmergencyAlarm(oShape,false) + Case GSH_ACKHIGH + call GSH_ValveDigitalShowHighAlarm(oShape,false) + Case GSH_ACKLOW + call GSH_ValveDigitalShowLowAlarm(oShape,false) + End Select + End If + 'End If + + 'If flag <= 1 then + 'focus + call GSH_ValveDigitalSetFocus(oShape) + + 'Check for Off Normal if not in focus + dim sPVStateTxt + sPVStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV,oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, sPVStateTxt) then + call GSH_ValveDigitalShowOffNormal(oShape) + 'oShape.objects("focus").styleClass = GSH_CSSValveOutlineBackground + end if + end if + End If + + If flag = 0 then + 'Bad Data Check + If GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_ValveDigitalShowBadPV(oShape) + else + oShape.objects("txt_PVvalue").value = sPVStateTxt + End If + + End If +'gsh_log_e("GSH_SCADA_ValveDigital_OnUpdate") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' VALVE_DIGITAL Shape Section +' Contains all functions specific to the shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_VALVEDIGITAL_P6A_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'01/11/2008: Added to handle P6A VALVE DIGITAL shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_VALVEDIGITAL_P6A_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_SCADA_VALVEDIGITAL_P6A_ONUPDATE oShape=" & oShape.id) +on error resume next + + + Dim nNumericState +' nNumericState = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_IP1) + call GSH_ValveDigitalShowNormal(oShape) + + 'Find value of GSH_CPPARAM_PV_IP1 + dim input1_val, input2_val, expected_input1_val, expected_input2_val, sPVStateTxt + + sPVStateTxt = GSH_NONE + input1_val = Cint(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_IP1)) + input2_val = Cint(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_IP2)) + + expected_input1_val = Cint(oShape.GetCustomProperty(GSH_CPVALUE,GSH_EXPECTEDVAL1)) + expected_input2_val = Cint(oShape.GetCustomProperty(GSH_CPVALUE,GSH_EXPECTEDVAL2)) + + + if((input1_val=expected_input1_val) And (input2_val=expected_input2_val)) then + nNumericState = 3 + sPVStateTxt = GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),"BothOn","") + elseif ((input1_val=expected_input1_val) And (input2_val<>expected_input2_val)) then + nNumericState = 0 + sPVStateTxt = GSH_GET_STATE_TEXT_P6A(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), oShape.GetCustomProperty(GSH_CPPARAMETER,GSH_CPPARAM_IP1)&"_"&input1_val) + alarmPara=GSH_CPPARAM_IP1 + elseif ((input1_val<>expected_input1_val) And (input2_val=expected_input2_val)) then + nNumericState = 1 + sPVStateTxt = GSH_GET_STATE_TEXT_P6A(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), oShape.GetCustomProperty(GSH_CPPARAMETER,GSH_CPPARAM_IP2)&"_"&input2_val) + alarmPara=GSH_CPPARAM_IP2 + else + nNumericState = 3 + sPVStateTxt = GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),"BothOff","") + end if + + call GSH_SCADA_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericState) + + oShape.objects("txt_PVvalue").value = sPVStateTxt + + call GSH_ValveDigitalSetFocus(oShape) + + + +'gsh_log_e("GSH_SCADA_VALVEDIGITAL_P6A_ONUPDATE") + +end sub + +sub GSH_ValveDigitalSetValveCSSStyle(oShape,style) +'gsh_log_s("GSH_ValveDigitalSetValveCSSStyle oShape=" & oShape.id&",style="&style) +on error resume next + oShape.objects("plg_ValveDigitalPic").styleClass = style +'gsh_log_e("GSH_ValveDigitalSetValveCSSStyle") +end sub + +'sub GSH_ValveDigitalSetValveState(oShape,currentState) replaced by GSH_SCADA_VALVEDIGITALSETVALVENUMERICSTATE May1 + +sub GSH_SCADA_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericStateValue) +'gsh_log_s("GSH_SCADA_VALVEDIGITALSETVALVENUMERICSTATE oShape=" & oShape.id & "nNumericStateValue=" & nNumericStateValue) +on error resume next + Dim sTagName, sStateStyle + sTagName = GSH_GETSHAPETAG(oShape) + sStateStyle = GSH_READTAGINFORMATIONKEYVALUE(sTagName,"STATESTYLE("&nNumericStateValue&")",GSH_CSSVALVEDIGITALTRAVEL) +' gsh_log("GSH_SCADA_VALVEDIGITALSETVALVENUMERICSTATE checkpoint1 sStateStyle = "&sStateStyle) + + oShape.objects("txt_PVValue").style.visibility = GSH_HIDDEN + If strComp(sStateStyle,GSH_CSSVALVEDIGITALTRAVEL,vbTextCompare)=0 Then 'if the style is travel then make txt_PVValue visible + oShape.objects("txt_PVValue").style.visibility = GSH_VISIBLE + end if + call GSH_ValveDigitalSetValveCSSStyle(oShape,sStateStyle) +'gsh_log_e("GSH_SCADA_VALVEDIGITALSETVALVENUMERICSTATE") +end sub + +sub GSH_ValveDigitalSetFocus(oShape) +'gsh_log_s("GSH_ValveDigitalSetFocus oShape=" & oShape.id) +on error resume next + call GSH_SETSHAPEFOCUS(oShape) + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT '-> show noalarm (at shownornmal) fill the outline -> reset the fill here + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show analog value and outline + 'oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("rec_LineCover").styleClass = GSH_CSSFOCUSASSOCIATED_COLOUR + oShape.objects("txt_PVValue").style.visibility = GSH_VISIBLE + end if + +'gsh_log_e("GSH_ValveDigitalSetFocus") +end sub + +sub GSH_ValveDigitalBnBSetFocus(oShape) +'gsh_log_s("GSH_ValveDigitalSetFocus oShape=" & oShape.id) +on error resume next + call GSH_SETSHAPEFOCUS(oShape) + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT '-> show noalarm (at shownornmal) fill the outline -> reset the fill here + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show analog value and outline + 'oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("rec_LineCover1").styleClass = GSH_CSSFOCUSASSOCIATED_COLOUR + oShape.objects("txt_PVValue1").style.visibility = GSH_VISIBLE + oShape.objects("rec_LineCover2").styleClass = GSH_CSSFOCUSASSOCIATED_COLOUR + oShape.objects("txt_PVValue2").style.visibility = GSH_VISIBLE + oShape.objects("rec_LineCover3").styleClass = GSH_CSSFOCUSASSOCIATED_COLOUR + oShape.objects("txt_PVValue3").style.visibility = GSH_VISIBLE + else + oShape.objects("rec_LineCover1").styleClass = GSH_CSSBACKGROUND_GRAY + oShape.objects("txt_PVValue1").style.visibility = GSH_HIDDEN + oShape.objects("rec_LineCover2").styleClass = GSH_CSSBACKGROUND_GRAY + oShape.objects("txt_PVValue2").style.visibility = GSH_HIDDEN + oShape.objects("rec_LineCover3").styleClass = GSH_CSSBACKGROUND_GRAY + oShape.objects("txt_PVValue3").style.visibility = GSH_HIDDEN + end if + +'gsh_log_e("GSH_ValveDigitalSetFocus") +end sub + +sub GSH_ValveDigitalShowNormal(oShape) +'gsh_log_s("GSH_ValveDigitalShowNormal oShape=" & oShape.id) +on error resume next + oShape.objects("rec_LineCover").styleClass = GSH_CSSBACKGROUND_GRAY + oShape.objects("txt_PVValue").style.visibility = GSH_HIDDEN + oShape.objects("focus").style.visibility = GSH_HIDDEN + call GSH_ShowNoAlarm(oShape) +'gsh_log_e("GSH_ValveDigitalShowNormal") +end sub + +sub GSH_ValveDigitalShowOffNormal(oShape) +'gsh_log_s("GSH_ValveDigitalShowOffNormal oShape=" & oShape.id) +on error resume next + oShape.objects("focus").style.visibility = GSH_VISIBLE + oShape.objects("focus").styleClass = GSH_VALVEDIGITALOFFNORMAL + oShape.objects("txt_PVValue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_ValveDigitalShowOffNormal") +end sub + +sub GSH_ValveDigitalShowDisabledAlarm(oShape) +'gsh_log_s("GSH_ValveDigitalShowDisabledAlarm oShape=" & oShape.id) +on error resume next + oShape.objects("outline").styleClass = GSH_CSSVALVEDIGITALDISABLEDALARM +'gsh_log_e("GSH_ValveDigitalShowDisabledAlarm") +end sub + +sub GSH_ValveDigitalShowBadPV(oShape) +'gsh_log_s("GSH_ValveDigitalShowBadPV oShape=" & oShape.id) +on error resume next + call GSH_ValveDigitalSetValveCSSStyle(oShape,GSH_CSSVALVEDIGITALTRAVEL) + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE + oShape.objects("txt_PVvalue").value = gsh_badpv +'gsh_log_e("GSH_ValveDigitalShowBadPV") +end sub + +sub GSH_ValveDigitalShowEmergencyAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_ValveDigitalShowEMERGENCYAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + call GSH_ShowEmergencyAlarm(oShape,unAcknowledged) + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_ValveDigitalShowEmergencyAlarm") +end sub + +sub GSH_ValveDigitalShowHighAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_ValveDigitalShowHighAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + call GSH_ShowHighAlarm(oShape,unAcknowledged) + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_ValveDigitalShowHighAlarm") +end sub + +sub GSH_ValveDigitalShowLowAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_ValveDigitalShowLowAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) + call GSH_ShowLowAlarm(oShape,unAcknowledged) + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_ValveDigitalShowLowAlarm") +end sub + + + + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' Regulatory Control Valve Shape Section: Contains all functions specific to the shape +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_ValveRegulatoryControl_SCADA_OnUpdate(oShape, flag) +'gsh_log_s("GSH_ValveRegulatoryControlOnUpdate oShape=" & oShape.id) + + If flag <= 1 then + call GSH_ValveRegulatoryControlShowNormal(oShape) + + Dim OPValue,stsmsg, redTag, initMan + OPValue = oShape.objects("ind_OPStem").value + If (OPValue <= 5) then + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else if ( (OPValue > 5) and (OPValue < 95) ) then + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + end if: end if + + + + 'Check the points alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + 'Alarm is Disabled + call GSH_ValveRegulatoryControlShowDisabledAlarm(oShape) + else + 'alarming is enabled, get highest priority and change shape accordingly + + 'gsh_log_e("GSH_ValveRegulatoryControlOnUpdate <<" & GSH_GETHIGHESTALARMPRIORITY_OP(oShape.objects("rec_DataScript"))) + Select Case GSH_GETHIGHESTALARMPRIORITY_OP(oShape.objects("rec_DataScript")) + Case GSH_NOALARMCODE + Call GSH_ValveRegulatoryControlShowNoAlarm(oShape) + Case GSH_UNACKEMERG + call GSH_ValveRegulatoryControlShowEmergencyAlarm(oShape,true) + Case GSH_UNACKHIGH + call GSH_ValveRegulatoryControlShowHighAlarm(oShape,true) + Case GSH_UNACKLOW + call GSH_ValveRegulatoryControlShowLowAlarm(oShape,true) + Case GSH_ACKEMERG + call GSH_ValveRegulatoryControlShowEmergencyAlarm(oShape,false) + Case GSH_ACKHIGH + call GSH_ValveRegulatoryControlShowHighAlarm(oShape,false) + Case GSH_ACKLOW + call GSH_ValveRegulatoryControlShowLowAlarm(oShape,false) + Case Else + call GSH_ValveRegulatoryControlShowNoAlarm(oShape) + End Select + End If + 'End If + + 'If flag <= 1 then + + 'Focus + call GSH_ValveRegulatoryControlSetFocus(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if (GSH_REGCTL_SCADA_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_CPPARAM_PV)) then + call GSH_ValveRegulatoryControlShowOffNormal(oShape) + 'oShape.objects("focus").styleClass = GSH_CSSValveOutlineBackground + end if + end if + + End If + + If flag = 0 then + 'Update Value (added Jun 7th) + oShape.objects("txt_OPValue").value = FormatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) + + 'Make the focus transparent for valves + 'oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground --> outline is always transparent + End If + + 'gsh_log_e("GSH_ValveRegulatoryControlOnUpdate") +end sub + +sub GSH_ValveRegulatoryControlSetFocus(oShape) +'gsh_log_s("GSH_ValveRegulatoryControlSetFocus oShape=" & oShape.id) +on error resume next + + call GSH_SetShapeFocus(oShape) + + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show analog value and outline + call GSH_ValveRegulatoryControlShowBottomFlowIndicator(oShape,false) + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("rec_LineCover").styleClass = GSH_CSSFOCUSASSOCIATED_COLOUR + oShape.objects("txt_OPValue").style.visibility = GSH_VISIBLE 'changed AL + else + oShape.objects("rec_LineCover").styleClass = GSH_CSSBACKGROUND_GRAY + end if + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT '-> set alarm filled the outline -> set it back to transparent here +'gsh_log_e("GSH_ValveRegulatoryControlSetFocus") +end sub + +sub GSH_ValveRegulatoryControlShowNormal(oShape) +'gsh_log_s("GSH_ValveRegulatoryControlShowNormal oShape=" & oShape.id) +on error resume next + 'oShape.objects("txt_OPValue").value = FormatNumber(oShape.objects("ind_OPBottom").value,GSH_OUTPUTINDICATORDECIMALS) + oShape.objects("rec_LineCover").styleClass = GSH_CSSBACKGROUND_GRAY + oShape.objects("txt_OPValue").style.visibility = GSH_HIDDEN 'changed AL + oShape.objects("ind_OPBottom").style.visibility = GSH_VISIBLE + call GSH_ValveRegulatoryControlShowNoAlarm(oShape) + call GSH_ValveRegulatoryControlShowNoStatusMessage(oShape) + call GSH_ValveRegulatoryControlShowNoWindUp(oShape) +'gsh_log_e("GSH_ValveRegulatoryControlShowNormal") +end sub + +sub GSH_ValveRegulatoryControlShowOffNormal(oShape) +'gsh_log_s("GSH_ValveRegulatoryControlShowOffNormal oShape=" & oShape.id) +on error resume next + oShape.objects("focus").style.visibility = GSH_VISIBLE + oShape.objects("focus").styleClass = GSH_CSSREGULATORYCONTROLVALVEOFFNORMAL + call GSH_ValveRegulatoryControlShowBottomFlowIndicator(oShape,true) +'gsh_log_e("GSH_ValveRegulatoryControlShowOffNormal") +end sub + +sub GSH_ValveRegulatoryControlShowEmergencyAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_ValveRegulatoryControlShowEmergencyAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) +on error resume next + call GSH_ShowEmergencyAlarm(oShape,unAcknowledged) + call GSH_ValveRegulatoryControlShowBottomFlowIndicator(oShape,false) +'gsh_log_e("GSH_ValveRegulatoryControlShowEmergencyAlarm") +end sub + +sub GSH_ValveRegulatoryControlShowDisabledAlarm(oShape) +'gsh_log_s("GSH_ValveRegulatoryControlShowDisabledAlarm oShape=" & oShape.id) +on error resume next + call GSH_ShowNoAlarm(oShape) + call GSH_ValveRegulatoryControlShowBottomFlowIndicator(oShape,true) + oShape.objects("outline").styleClass = GSH_CSSREGULATORYCONTROLINDICATORDISABLEDALARM +'gsh_log_e("GSH_ValveRegulatoryControlShowDisabledAlarm") +end sub + +sub GSH_ValveRegulatoryControlShowHighAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_ValveRegulatoryControlShowHighAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) +on error resume next + call GSH_ShowHighAlarm(oShape,unAcknowledged) + call GSH_ValveRegulatoryControlShowBottomFlowIndicator(oShape,false) +'gsh_log_e("GSH_ValveRegulatoryControlShowHighAlarm") +end sub + +sub GSH_ValveRegulatoryControlShowLowAlarm(oShape,unAcknowledged) +'gsh_log_s("GSH_ValveRegulatoryControlShowLowAlarm oShape=" & oShape.id & "unAcknowledged=" & cstr(unAcknowledged)) +on error resume next + call GSH_ShowLowAlarm(oShape,unAcknowledged) + call GSH_ValveRegulatoryControlShowBottomFlowIndicator(oShape,false) +'gsh_log_e("GSH_ValveRegulatoryControlShowLowAlarm") +end sub + +sub GSH_ValveRegulatoryControlShowNoAlarm(oShape) +'gsh_log_s("GSH_ValveRegulatoryControlShowNoAlarm oShape=" & oShape.id) +on error resume next + call GSH_ShowNoAlarm(oShape) + call GSH_ValveRegulatoryControlShowBottomFlowIndicator(oShape,true) +'gsh_log_e("GSH_ValveRegulatoryControlShowNoAlarm") +end sub + +sub GSH_ValveRegulatoryControlShowNoWindUp(oShape) +'gsh_log_s("GSH_ValveRegulatoryControlShowNoWindUp oShape=" & oShape.id) +on error resume next + oShape.objects("plg_OpHigh").style.visibility = GSH_HIDDEN + oShape.objects("plg_OpLow").style.visibility = GSH_HIDDEN + oShape.objects("txt_initialization").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_ValveRegulatoryControlShowNoWindUp") +end sub + +sub GSH_ValveRegulatoryControlShowNoStatusMessage(oShape) +'gsh_log_s("GSH_ValveRegulatoryControlShowNoStatusMessage oShape=" & oShape.id) +on error resume next + oShape.objects("txt_statusmessage").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_ValveRegulatoryControlShowNoStatusMessage") +end sub + +sub GSH_ValveRegulatoryControlShowStatusMessage(oShape,message) +'gsh_log_s("GSH_ValveRegulatoryControlShowStatusMessage oShape=" & oShape.id & ",message="&message) +on error resume next + oShape.objects("txt_statusmessage").style.visibility = GSH_VISIBLE + oShape.objects("txt_statusmessage").value = message +'gsh_log_e("GSH_ValveRegulatoryControlShowStatusMessage") +end sub + +sub GSH_ValveRegulatoryControlShowInitialization(oShape) +'gsh_log_s("GSH_ValveRegulatoryControlShowInitialization oShape=" & oShape.id) +on error resume next + oShape.objects("plg_OpHigh").style.visibility = GSH_HIDDEN + oShape.objects("plg_OpLow").style.visibility = GSH_HIDDEN + oShape.objects("txt_initialization").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_ValveRegulatoryControlShowInitialization") +end sub + +sub GSH_ValveRegulatoryControlShowWindLow(oShape) +'gsh_log_s("GSH_ValveRegulatoryControlShowWindLow oShape=" & oShape.id) +on error resume next + oShape.objects("plg_OpHigh").style.visibility = GSH_HIDDEN + oShape.objects("txt_initialization").style.visibility = GSH_HIDDEN + oShape.objects("plg_OpLow").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_ValveRegulatoryControlShowWindLow") +end sub + +sub GSH_ValveRegulatoryControlShowWindHigh(oShape) +'gsh_log_s("GSH_ValveRegulatoryControlShowWindHigh oShape=" & oShape.id) +on error resume next + oShape.objects("plg_OpLow").style.visibility = GSH_HIDDEN + oShape.objects("txt_initialization").style.visibility = GSH_HIDDEN + oShape.objects("plg_OpHigh").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_ValveRegulatoryControlShowWindHigh") +end sub + +sub GSH_ValveRegulatoryControlShowBottomFlowIndicator(oShape,ShowBottomFlowdicator) +'gsh_log_s("GSH_ValveRegulatoryControlShowBottomFlowIndicator oShape="&oShape.id&" "& CSTR(ShowBottomFlowdicator)) +on error resume next + if (ShowBottomFlowdicator) then + oShape.Objects("ind_OPBottom").style.visibility = GSH_VISIBLE + oShape.Objects("rec_MidLineBottom").style.visibility = GSH_VISIBLE + oShape.objects("txt_OPValue").style.visibility = GSH_HIDDEN + else + oShape.Objects("ind_OPBottom").style.visibility = GSH_HIDDEN + oShape.Objects("rec_MidLineBottom").style.visibility = GSH_HIDDEN + oShape.objects("txt_OPValue").style.visibility = GSH_VISIBLE + end if +'gsh_log_e("GSH_ValveRegulatoryControlShowBottomFlowIndicator") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GETOPERATORTREND''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' sSection - registry section +' sKey - registry subkey +' sDefaultString - Default string if error of nothing found +'Returns: +' String, value of specified Demand\Trend subkey +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETOPERATORTREND(strApp, strSection,strKey,defaultString) +'gsh_log_s("GSH_GETOPERATORTREND strApp=" & strApp & "strSection=" & strSection & ",strKey=" & strKey & ",defaultString=" & defaultString ) +on error resume next + dim strRegLocation, tempReturn + strRegLocation = GSH_REGISTRY_OPERATORTREND & strApp & "\"& strSection & "\"& strKey + tempReturn = GSH_READREGISTRY(strRegLocation,defaultString) + GSH_GETOPERATORTREND = tempReturn +'gsh_log_e("GSH_GETOPERATORTREND returning " & tempReturn) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SETOPERATORTREND''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' sSection - registry section +' sKey - registry subkey +' sDefaultString - Default string if error of nothing found +'Returns: +' String, value of specified DetailTrend subkey +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SETOPERATORTREND(strApp,strSection,strKey,strValue) +'gsh_log_s("GSH_SETOPERATORTREND strApp=" & strApp & "strSection=" & strSection & ",strKey=" & strKey & ",strValue=" & strValue ) +on error resume next + dim strRegLocation + strRegLocation = GSH_REGISTRY_OPERATORTREND & strApp & "\"& strSection & "\"& strKey + 'gsh_log("GSH_SETOPERATORTREND checkPoint strRegLocation=" & strRegLocation) + GSH_WRITETOREGISTRY strRegLocation,strValue,"REG_SZ" +'gsh_log_e("GSH_SETOPERATORTREND") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GETDETAILTREND''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' sSection - registry section +' sKey - registry subkey +' sDefaultString - Default string if error of nothing found +'Returns: +' String, value of specified DetailTrend subkey +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETDETAILTREND(strSection,strKey,defaultString) +'gsh_log_s("GSH_GETDETAILTREND " & "strSection=" & strSection & ",strKey=" & strKey & ",defaultString=" & defaultString ) +on error resume next + dim strRegLocation, tempReturn + strRegLocation = GSH_REGISTRY_DETAILTREND & strSection & "\"& strKey + tempReturn = GSH_READREGISTRY(strRegLocation,defaultString) + GSH_GETDETAILTREND = tempReturn +'gsh_log_e("GSH_GETDETAILTREND returning & " & tempReturn) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SETDETAILTREND''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' sSection - registry section +' sKey - registry subkey +' sDefaultString - Default string if error of nothing found +'Returns: +' String, value of specified DetailTrend subkey +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SETDETAILTREND(strSection,strKey,strValue) +'gsh_log_s("GSH_SETDETAILTREND " & "strSection=" & strSection & ",strKey=" & strKey & ",strValue=" & strValue ) +on error resume next + dim strRegLocation + strRegLocation = GSH_REGISTRY_DETAILTREND & strSection & "\"& strKey + 'gsh_log("GSH_SETDETAILTREND checkPoint strRegLocation=" & strRegLocation) + GSH_WRITETOREGISTRY strRegLocation,strValue,"REG_SZ" +'gsh_log_e("GSH_SETDETAILTREND") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_DetailTrendInitialize''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' sTagName - Tag name to initialize the detail trend with +' 06/01/07 Added HDA, OPC1 and OPC2 pathprefixes because the Historian +' tagname is different from the tagname and there may be a funnel OPC interface +'06/01/07 parse out the function block for storing the itemAlias +'10/06/2008 (CL) Add writing value of tag euhigh and eulow to trend range high and trend range low to allow the trend use +' the range from registry when the range is not available from the historian +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_FP_DetailTrendInitialize(sTagName) +'Run on page load event for faceplate. +'On Error GoTo errorhandler +on error resume next + +'gsh_log_s("GSH_FP_DetailTrendInitialize sTagName = " &sTagName) + +Dim arYMax(4), arYMin(4), asAutoScale(4), asTrendParams(4), asActive(4), asTrendParamShort(4), asPVeuhigh(4), asPVeulow(4) +Dim asTraceNames(4), asTraceActive(4), asTraceParams(4), asStepped(4), asPVFormat(4) +Dim sPathPrefix, nTrendingParams, nCount, nNumTrends, nIndex, sPVFormat, sItemAlias, sPVeuhigh, sPVeulow +Dim istrLen, iPosition + + nIndex = 0 + nNumTrends = 4 + nTrendingParams = GSH_READTAGINFORMATIONKEYVALUE(sTagName, "NoOfTrendingParams", 0) + sPVFormat = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT) + sPathPrefix = GSH_GETDEMANDTREND (GSH_REGISTRY_SETTINGS,GSH_REGKEY_PATHPREFIX, "") + sItemAlias = sTagName + + '10/06/2008 CL + sPVeuhigh = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_EUHIGH, 0) + sPVeulow = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_EULOW, 0) + + If nTrendingParams > 0 Then + sItemAlias = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_TAGNAME_ALIAS, sTagName) + For nCount = 1 To nTrendingParams + asTrendParams(nCount) = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_TRENDPARAM & nCount, "") + istrLen = len(asTrendParams(nCount)) + iPosition= Instr(1, asTrendParams(nCount) , ".",vbtextcompare) + asTrendParamShort(nCount) = right(asTrendParams(nCount), istrLen - iPosition) + asStepped(nCount) = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_TRENDSTEPPED & nCount, "OFF") +' Select Case asTrendParams(nCount) + Select Case asTrendParamShort(nCount) + Case "PV" + asAutoScale(nCount) = "ON" + asPVFormat(nCount) = sPVFormat + + asPVeuhigh(nCount) = sPVeuhigh + asPVeulow(nCount) = sPVeulow + + Case "SP" + asAutoScale(nCount) = "ON" + asPVFormat(nCount) = sPVFormat + asPVeuhigh(nCount) = sPVeuhigh + asPVeulow(nCount) = sPVeulow + + Case "OP" + asAutoScale(nCount) = "OFF" + asPVFormat(nCount) = "D1" + arYMax(nCount) = 106.9 + arYMin(nCount) = -6.9 + asPVeuhigh(nCount) = 106.9 + asPVeulow(nCount) = -6.9 + call GSH_SETDETAILTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMAX,arYMax(nCount)) + call GSH_SETDETAILTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMIN,arYMin(nCount)) + Case "MODE" + asAutoScale(nCount) = "ON" + asPVeuhigh(nCount) = 100 + asPVeulow(nCount) = 0 + Case Else + asAutoScale(nCount) = "ON" + End Select + Next + End If + + For nCount = 1 To nNumTrends + GSH_SETDETAILTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, "OFF" + Next + + For nCount = 1 To nTrendingParams + ' asTraceParams(nCount) = sTagName & "." & asTrendParams(nCount) + asTraceActive(nCount) = "ON" + Next + + Dim sOPC1_PathPrefix,sOPC2_PathPrefix, sTagNameHDA + sOPC1_PathPrefix = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_OPCKEY1PREFIX,"") + sOPC2_PathPrefix = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_OPCKEY2PREFIX,"") + bUseShortNameForHDA = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_USESHORTNAME_FOR_HDAPATH,"") + + For nCount = 1 To nTrendingParams + sTagNameHDA = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_TAGNAMEHDA, sTagName) + GSH_SETDETAILTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ITEMALIAS, sItemAlias & "." & asTrendParamShort(nCount) + GSH_SETDETAILTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPCITEMPATH, sOPC1_PathPrefix & sTagName& "." & asTrendParams(nCount) + GSH_SETDETAILTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPC2ITEMPATH, sOPC2_PathPrefix & sTagName& "." & asTrendParams(nCount) + GSH_SETDETAILTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, asTraceActive(nCount) + GSH_SETDETAILTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_AUTOSCALE, asAutoScale(nCount) + GSH_SETDETAILTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TRENDSTEPPED, asStepped(nCount) + GSH_SETDETAILTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_PVFORMATKEY, asPVFormat(nCount) + + 'Added 10/06/2008 (CL) add to allows trend to use range from registry if they are not available from historian + GSH_SETDETAILTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_HIGH, asPVeuhigh(nCount) + GSH_SETDETAILTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_LOW, asPVeulow(nCount) + + 'Added 09/07/2008 (JE) to work with Sasol PHD historian interface + 'Issue#21: http://wss-edm-1/clients/hcs/services/ISE-HCS8227/ClientProjectAccess/Lists/Issue%20Tracker/DispForm.aspx?ID=21 + If(UCASE(bUseShortNameForHDA) = "ON") then + GSH_SETDETAILTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, sTagNameHDA & "." & asTrendParamShort(nCount) + Else + GSH_SETDETAILTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, sTagNameHDA & "." & asTrendParams(nCount) + End If + Next + +'gsh_log_e("GSH_FP_DetailTrendInitialize") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DETAILTRENDPERIODICUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Function: Reset the Trend Scales for outputs & setpoints +'Returns: +' sTagName - Tag name on which to update the detail trend info +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DETAILTRENDPERIODICUPDATE(sTagName) +'gsh_log_s ("GSH_DETAILTRENDPERIODICUPDATE sTagName =" & sTagName ) + +if (strcomp(sTagName,"",vbtextcompare)<> 0) then + Dim arYMax(4) + Dim arYMin(4) + Dim nTrendingParams + + nTrendingParams = GSH_READTAGINFORMATIONKEYVALUE(sTagName, "NoOfTrendingParams", 0) + If nTrendingParams > 2 Then + arYMax(2) = GSH_GETDETAILTREND(GSH_REGKEY_TRENDTRACE & "2",GSH_REGKEY_TREND_YMAX,"100") + arYMin(2) = GSH_GETDETAILTREND(GSH_REGKEY_TRENDTRACE & "2",GSH_REGKEY_TREND_YMIN,"0") + + arYMax(1) = arYMax(2) + arYMin(1) = arYMin(2) + call GSH_SETDETAILTREND(GSH_REGKEY_TRENDTRACE & "1",GSH_REGKEY_AUTOSCALE,"OFF") + call GSH_SETDETAILTREND(GSH_REGKEY_TRENDTRACE & "1",GSH_REGKEY_TREND_YMAX,arYMax(1)) + call GSH_SETDETAILTREND(GSH_REGKEY_TRENDTRACE & "1",GSH_REGKEY_TREND_YMIN,arYMin(1)) + + arYMax(3) = 106.9 + arYMin(3) = -6.9 + call GSH_SETDETAILTREND(GSH_REGKEY_TRENDTRACE & "3",GSH_REGKEY_AUTOSCALE,"OFF") + call GSH_SETDETAILTREND(GSH_REGKEY_TRENDTRACE & "3",GSH_REGKEY_TREND_YMAX,arYMax(3)) + call GSH_SETDETAILTREND(GSH_REGKEY_TRENDTRACE & "3",GSH_REGKEY_TREND_YMIN,arYMin(3)) + End If +end if +'gsh_log_e ("GSH_DETAILTRENDPERIODICUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'DIGITALMULTIPLE SHAPE SPECIFIC CODE +' 09/19/2007 - Add alarm checking (ref issue# 859) (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_SCADA_DIGITALMULTIPLE_SETLABEL (oShape) +'gsh_log_s("GSH_SCADA_DIGITALMULTIPLE_SETLABEL oShape="&oShape.id) + + dim results(1) + dim bOffNormal, bInAlarm + dim alarmCode + bOffNormal = false + bInAlarm = false + + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_RES),"",vbtextcompare)<>0 then + + + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_dataScript"),GSH_CPENTITY_RES) + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_RES, GSH_PROCESSVALUE) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = "RES" + GSH_SCADA_DIGITALMULTIPLE_SETLABEL = results + exit function + end if + end if + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_MOS),"",vbtextcompare)<>0 then + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_MOS) + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_MOS, GSH_PROCESSVALUE) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = "MOS" + GSH_SCADA_DIGITALMULTIPLE_SETLABEL = results + exit function + end if + end if + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_SOR),"",vbtextcompare)<>0 then + + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_SOR) + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_SOR, GSH_PROCESSVALUE) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = "SOR" + GSH_SCADA_DIGITALMULTIPLE_SETLABEL = results + exit function + end if + end if + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_HHFF),"",vbtextcompare)<>0 then + + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_HHFF) + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_HHFF, GSH_PROCESSVALUE) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = "FFH" + GSH_SCADA_DIGITALMULTIPLE_SETLABEL = results + exit function + end if + end if + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_LLFF),"",vbtextcompare)<>0 then + + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_LLFF) + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_LLFF, GSH_PROCESSVALUE) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = "FFL" + GSH_SCADA_DIGITALMULTIPLE_SETLABEL = results + exit function + end if + end if + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_HHTRIP),"",vbtextcompare)<>0 then + dim sCPLabel, sCPChar + sCPLabel = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPLABEL) + sCPChar = left(sCPLabel,1) + + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_HHTRIP) + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_HHTRIP, GSH_PROCESSVALUE) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = sCPChar & "H" + GSH_SCADA_DIGITALMULTIPLE_SETLABEL = results + exit function + end if + end if + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_LLTRIP),"",vbtextcompare)<>0 then + dim sCPLabel2, sCPChar2 + sCPLabel2 = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPLABEL) + sCPChar2 = left(sCPLabel2,1) + + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_LLTRIP) + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_LLTRIP, GSH_PROCESSVALUE) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = sCPChar2 & "L" + GSH_SCADA_DIGITALMULTIPLE_SETLABEL = results + exit function + end if + end if + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_DEVIATION),"",vbtextcompare)<>0 then + + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_DEVIATION) + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_DEVIATION, GSH_PROCESSVALUE) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = "DEV" + GSH_SCADA_DIGITALMULTIPLE_SETLABEL = results + exit function + end if + end if + + results(0) = 0 + results(1) = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPLABEL) + GSH_SCADA_DIGITALMULTIPLE_SETLABEL = results + +'gsh_log_s("GSH_SCADA_DIGITALMULTIPLE_SETLABEL results(0) ="&results(0) &"bOffNormal = " &bOffNormal &"bInAlarm = " &bInAlarm) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_DIGITALMULTIPLE_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital value does not change often) only to increase performance +' 06/01/07 Remove offnormal check for the Entity point because it can be Analog or Digital +' 09/01/07 Add check so that when shape is in alarm, it does not show offnormal +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_DIGITALMULTIPLE_ONUPDATE (oShape, flag) +'gsh_log_s("GSH_SCADA_DIGITALMULTIPLE_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + dim counter, inresults, alarmStatus + If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + inresults = GSH_SCADA_DIGITALMULTIPLE_SETLABEL(oShape) + oShape.objects("txt_PVvalue").value = inresults(1) 'Determine label text + 'Alarming: Don't check alarm disabled for this alarm group (OK'd by Jamie) + dim sAlarmPriority, bUnack + sAlarmPriority = GSH_GETALARMGROUPPRIORITYPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITY_ALARMGROUP) + bUnack = GSH_GETALARMGROUPUNACKPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITY_ALARMGROUP) + +' gsh_log ("sAlarmPriority = " & sAlarmPriority & "bUnack = " & bUnack ) + + call GSH_SHOWALARMS (sAlarmPriority, bUnack, oShape) + + End If + + If flag <= 1 then + 'Set the focus + call GSH_DIGITALMULTIPLESETFOCUS(oShape) + + 'check for offnormal + dim sCPLabel,sPVStateTxt + sCPLabel = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPLABEL) + sPVStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_PROCESSVALUE,oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + 'Add check so that when shape is in alarm, it does not show offnormal + if (inresults(0) = 1 and sAlarmPriority=0) then 'strcomp(oShape.objects("txt_PVvalue").value, sCPLabel, vbtextcompare) <> 0 then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If +'gsh_log_e("GSH_SCADA_DIGITALMULTIPLE_ONUPDATE") +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital value does not change often) only to increase performance +' 12/18/2007: Add this function to handle P6A Digital Multiple shape (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_ONUPDATE (oShape, flag) +'gsh_log_s("GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + dim counter, alarmStatus + dim inresults + If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + inresults = GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL(oShape) + + oShape.objects("txt_PVvalue").value = inresults(1) 'Determine label text + 'Alarming: Don't check alarm disabled for this alarm group (OK'd by Jamie) + dim sAlarmPriority, bUnack + sAlarmPriority = GSH_GETALARMGROUPPRIORITYPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITY_ALARMGROUP) + bUnack = GSH_GETALARMGROUPUNACKPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITY_ALARMGROUP) + + call GSH_SHOWALARMS (sAlarmPriority, bUnack, oShape) + + End If + + If flag <= 1 then + 'Set the focus + + call GSH_DIGITALMULTIPLESETFOCUS(oShape) + + 'check for offnormal + dim sCPLabel,sPVStateTxt + sCPLabel = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPLABEL) + sPVStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_PROCESSVALUE,oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + 'Add check so that when shape is in alarm, it does not show offnormal + if (inresults(0) = 1 and sAlarmPriority=0) then 'strcomp(oShape.objects("txt_PVvalue").value, sCPLabel, vbtextcompare) <> 0 then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL +' gsh_log "Focus None, Offnormal" + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL +' gsh_log "Focus, Offnormal" + end if + end if + end if + End If +'gsh_log_e("GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_ONUPDATE") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL +' 12/18/2007: Add this function to handle P6A Digital Multiple shape (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL (oShape) +'gsh_log_s("GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL oShape="&oShape.id) + + dim results(1) + dim bOffNormal, bInAlarm + dim alarmCode + bOffNormal = false + bInAlarm = false + + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_RES),"",vbtextcompare)<>0 then + +' bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_RES) + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_VARIN_IS_OFFNORMAL(oShape.objects("rec_dataScript"),GSH_CPENTITY_RES,GSH_CPPARAM_RES_PARA) + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_RES, GSH_CPPARAM_RES_PARA) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = "RES" +' gsh_log("GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL results(0) ="&results(0) &" results(1) = " &results(1) &" bOffNormal = " &bOffNormal &" bInAlarm = " &bInAlarm) + GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL = results + exit function + end if + end if + + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_MOS),"",vbtextcompare)<>0 then + +' bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_MOS) + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_VARIN_IS_OFFNORMAL(oShape.objects("rec_dataScript"),GSH_CPENTITY_MOS,GSH_CPPARAM_MOS_PARA) + + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_MOS, GSH_CPPARAM_MOS_PARA) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = "MOS" +' gsh_log("GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL MOS results(0) ="&results(0) &" results(1) = " &results(1) &" bOffNormal = " &bOffNormal &" bInAlarm = " &bInAlarm) + GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL = results + exit function + end if + end if + + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_SOR),"",vbtextcompare)<>0 then + +' bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_SOR) + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_VARIN_IS_OFFNORMAL(oShape.objects("rec_dataScript"),GSH_CPENTITY_SOR,GSH_CPPARAM_SOR_PARA) + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_SOR, GSH_CPPARAM_SOR_PARA) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = "SOR" +' gsh_log("GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL SOR results(0) ="&results(0) &" results(1) = " &results(1) &" bOffNormal = " &bOffNormal &" bInAlarm = " &bInAlarm) + GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL = results + exit function + end if + end if + + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_HHHTRIP),"",vbtextcompare)<>0 then + dim sCPLabelHHH, sCPCharHHH + sCPLabelHHH = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPLABEL) + sCPCharHHH = left(sCPLabelHHH,1) + +' bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_HHFF) + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_VARIN_IS_OFFNORMAL(oShape.objects("rec_dataScript"),GSH_CPENTITY_HHHTRIP,GSH_CPPARAM_HHHTRIP_PARA) + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_HHFF, GSH_CPPARAM_HHFF_PARA) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = sCPCharHHH & "HH" +' results(1) = "FHH" +' gsh_log("GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL HHH_Trip results(0) ="&results(0) &" results(1) = " &results(1) &" bOffNormal = " &bOffNormal &" bInAlarm = " &bInAlarm) + GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL = results + exit function + end if + end if + + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_LLLTRIP),"",vbtextcompare)<>0 then + dim sCPLabelLLL, sCPCharLLL + sCPLabelLLL = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPLABEL) + sCPCharLLL = left(sCPLabel,1) + +' bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_LLFF) + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_VARIN_IS_OFFNORMAL(oShape.objects("rec_dataScript"),GSH_CPENTITY_LLLTRIP,GSH_CPPARAM_LLLTRIP_PARA) + + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_LLFF, GSH_CPPARAM_LLFF_PARA) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = sCPCharLLL & "LL" +' results(1) = "FLL" +' gsh_log("GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL LLL_Trip results(0) ="&results(0) &" results(1) = " &results(1) &" bOffNormal = " &bOffNormal &" bInAlarm = " &bInAlarm) + GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL = results + exit function + end if + end if + + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_HHTRIP),"",vbtextcompare)<>0 then + dim sCPLabel, sCPChar + sCPLabel = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPLABEL) + sCPChar = left(sCPLabel,1) + +' bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_HHTRIP) + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_VARIN_IS_OFFNORMAL(oShape.objects("rec_dataScript"),GSH_CPENTITY_HHTRIP,GSH_CPPARAM_HHTRIP_PARA) + + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_HHTRIP, GSH_CPPARAM_HHTRIP_PARA) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = sCPChar & "H" +' gsh_log("GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL HHTrip results(0) ="&results(0) &" results(1) = " &results(1) &" bOffNormal = " &bOffNormal &" bInAlarm = " &bInAlarm) + GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL = results + exit function + end if + end if + + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_LLTRIP),"",vbtextcompare)<>0 then + dim sCPLabel2, sCPChar2 + sCPLabel2 = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPLABEL) + sCPChar2 = left(sCPLabel2,1) + +' bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_LLTRIP) + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_VARIN_IS_OFFNORMAL(oShape.objects("rec_dataScript"),GSH_CPENTITY_LLTRIP,GSH_CPPARAM_LLTRIP_PARA) + + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_LLTRIP, GSH_CPPARAM_LLTRIP_PARA) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = sCPChar2 & "L" +' gsh_log("GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL LLTrip results(0) ="&results(0) &" results(1) = " &results(1) &" bOffNormal = " &bOffNormal &" bInAlarm = " &bInAlarm) + GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL = results + exit function + end if + end if + + if strcomp(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_DEVIATION),"",vbtextcompare)<>0 then + + bOffNormal = GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oShape.objects("rec_datascript"),GSH_CPENTITY_DEVIATION) + alarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_datascript"),GSH_CPENTITY_DEVIATION, GSH_CPPARAM_DEVIATION_PARA) + + if strcomp(alarmCode,GSH_NOALARMCODE,vbtextcompare)<>0 then + bInAlarm = true + end if + + if (bOffNormal or bInAlarm) then + results(0) = 1 + results(1) = "DEV" +' gsh_log("GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL DEV results(0) ="&results(0) &" results(1) = " &results(1) &" bOffNormal = " &bOffNormal &" bInAlarm = " &bInAlarm) + GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL = results + exit function + end if + end if + + results(0) = 0 + results(1) = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPLABEL) + GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL = results + +'gsh_log_e("GSH_SCADA_DIGITALMULTIPLE_VARIABLEINPUT_SETLABEL results(0) ="&results(0) &"bOffNormal = " &bOffNormal &"bInAlarm = " &bInAlarm) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITALMULTIPLESETFOCUS''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = calling shape. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DIGITALMULTIPLESETFOCUS(oShape) +'gsh_log_s("GSH_DIGITALMULTIPLESETFOCUS oShape=" & oShape.id) +on error resume next + call GSH_SHOWSUBSHAPE(oShape.objects("focus")) + Dim shapeTag, shapeFocusStyle + shapeTag = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPENTITY, GSH_CPPOINT) + If GSH_DOESSHAPEREQUIRESPRINCIPLEFOCUS(shapeTag) then + shapeFocusStyle = GSH_CSSFOCUSPRINCIPAL + 'gsh_log "Pfocus" + else if GSH_DOESSHAPEREQUIRESASSOCIATEDFOCUS(shapeTag) then + shapeFocusStyle = GSH_CSSFOCUSASSOCIATED + 'gsh_log "Afocus" + else + shapeFocusStyle = GSH_CSSFOCUSNONE + 'GSH_LOG "Nofocus" + end if: end if + oShape.objects("focus").styleClass = shapeFocusStyle + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show DIGITAL value and outline + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + end if +'gsh_log_e("GSH_DIGITALMULTIPLESETFOCUS") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL(oDataBoundObject, sPointName) +'gsh_log_s("GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL ODataBoundObject = "& ODataBoundObject.ID & ",sPointName = " & sPointName) +on error resume next + Dim tempReturn,sTagname, sPVStateText, sPVNormalState + sTagname = GSH_GETSHAPE_CUSTOM_PROPERTY(ODataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + tempReturn = false + nPVNumValue = ODataBoundObject.DataValue(sPointName &"."&GSH_PROCESSVALUE) + sPVStateText = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "StateTxt("&nPVNumValue&")", GSH_STATETXT_DOESNOTEXIST_LBL) +' if strcomp(sTagname, GSH_NONE, vbtextcompare) <> 0 then 'if the shape point name is "NONE" (already checking this before calling this fnc) + sPVNormalState = GSH_READTAGINFORMATIONKEYVALUE(sTagname, GSH_REGKEY_PV_NORMAL_STATE, GSH_NONE) + if (strComp(sPVNormalState,GSH_NONE,vbTextCompare) <> 0) then 'if Registry PVNormalState is NOT None + if (strComp(sPVStateText,sPVNormalState,vbTextCompare) <> 0) then + tempReturn = true + end if + end if +' end if +GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL = tempReturn +'gsh_log_e("GSH_SCADA_DIGITALMULTIPLE_POINT_IS_OFFNORMAL returning >>>" & tempReturn & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_DIGITALMULTIPLE_POINT_VARIN_IS_OFFNORMAL''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_SCADA_DIGITALMULTIPLE_POINT_VARIN_IS_OFFNORMAL(oDataBoundObject, sPointName, sPointNamePara) +'gsh_log_s("GSH_SCADA_DIGITALMULTIPLE_POINT_VARIN_IS_OFFNORMAL ODataBoundObject = "& ODataBoundObject.ID & ",sPointName = " & sPointName) +on error resume next + Dim tempReturn,sTagname, sPVStateText, sPVNormalState + sTagname = GSH_GETSHAPE_CUSTOM_PROPERTY(ODataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + tempReturn = false + nPVNumValue = ODataBoundObject.DataValue(sPointName &"."&GSH_PROCESSVALUE) + nPVNumValue = ODataBoundObject.DataValue(sPointName &"."&sPointNamePara) + sPVStateText = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "StateTxt("&nPVNumValue&")", GSH_STATETXT_DOESNOTEXIST_LBL) + if strcomp(sTagname, GSH_NONE, vbtextcompare) <> 0 then 'if the shape point name is "NONE" (already checking this before calling this fnc) + sPVNormalState = GSH_READTAGINFORMATIONKEYVALUE(sTagname, GSH_REGKEY_PV_NORMAL_STATE, GSH_NONE) + if (strComp(sPVNormalState,GSH_NONE,vbTextCompare) <> 0) then 'if Registry PVNormalState is NOT None + if (strComp(sPVStateText,sPVNormalState,vbTextCompare) <> 0) then + tempReturn = true + end if + end if + end if +GSH_SCADA_DIGITALMULTIPLE_POINT_VARIN_IS_OFFNORMAL = tempReturn +'gsh_log_e("GSH_SCADA_DIGITALMULTIPLE_POINT_VARIN_IS_OFFNORMAL returning >>>" & tempReturn & "<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'SCADA_ANALOGTRIP SHAPE SPECIFIC CODE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_ANALOGTRIP_INIT(oShape) + dim sTagName, sEntityName, sDataValue + sTagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + oShape.objects("txtTagNameAlias").value = GSH_READTAGINFORMATIONKEYVALUE(sTagName, GSH_REGKEY_TAGNAME_ALIAS, sTagName) + oShape.objects("txtTagDescription").value = GSH_READTAGINFORMATIONKEYVALUE(sTagName, GSH_REGKEY_TAGDESCRIPTION, sTagName) + sEntityName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_LOWTRIP) + if strcomp (sEntityName, "", vbtextcompare) = 0 then + oShape.objects("txt_PVLowTripValue").value = " " + else + oShape.objects("txt_PVLowTripValue").value = GSH_FormatPVTextTag(sTagName,oShape.objects("rec_DataStatic").DataValue(GSH_CPENTITY_LOWTRIP & "." & GSH_CPPARAM_LOWTRIP)) + end if + sEntityName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY_HIGHTRIP) + if strcomp (sEntityName, "", vbtextcompare) = 0 then + oShape.objects("txt_PVHighTripValue").value = " " + else + oShape.objects("txt_PVHighTripValue").value = GSH_FormatPVTextTag(sTagName,oShape.objects("rec_DataStatic").DataValue(GSH_CPENTITY_HIGHTRIP & "." & GSH_CPPARAM_HIGHTRIP)) + end if +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALCOMPOSITE_SCADA_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' Jun 13, 2007, Added by CL to handle Scada_MF_DigitalComposite shape +' 09/14/07 hide OP combobox when the shape is not in principle focus to solve problem +' that the combox or alp entry was open, +' but no entry made, then other tag is selected as focus tag. (CL) +sub GSH_GROUPDIGITALCOMPOSITE_SCADA_ONUPDATE(oShape, flag) +on error resume next +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITE_SCADA_ONUPDATE shapeID = "& oShape.id) + If flag <= 1 then + + GSH_GROUPDIGITALCOMPOSITESHOWNORMAL(oShape) + oShape.objects("txt_statusmessage").style.visibility = GSH_HIDDEN 'Hide RedTag + + 'Alarming + if GSH_SCADA_ISALARMINGDISABLED(oShape.objects("rec_DataScript")) Then + 'Alarm is Disabled + call GSH_GROUPDIGITALCOMPOSITESHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"), GSH_CPENTITY),oShape) + End If + + dim sPVStateTxt + sPVStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + + 'PV Data Check + If GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"), true, false, false) Then + call GSH_GROUPDIGITALCOMPOSITESHOWBADPV(oShape) + else + oShape.objects("txt_DigitalValue").value = sPVStateTxt + End If + + 'Set the focus + 'call GSH_GROUPDIGITALCOMPOSITESETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("cmb_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + + End If + + If flag = 0 then + 'Status message + dim val_redTag + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + end if + + 'Display OP Value + dim sOPStateTxt + + sOPStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_OP, oShape.objects("rec_DataScript")) + oShape.objects("txt_OPValue").value = sOPStateTxt + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + End If + +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDIGITALCOMPOSITE_SCADA_P6A_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +'12/18/2007: Added to handle SCADA_DC_P6A shape. Works with SCADA_MF_DigitalComposit shape as well (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPDIGITALCOMPOSITE_SCADA_P6A_ONUPDATE(oShape, flag) +on error resume next +'gsh_log_s("GSH_GROUPDIGITALCOMPOSITE_SCADA_P6A_ONUPDATE shapeID = "& oShape.id) +' If flag <= 1 then + + GSH_GROUPDIGITALCOMPOSITESHOWNORMAL(oShape) + + 'Find value of GSH_CPPARAM_PV_IP1 + dim input1_val, input2_val, expected_input1_val, expected_input2_val, sPVStateTxt + + sPVStateTxt = GSH_NONE + input1_val = Cint(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_IP1)) + input2_val = Cint(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_IP2)) + + expected_input1_val = Cint(oShape.GetCustomProperty(GSH_CPVALUE,GSH_EXPECTEDVAL1)) + expected_input2_val = Cint(oShape.GetCustomProperty(GSH_CPVALUE,GSH_EXPECTEDVAL2)) + + if((input1_val=expected_input1_val) And (input2_val=expected_input2_val)) then + sPVStateTxt = GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),"BothOn","") + elseif ((input1_val=expected_input1_val) And (input2_val<>expected_input2_val)) then + sPVStateTxt = GSH_GET_STATE_TEXT_P6A(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), oShape.GetCustomProperty(GSH_CPPARAMETER,GSH_CPPARAM_IP1)&"_"&input1_val) + alarmPara=GSH_CPPARAM_IP1 + elseif ((input1_val<>expected_input1_val) And (input2_val=expected_input2_val)) then + sPVStateTxt = GSH_GET_STATE_TEXT_P6A(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), oShape.GetCustomProperty(GSH_CPPARAMETER,GSH_CPPARAM_IP2)&"_"&input2_val) + alarmPara=GSH_CPPARAM_IP2 + else + sPVStateTxt = GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),"BothOff","") + end if + + oShape.objects("txt_DigitalValue").value = sPVStateTxt + + 'Alarming + if GSH_SCADA_ISALARMINGDISABLED(oShape.objects("rec_DataScript")) Then + 'Alarm is Disabled + call GSH_GROUPDIGITALCOMPOSITESHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"), GSH_CPENTITY, alarmPara),oShape) + End If + + 'Set the focus + 'call GSH_GROUPDIGITALCOMPOSITESETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus - To be checked with Rich if need offnormal checking +' if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then +' +' oShape.objects("cmb_OPValue").style.visibility = GSH_HIDDEN +' oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN +' +' 'Added new to handle SCADA_DC_P6A shape with separate parameter checking for offnormal. +' +' if GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, sPVStateTxt) then +' if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then +' oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL +' else +' oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL +' end if +' end if +' end if + +' End If + +' If flag = 0 then + + 'Display OP Value + dim sOPStateTxt + + 'Do not look into the registry b/c states set in the registry works for Fx_x parameter, not OP states + sOPStateTxt = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP) +' sOPStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_OP, oShape.objects("rec_DataScript")) + oShape.objects("txt_OPValue").value = sOPStateTxt + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) +' End If +'gsh_log_e("GSH_GROUPDIGITALCOMPOSITE_SCADA_P6A_ONUPDATE") +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GET_STATE_TEXT_P6A +' +' +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GET_STATE_TEXT_P6A(sTagname, sParaname) +'gsh_log_s("GSH_GET_STATE_TEXT_P6A parameter_name = "&sParaname &"sTagname="&sTagname) + + dim sStateTxt + sStateTxt = GSH_EMPTYSTRING + if strcomp (sParaname, GSH_F1_0, vbtextcompare) = 0 then + sStateTxt = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "STATETXT(0)", GSH_EMPTYSTRING) + elseif strcomp (sParaname, GSH_F1_1, vbtextcompare) = 0 then + sStateTxt = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "STATETXT(1)", GSH_EMPTYSTRING) + elseif strcomp (sParaname, GSH_F2_0, vbtextcompare) = 0 then + sStateTxt = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "STATETXT(2)", GSH_EMPTYSTRING) + elseif strcomp (sParaname, GSH_F2_1, vbtextcompare) = 0 then + sStateTxt = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "STATETXT(3)", GSH_EMPTYSTRING) + elseif strcomp (sParaname, GSH_F3_0, vbtextcompare) = 0 then + sStateTxt = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "STATETXT(4)", GSH_EMPTYSTRING) + elseif strcomp (sParaname, GSH_F3_1, vbtextcompare) = 0 then + sStateTxt = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "STATETXT(5)", GSH_EMPTYSTRING) + elseif strcomp (sParaname, GSH_F4_0, vbtextcompare) = 0 then + sStateTxt = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "STATETXT(6)", GSH_EMPTYSTRING) + elseif strcomp (sParaname, GSH_F4_1, vbtextcompare) = 0 then + sStateTxt = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "STATETXT(7)", GSH_EMPTYSTRING) + end if + + + GSH_GET_STATE_TEXT_P6A = sStateTxt +'gsh_log_e("GSH_GET_STATE_TEXT_P6A sStateTxt="&sStateTxt) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPDO_SCADA_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' Jun 13, 2007, Added by CL to handle Scada_MF_DigitalComposite shape +' 09/14/07 hide OP combobox when the shape is not in principle focus to solve problem +' that the combox or alp entry was open, +' but no entry made, then other tag is selected as focus tag. (CL) +sub GSH_GROUPDO_SCADA_ONUPDATE(oShape, flag) +on error resume next +'gsh_log_s("GSH_GROUPDO_SCADA_ONUPDATE shapeID = "& oShape.id) + If flag <= 1 then + + GSH_GROUPDIGITALCOMPOSITESHOWNORMAL(oShape) + oShape.objects("txt_statusmessage").style.visibility = GSH_HIDDEN 'Hide RedTag + + 'Set the focus + 'call GSH_GROUPDIGITALCOMPOSITESETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("cmb_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + + End If + + If flag = 0 then + 'Status message + dim val_redTag + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + end if + + 'Display OP Value + dim sOPStateTxt + + sOPStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_OP, oShape.objects("rec_DataScript")) + oShape.objects("txt_OPValue").value = sOPStateTxt + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + End If +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_ANALOGINDICATOR_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/04/07 Added flag parameter to execute only focus status update or all +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_ANALOGINDICATOR_ONUPDATE (oShape, flag) +'GSH_LOG_S ("GSH_C200_ANALOGINDICATOR_ONUPDATE oShape" & oShape.id) +on error resume next + +If flag = 0 then + call GSH_ANALOGINDICATORSHOWNORMAL(oShape) + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSSANALOGINDICATORDISABLEDALARM + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +End If + +If flag <=1 then + 'Set the focus + 'call GSH_ANALOGINDICATORSETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If + + +If flag = 0 then + 'Bad Data Check + If GSH_C200_ANALOG_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + oShape.objects("txt_PVvalue").value = "---" + Else + oShape.objects("txt_PVvalue").value = GSH_FormatPVText(oShape,oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV)) + End If +End If +'GSH_LOG_E ("GSH_C200_ANALOGINDICATOR_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_NUMERICINDICATOR_ALARMS_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/04/07 Added flag parameter to execute only focus status update or all +' Author: Didi Ekaette August 2, 2007 +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_NUMERICINDICATOR_ALARMS_ONUPDATE (oShape, flag) +'GSH_LOG_S ("GSH_C200_NUMERICINDICATOR_ALARMS_ONUPDATE oShape" & oShape.id) +on error resume next +If flag = 0 then + call GSH_ANALOGINDICATORSHOWNORMAL(oShape) + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSSANALOGINDICATORDISABLEDALARM + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If +End If + +If flag <=1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Remove Check for Off Normal +End If + + +If flag = 0 then + 'Bad Data Check + If GSH_C200_ANALOG_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + oShape.objects("txt_PVvalue").value = "---" + Else + oShape.objects("txt_PVvalue").value = GSH_FormatPVText(oShape,oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV)) + End If +End If +'GSH_LOG_E ("GSH_C200_NUMERICINDICATOR_ALARMS_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_ANALOGOUTPUTINDICATORALARMS_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/04/07 Added flag parameter to execute only focus status update or all +'Author: Didi Ekaette July 30,2007 +'Jan102008: Remove offnormal checking (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_ANALOGOUTPUTINDICATORALARMS_ONUPDATE (oShape, flag) +'GSH_LOG_S ("GSH_C200_ANALOGOUTPUTINDICATORALARMS_ONUPDATE oShape" & oShape.id) +on error resume next + +If flag <= 1 then + + call GSH_SHOWNOALARM(oShape) + 'call GSH_SETREGULATORYCONTROLINDICATORMODE(oShape.objects("rec_DataScript")) + + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSSANALOGINDICATORDISABLEDALARM + else +' gsh_log("C200_AO alarm code = " &GSH_GETHIGHESTALARMPRIORITY_OP(oShape.objects("rec_DataScript"))) + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + +End If + +If flag = 0 then + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) +End If + +'GSH_LOG_E ("GSH_C200_ANALOGOUTPUTINDICATORALARMS_ONUPDATE") +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_ANALOGOUTPUTINDICATORALARMS_W_OFFNORMAL_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/04/07 Added flag parameter to execute only focus status update or all +'Author: Didi Ekaette July 30,2007 +'Jan102008: Renamed from GSH_C200_ANALOGOUTPUTINDICATORALARMS_ONUPDATE (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_ANALOGOUTPUTINDICATORALARMS_W_OFFNORMAL_ONUPDATE (oShape, flag) +'GSH_LOG_S ("GSH_C200_ANALOGOUTPUTINDICATORALARMS_W_OFFNORMAL_ONUPDATE oShape" & oShape.id) +on error resume next + +If flag <= 1 then + + call GSH_SHOWNOALARM(oShape) + call GSH_SETREGULATORYCONTROLINDICATORMODE(oShape.objects("rec_DataScript")) + + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSSANALOGINDICATORDISABLEDALARM + else +' gsh_log("C200_AO alarm code = " &GSH_GETHIGHESTALARMPRIORITY_OP(oShape.objects("rec_DataScript"))) + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_ANALOG_MODE_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If + +If flag = 0 then + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) +End If + +'GSH_LOG_E ("GSH_C200_ANALOGOUTPUTINDICATORALARMS_W_OFFNORMAL_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_REGCTLINDICATOR_ONUPDATE''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_REGCTLINDICATOR_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_REGCTLINDICATOR_ONUPDATE oShape=" & oShape.id) + +On Error Resume Next + +' gsh_log("Flag = " &flag &"Alarm Code = " &GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY)) + +' gsh_log("Alarm Code GEN function = " &GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_PROCESSVALUE)) + If flag = 0 then + call GSH_REGULATORYCONTROLINDICATORSHOWNORMAL(oShape) + + call GSH_SETREGULATORYCONTROLINDICATORMODE(oShape.objects("rec_DataScript")) + + 'Check the points alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_REGULATORYCONTROLINDICATORSHOWDISABLEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + + 'This might give out highest alarm (including returning alarm) + 'call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + End If + + If flag <= 1 then + + 'Check Focus + call GSH_SETREGULATORYCONTROLINDICATORFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + + If flag = 0 then + + 'PV Data Check + If GSH_C200_ANALOG_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_GROUPREGULATORYCONTROLSHOWBADPV(oShape) + else + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + End If + + 'Set Mode + oShape.objects("txt_mode").value = Left(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE), 1) + + 'Check the point ramping + Select Case GSH_GET_POINT_RAMPING_VALUE(oShape.objects("rec_DataScript")) + Case GSH_RAMPING_RUN + call GSH_REGULATORYCONTROLINDICATORSHOW_RAMP(oShape,Left(GSH_RAMPING_RUN,1)) + Case GSH_RAMPING_PRESET + call GSH_REGULATORYCONTROLINDICATORSHOW_RAMP(oShape,Left(GSH_RAMPING_PRESET,1)) + Case else + 'do nothing because visibility is hidden by default and in Show Normal + end Select + 'Check the point Windup + dim sWindupStatus + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")),oShape) + + End If +'gsh_log_e("GSH_C200_REGCTLINDICATOR_ONUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_AUTOMAN_ONUPDATE''''''''''''''''''''''''' +'Parameters: oShape: Shape +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/04/07 Added flag parameter to execute only focus status update or all +' 06/12/07 Removed initman check because it is redundant to Windup = HILO +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_AUTOMAN_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_AUTOMAN_ONUPDATE oShape=" & oShape.id) +On Error Resume Next +If flag = 0 then + call GSH_REGULATORYCONTROLINDICATORSHOWNORMAL(oShape) + 'Check the points alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_REGULATORYCONTROLINDICATORSHOWDISABLEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +End If +If flag <= 1 then + 'call GSH_SETREGULATORYCONTROLINDICATORFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS (oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_AUTOMAN_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If +If flag = 0 then + oShape.objects("txt_OPValue").value = formatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) + oShape.objects("txt_mode").value = Left(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE), 1) + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")),oShape) +End If +'gsh_log_e("GSH_C200_AUTOMAN_ONUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'TODO: hardcoded to fix. +'Function: Get Highest Alarm Priority Parameter''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = data bound object within an HCS shape +' paraName - Script Data parameter Name +'Returns: Alarm Code = GSH_ACKLOW, GSH_ACKHIGH, GSH_ACKEMERG, +' GSH_UNACKLOW, GSH_UNACKHIGH, GSH_UNACKEMERG, GSH_NOALARMCODE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_GETHIGHESTALARMPRIORITYPROPERTY(oAlarmWordBoundObject) +''gsh_log_s("GSH_GETHIGHESTALARMPRIORITYPROPERTY oAlarmWordBoundObject=" & oAlarmWordBoundObject.id) +on error resume next +dim alarmword, alarmunack +' gsh_log ("oAlarmWordBoundObject.alarm = " &oAlarmWordBoundObject.alarm) + alarmword = (oAlarmWordBoundObject.alarm) and 1023 + alarmunack = (oAlarmWordBoundObject.alarm) and 2048 +' gsh_log "alarmword = " & hex(alarmword) & ", alarmunack = " & hex(alarmunack) '&h30, &h20, &h10 + + Dim iAlarmCode, iAlarmSeverity, iUnackAlarmExists + '0 = no, 1 = low, 2= high, 3= urgent + iAlarmSeverity = (alarmword/16) + if alarmunack = 2048 then + iUnackAlarmExists = 0 + else + iUnackAlarmExists = 1 + end if + iAlarmCode = GSH_NOALARMCODE + + select case(2*iAlarmSeverity+iUnackAlarmExists) + case 0 + iAlarmCode = GSH_NOALARMCODE + case 1 + iAlarmCode = GSH_NOALARMCODE + case 2 + iAlarmCode = GSH_ACKLOW + case 3 + iAlarmCode = GSH_UNACKLOW + case 4 + iAlarmCode = GSH_ACKHIGH + case 5 + iAlarmCode = GSH_UNACKHIGH + case 6 + iAlarmCode = GSH_ACKEMERG + case 7 + iAlarmCode = GSH_UNACKEMERG + case else +' gsh_log "GSH_GETHIGHESTALARMPRIORITYPROPERTY error Alarm Severity = " & iAlarmSeverity & ", Unacknowledged Alarm = " & iUnackAlarmExists + end select + 'return alarm code + GSH_GETHIGHESTALARMPRIORITYPROPERTY = iAlarmCode +'gsh_log "GSH_GETHIGHESTALARMPRIORITYPROPERTY info Alarm Severity = " & iAlarmSeverity & ", Unacknowledged Alarm = " & iUnackAlarmExists +'gsh_log_e("GSH_GETHIGHESTALARMPRIORITYPROPERTY returing " & iAlarmCode) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_DIGITALINDICATOR_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 06/06/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/13/07 Add GSH_GETHIGHESTALARMPRIORITYPROPERTY to the onupdate and +' added two new script data references: TOTALALARMS and unackalarmexists as well as +' a ConAlpAlarmValue object +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_DIGITALINDICATOR_ONUPDATE (oShape, flag) 'This version displays the StateTxt from the Registry +on error resume next + If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")), oShape) + End If + 'No Bad Data Check + oShape.objects("txt_PVvalue").value = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + 'gsh_log "GSH_C200_DIGITALINDICATOR_ONUPDATE alarmpriority"&GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) + End If + If flag <= 1 then + 'Set the focus + 'call GSH_DIGITALINDICATORSETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, oShape.objects("txt_PVvalue").value) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_DIGITALOUTPUTINDICATORALARMS_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 06/06/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/13/07 Add GSH_GETHIGHESTALARMPRIORITYPROPERTY to the onupdate and +' added two new script data references: TOTALALARMS and unackalarmexists as well as +' a ConAlpAlarmValue object +'Author: Didi Ekaette July 31, 2007 +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_DIGITALOUTPUTINDICATORALARMS_ONUPDATE (oShape, flag) 'This version displays the StateTxt from the Registry +on error resume next + If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + 'call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")), oShape) + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITY_OP(oShape.objects("rec_DataScript")),oShape) + End If + 'No Bad Data Check + 'oShape.objects("txt_PVvalue").value = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + oShape.objects("txt_OPvalue").value = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_OP, oShape.objects("rec_DataScript")) + + 'gsh_log "GSH_C200_DIGITALINDICATOR_ONUPDATE alarmpriority"&GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) + End If + If flag <= 1 then + 'Set the focus + 'call GSH_DIGITALINDICATORSETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_OP_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, oShape.objects("txt_OPvalue").value) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If +end sub + +'GSH_DIGITAL_GETSTATE is replaced by GSH_SCADA_DIGITAL_GETSTATE and GSH_C200_DIGITAL_GETSTATE on May 4, 2007 --- Why???? The two functions are the same + + +'These 3 functions below will be replaced by GSH_DIGITAL_GETSTATE when refactoring +function GSH_SCADA_DIGITAL_GETSTATE (sTagname, sPointName, sParameterName, oDataBoundSDObj) +'gsh_log_s "GSH_SCADA_DIGITAL_GETSTATE <<<<<<<<< sTagname="&sTagname&", sPointName="&sPointName&", sParameterName="&sParameterName&",oDataBoundSDObj ="&oDataBoundSDObj.id +dim nParameterNumericValue, sStateText + nParameterNumericValue = oDataBoundSDObj.DataValue(sPointName&"."&sParameterName) + sStateText = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "STATETXT("&nParameterNumericValue&")", GSH_NONE) + GSH_SCADA_DIGITAL_GETSTATE = sStateText +'gsh_log_e "GSH_SCADA_DIGITAL_GETSTATE returns >>>>>>>>" &sStateText +end function + +function GSH_C200_DIGITAL_GETSTATE (sTagname, sPointName, sParameterName, oDataBoundSDObj) +'gsh_log_s "GSH_C200_DIGITAL_GETSTATE <<<<<<<<< sTagname="&sTagname&", sPointName="&sPointName&", sParameterName="&sParameterName&",oDataBoundSDObj ="&oDataBoundSDObj.id +dim nParameterNumericValue, sStateText + nParameterNumericValue = oDataBoundSDObj.DataValue(sPointName&"."&sParameterName) +'gsh_log "GSH_C200_DIGITAL_GETSTATE nParameterNumericValue = " & nParameterNumericValue + sStateText = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "STATETXT("&nParameterNumericValue&")", GSH_NONE) + GSH_C200_DIGITAL_GETSTATE = sStateText +'gsh_log_e "GSH_C200_DIGITAL_GETSTATE returns >>>>>>>>" &sStateText +end function + +function GSH_FP_C200_DIGITAL_GETSTATE (sTagname, sPointName, sParameterName, oDataBoundSDObj, sFuncBlock) +'gsh_log_s "GSH_FP_C200_DIGITAL_GETSTATE <<<<<<<<< sTagname="&sTagname&", sPointName="&sPointName&", sParameterName="&sParameterName&",oDataBoundSDObj ="&oDataBoundSDObj.id +dim nParameterNumericValue, sStateText + nParameterNumericValue = oDataBoundSDObj.DataValue(sPointName&"."&sParameterName) + sStateText = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "STATETXT("&nParameterNumericValue&")", GSH_NONE) + GSH_FP_C200_DIGITAL_GETSTATE = sStateText +'gsh_log_e "GSH_FP_C200_DIGITAL_GETSTATE returns >>>>>>>>" &sStateText +end function + +function GSH_TPS_DIGITAL_GETSTATE (sTagname, sPointName, sParameterName, oDataBoundSDObj) +'gsh_log_s "GSH_TPS_DIGITAL_GETSTATE <<<<<<<<< sTagname="&sTagname&", sPointName="&sPointName&", sParameterName="&sParameterName&",oDataBoundSDObj ="&oDataBoundSDObj.id +dim sParameterTextValue + sParameterTextValue = oDataBoundSDObj.DataValue(sPointName&"."&sParameterName) +' sStateText = GSH_READTAGINFORMATIONKEYVALUE(sTagname, "STATETXT("&nParameterNumericValue&")", "MOVING") + GSH_TPS_DIGITAL_GETSTATE = sParameterTextValue +'gsh_log_e "GSH_TPS_DIGITAL_GETSTATE returns >>>>>>>>" &sStateText +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_DIGITALINDICATOR_NOFORMAT_ONUPDATE'''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_DIGITALINDICATOR_NOFORMAT_ONUPDATE (oShape) +on error resume next +call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + +'Alarming +if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED +else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) +End If + +'Set the focus +call GSH_DIGITALINDICATORSETFOCUS(oShape) + +'Check for Off Normal if not in focus +if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if +end if + +'No Bad Data Check + oShape.objects("txt_PVvalue").value = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV) +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPDIGITALCOMPOSITE_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 06/06/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/14/07 replaced GSH_GETHIGHESTALARMPRIORITYPARAMETER with GSH_GETHIGHESTALARMPRIORITYPROPERTY +' 09/14/07 hide OP combobox when the shape is not in principle focus to solve problem that the combox was open, +' but no entry made, then other tag is selected as focus tag. +' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPDIGITALCOMPOSITE_ONUPDATE(oShape, flag) +on error resume next + + If flag = 0 then + GSH_GROUPDIGITALCOMPOSITESHOWNORMAL(oShape) + oShape.objects("txt_statusmessage").style.visibility = GSH_HIDDEN 'Hide RedTag + + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_GROUPDIGITALCOMPOSITESHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")),oShape) + End If + + 'PV Data Check + If GSH_C200_DIGITALCOMPOSITE_ISDATABAD(oShape.objects("rec_DataScript")) Then + call GSH_GROUPDIGITALCOMPOSITESHOWBADPV(oShape) + else + oShape.objects("txt_DigitalValue").value = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + End If + + End If + + If flag <= 1 then + 'Set the focus + 'call GSH_GROUPDIGITALCOMPOSITESETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + 'hide OP combobox if it was opened + oShape.objects("cmb_OPValue").style.visibility = GSH_HIDDEN + + if GSH_C200_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL, oShape.objects("txt_DigitalValue").value) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + + End If + + If flag = 0 then + 'Status message + dim val_redTag + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + end if + + 'Display OP Value +' sOPStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_OP, oShape.objects("rec_DataScript")) + oShape.objects("txt_OPValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP) + End If +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPDIGITALCOMPOSITE_SM_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 02/19/08 Created to add in Status Message checking +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPDIGITALCOMPOSITE_SM_ONUPDATE(oShape, flag) +on error resume next + + If flag = 0 then + GSH_GROUPDIGITALCOMPOSITESHOWNORMAL(oShape) + oShape.objects("txt_statusmessage").style.visibility = GSH_HIDDEN 'Hide RedTag + + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_GROUPDIGITALCOMPOSITESHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")),oShape) + End If + + 'PV Data Check + If GSH_C200_DIGITALCOMPOSITE_ISDATABAD(oShape.objects("rec_DataScript")) Then + call GSH_GROUPDIGITALCOMPOSITESHOWBADPV(oShape) + else + oShape.objects("txt_DigitalValue").value = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + End If + + End If + + If flag <= 1 then + 'Set the focus + 'call GSH_GROUPDIGITALCOMPOSITESETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + 'hide OP combobox if it was opened + oShape.objects("cmb_OPValue").style.visibility = GSH_HIDDEN + + if GSH_C200_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL, oShape.objects("txt_DigitalValue").value) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + + End If + + If flag = 0 then + 'Status message + dim val_redTag, val_stsMsg, tagName, stsMsgType + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + val_stsMsg = cInt(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG)) + + if strcomp(val_redTag,GSH_ON,vbtextcompare) = 0 then + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + else if (val_stsMsg > 0) then + 'Get custom status messages from registry + tagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + stsMsgType = GSH_READTAGINFORMATIONKEYVALUE(tagName, GSH_REGKEY_STSMSGLIST, "") + if val_stsMsg >0 and stsMsgType <> "" then + message = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & GSH_REGKEY_STATUSMESSAGE &val_stsMsg, "") + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,message) + end if + end if + end if + + 'Display OP Value + sOPStateTxt = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP) + oShape.objects("txt_OPValue").value = sOPStateTxt + 'oShape.objects("txt_OPValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP) + End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_SELXDESC_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 04Mar2008 Created shape for Winz +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_SELXDESC_ONUPDATE (oShape, flag) 'This version displays the SELXDESC parameter +on error resume next + If flag = 0 then + call GSH_REGULATORYCONTROLINDICATORSHOWNORMAL(oShape) + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY), oShape) + End If + 'No Bad Data Check + oShape.objects("txt_PVvalue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"CP_SELXDESC") + oShape.objects("txt_mode").value = Left(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE), 1) + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")),oShape) + End If + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_AUTOMAN_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_MULTIFPREGCTLSPLIT_ONUPDATE''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'06/05/07 Added flag parameter to execute only focus status update or all +'06/06/07 Optimize code, use ShowWindupStatus; modified RedTag code. +' removed initman check code because it's a duplicate of Windup = HILO +' 06/14/07 use GSH_C200_REGCTLSPLIT_POINT_ISOFFNORMAL to check offnormal +' no longer checking PVSOURCE because there is no PV. +' 06/14/07 Changed shape design and function. Therefore removed RedTag, +' Ramp, SP and PV values, use general alarm function +' 06/15/07 remove reference to txt_statusmessage +' 09/14/07 hide OP combobox when the shape is not in principle focus to solve problem that the combox was open, +' but no entry made, then other tag is selected as focus tag. (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_MULTIFPREGCTLSPLIT_ONUPDATE(oShape,flag) +'gsh_log_s "GSH_C200_MULTIFPREGCTLSPLIT_ONUPDATE oShape="&oShape&", flag="&flag +on error resume next +if flag = 0 then + GSH_GROUPREGULATORYCONTROLSHOWNORMAL(oShape) + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +End If +If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) 'replaces GSH_GROUPREGULATORYCONTROLSETFOCUS(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_Valve1").style.visibility = GSH_HIDDEN + oShape.objects("alp_Valve2").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_C200_REGCTLSPLIT_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If +if flag = 0 then + 'Display OP Value + oShape.objects("txt_Valve1").value = formatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_VLV1),GSH_OUTPUTINDICATORDECIMALS) + oShape.objects("txt_Valve2").value = formatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_VLV2),GSH_OUTPUTINDICATORDECIMALS) + 'ModAttr Data Check + If (GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODATTR) = GSH_MODE_PROGRAM) Then + oShape.objects("txt_ModeValue").value = GSH_MODE_PROGRAM_TEXT & GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + Else + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + end if + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")),oShape) + 'Initman check was redundant to Windup = HILO, it was removed. +End If +'gsh_log_e "GSH_C200_MULTIFPREGCTLSPLIT_ONUPDATE" +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MULTIFPREGCTLGAP_SHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: ' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MULTIFPREGCTLGAP_SHOWNORMAL(oShape) +'gsh_log_s("GSH_MULTIFPREGCTLGAP_SHOWNORMAL oShape=" & oShape.id) +on error resume next +Dim shapePoint, tagKeyword, tagName + 'Disable Alarms + call GSH_SHOWNOALARM(oShape) + 'Show values + oShape.objects("outline").styleClass = GSH_CSSGROUPREGULATORYCONTROLNORMAL + oShape.objects("outline").style.visibility = GSH_VISIBLE + 'Read Values from Registry + shapePoint = GSH_GETSHAPETAG(oShape) + tagName = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGNAME_ALIAS, shapePoint) + tagKeyword = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_KEYWORD, defaultString) + 'Assign values to textboxes + oShape.objects("txt_tagname").value = tagName + oShape.objects("txt_keyword").value = tagKeyword +'gsh_log_e("GSH_MULTIFPREGCTLGAP_SHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_MULTIFPREGCTLGAP_ONUPDATE''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/05/07 Added flag parameter to execute only focus status update or all +' 09/14/07 hide OP combobox when the shape is not in principle focus to solve +' problem that the combox or alp entry was open, +' but no entry made, then other tag is selected as focus tag. (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_MULTIFPREGCTLGAP_ONUPDATE(oShape, flag) +on error resume next + if flag = 0 then + GSH_MULTIFPREGCTLGAP_SHOWNORMAL(oShape) + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + End If + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) 'replaces GSH_GROUPREGULATORYCONTROLSETFOCUS(oShape) + + 'ModAttr Data Check + If (GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODATTR) = GSH_MODE_PROGRAM) Then + oShape.objects("txt_ModeValue").value = GSH_MODE_PROGRAM_TEXT & GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + Else + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + end if + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_SPHighValue").style.visibility = GSH_HIDDEN + oShape.objects("alp_SPLowValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + + + End If + if flag = 0 then + 'PV Data Check + If GSH_C200_REGCTL_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_GROUPREGULATORYCONTROLSHOWBADPV(oShape) + else + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + End If + + if not((oShape.objects("rec_DataScript")).isNAN(GSH_CPENTITY &"." &GSH_CPPARAM_SPHIGH)) then + 'Display SP High or Low values (if any is configured for the point) + oShape.objects("txt_SPHighValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SPHIGH)) + else + call GSH_GROUPREGULATORYCONTROLSHOWBADSPHIGH(oShape) + end if + + if not((oShape.objects("rec_DataScript")).isNAN(GSH_CPENTITY &"." &GSH_CPPARAM_SPLOW)) then + oShape.objects("txt_SPLowValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SPLOW)) + else + call GSH_GROUPREGULATORYCONTROLSHOWBADSPLOW(oShape) + end if + End If +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_MULTIFPREGCTLGAP_DACA_ONUPDATE''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'08/31/07 Create function to handle the C200_MF_GAP_DACA shape. +'09/04/07 Add check for SPLow and SPHigh for NAN value, +' If it is NAN, show "---". +' Take out the check for empty SPHI and SP low parameter +' b/c these causes invalid reference on server (CL) +' 09/14/07 hide OP combobox when the shape is not in principle focus to solve problem that the alp_text was open, +' but no entry made, then other tag is selected as focus tag. (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_MULTIFPREGCTLGAP_DACA_ONUPDATE(oShape, flag) +on error resume next +'gsh_log_s("GSH_C200_MULTIFPREGCTLGAP_DACA_ONUPDATE oShape="&oShape.id) + if flag = 0 then + GSH_MULTIFPREGCTLGAP_SHOWNORMAL(oShape) + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + End If + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) 'replaces GSH_GROUPREGULATORYCONTROLSETFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_SPHighValue").style.visibility = GSH_HIDDEN + oShape.objects("alp_SPLowValue").style.visibility = GSH_HIDDEN + + if GSH_C200_REGCTLGAP_DACA_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + + End If + if flag = 0 then + 'PV Data Check + If GSH_C200_REGCTL_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_GROUPREGULATORYCONTROLSHOWBADPV(oShape) + else + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + End If + + + if not((oShape.objects("rec_DataScript")).isNAN(GSH_CPENTITY &"." &GSH_CPPARAM_SPHIGH)) then + 'Display SP High or Low values (if any is configured for the point) + oShape.objects("txt_SPHighValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SPHIGH)) + else + call GSH_GROUPREGULATORYCONTROLSHOWBADSPHIGH(oShape) + end if + + if not((oShape.objects("rec_DataScript")).isNAN(GSH_CPENTITY &"." &GSH_CPPARAM_SPLOW)) then + oShape.objects("txt_SPLowValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SPLOW)) + else + call GSH_GROUPREGULATORYCONTROLSHOWBADSPLOW(oShape) + end if + + End If +'gsh_log_e("GSH_C200_MULTIFPREGCTLGAP_DACA_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MULTIFPHIDEENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MULTIFPHIDEENTRY(ObjID) +'gsh_log_s("GSH_MULTIFPHIDEENTRY ObjID=" & ObjID.id ) + window.clearInterval(GSH_GroupTimerId) + ObjID.style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_MULTIFPHIDEENTRY") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPMULTIFPSHOWENTRY'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = Shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MULTIFPSHOWENTRY(ObjID) +'gsh_log_s("GSH_MULTIFPSHOWENTRY ObjID=" & ObjID.id) + ObjID.style.visibility = GSH_VISIBLE + window.clearInterval(GSH_GroupTimerId) + GSH_GroupTimerId = window.setInterval("call GSH_MULTIFPHIDEENTRY(" & ObjID.id & ")", GSH_GroupTimeout * 1000) +' page.all(ObjID.id).focus + +'gsh_log_e("GSH_MULTIFPSHOWENTRY >>>>>>>>>>>"&"call GSH_MULTIFPHIDEENTRY(" & ObjID.id & ")") +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE'''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'06/05/07 Added flag parameter to execute only focus status update or all +'04Jan08 Revised normal outline - JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(oShape, flag) +on error resume next +if flag = 0 then + GSH_GROUPREGULATORYCONTROLSHOWNORMAL(oShape) + oShape.objects("txt_statusmessage").style.visibility = GSH_HIDDEN 'Hide RedTag + + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +End If + +if flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) 'replaces GSH_GROUPREGULATORYCONTROLSETFOCUS(oShape) + + 'Check for Off Normal and hide text entry and combobox if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_SPValue").style.visibility = GSH_HIDDEN + oShape.objects("alp_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If + +if flag = 0 then + 'PV Data Check + If GSH_C200_REGCTL_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_GROUPREGULATORYCONTROLSHOWBADPV(oShape) + else + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + End If + + 'Display OP Value + 'oShape.objects("txt_OPValue").value = formatNumber(alp_OPValue.value,GSH_OUTPUTINDICATORDECIMALS) + oShape.objects("txt_OPValue").value = FormatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS,-2,0,0) + + 'Display SP Value + 'oShape.objects("txt_SPValue").value = GSH_FormatPVText(oShape,alp_SPValue.value) + oShape.objects("txt_SPValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SP)) + + 'ModAttr Data Check + If (GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODATTR) = GSH_MODE_PROGRAM) Then + oShape.objects("txt_ModeValue").value = GSH_MODE_PROGRAM_TEXT & GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + Else + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + end if + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + + 'Status message + dim val_redTag + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if strcomp(val_redTag,GSH_ON,vbtextcompare) = 0 then + oShape.objects("txt_statusmessage") = GSH_REDTAG_TEXT + oShape.objects("txt_statusmessage").style.visibility = GSH_VISIBLE + end if + 'Set Ramping + Select case GSH_GET_POINT_RAMPING_VALUE(oShape.objects("rec_DataScript")) + Case GSH_RAMPING_RUN + call GSH_GROUPREGULATORYCONTROLSHOW_RAMP(oShape,Left(GSH_RAMPING_RUN,1)) + Case GSH_RAMPING_PRESET + call GSH_GROUPREGULATORYCONTROLSHOW_RAMP(oShape,Left(GSH_RAMPING_PRESET,1)) + Case else + 'do nothing because visibility is hidden by default and in Show Normal + end select +End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPREGULATORYCONTROL_SM_ONUPDATE'''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 02/19/08 Created from GROUPREGULATORYCONTROL for StatusMessage addition +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPREGULATORYCONTROL_SM_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_GROUPREGULATORYCONTROL_SM_ONUPDATE oShape="&oShape.id& ", flag = "&flag) +on error resume next +if flag = 0 then + GSH_GROUPREGULATORYCONTROLSHOWNORMAL(oShape) + oShape.objects("txt_statusmessage").style.visibility = GSH_HIDDEN 'Hide RedTag + + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +End If + +if flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) 'replaces GSH_GROUPREGULATORYCONTROLSETFOCUS(oShape) + + 'Check for Off Normal and hide text entry and combobox if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_SPValue").style.visibility = GSH_HIDDEN + oShape.objects("alp_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If + +'if flag = 0 then + 'PV Data Check + If GSH_C200_REGCTL_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_GROUPREGULATORYCONTROLSHOWBADPV(oShape) + else + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + End If + + 'Display OP Value + 'oShape.objects("txt_OPValue").value = formatNumber(alp_OPValue.value,GSH_OUTPUTINDICATORDECIMALS) + oShape.objects("txt_OPValue").value = FormatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS,-2,0,0) + + 'Display SP Value + 'oShape.objects("txt_SPValue").value = GSH_FormatPVText(oShape,alp_SPValue.value) + oShape.objects("txt_SPValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SP)) + + 'ModAttr Data Check + If (GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODATTR) = GSH_MODE_PROGRAM) Then + oShape.objects("txt_ModeValue").value = GSH_MODE_PROGRAM_TEXT & GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + Else + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + end if + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + + 'RedTag and Status Message + dim val_redTag, val_stsMsg, tagName, stsMsgType, numOfMessage + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + val_stsMsg = cInt(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG)) + + if strcomp(val_redTag,GSH_ON,vbtextcompare) = 0 then + oShape.objects("txt_statusmessage") = GSH_REDTAG_TEXT + oShape.objects("txt_statusmessage").style.visibility = GSH_VISIBLE +' gsh_log "val_redTag = " & val_redTag + else if (val_stsMsg > 0) then + 'Get custom status messages from registry + tagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + stsMsgType = GSH_READTAGINFORMATIONKEYVALUE(tagName, GSH_REGKEY_STSMSGLIST, "") + numOfMessage = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & "NoOfMessages", "0") +' gsh_log "numOfMessage = " & numOfMessage + + if val_stsMsg >0 and val_stsMsg <=numOfMessage then + message = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & GSH_REGKEY_STATUSMESSAGE &val_stsMsg, "") + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,message) + end if + end if + + 'Set Ramping + Select case GSH_GET_POINT_RAMPING_VALUE(oShape.objects("rec_DataScript")) + Case GSH_RAMPING_RUN + call GSH_GROUPREGULATORYCONTROLSHOW_RAMP(oShape,Left(GSH_RAMPING_RUN,1)) + Case GSH_RAMPING_PRESET + call GSH_GROUPREGULATORYCONTROLSHOW_RAMP(oShape,Left(GSH_RAMPING_PRESET,1)) + Case else + 'do nothing because visibility is hidden by default and in Show Normal + end select +End If +'gsh_log_e("GSH_C200_GROUPREGULATORYCONTROL_SM_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPRATIOTRACK_ONUPDATE'''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'08 July 2008 Added for Sasol - JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPRATIOTRACK_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_GROUPRATIOTRACK_ONUPDATE oShape="&oShape.id& ", flag = "&flag) +on error resume next + +if flag = 0 then + GSH_GROUPREGULATORYCONTROLSHOWNORMAL(oShape) + + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +end if + +if flag <=1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) 'replaces GSH_GROUPREGULATORYCONTROLSETFOCUS(oShape) + + 'Hide text entry and combobox if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + oShape.objects("alp_SPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + end if +End If +' +'if flag = 0 then + dim txtFormat + txtFormat = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"CP_RFormat") + numOfDecimals = CInt(Right(txtFormat,1)) + 'PV Data Check + txtIn = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + If (StrComp(txtIn,"1.#QNAN")= 0) or (StrComp(txtIn,"---")= 0) then + tempReturn = GSH_BADPV_TEXT + else + tempReturn = FormatNumber(txtIn, numOfDecimals,-2, 0, 0) + end if + oShape.objects("txt_AnalogValue").value = tempReturn + + 'Display SP Value + txtIn = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SP) + If (StrComp(txtIn,"1.#QNAN")= 0) or (StrComp(txtIn,"---")= 0) then + tempReturn = GSH_BADPV_TEXT + else + tempReturn = FormatNumber(txtIn, numOfDecimals,-2, 0, 0) + end if + oShape.objects("txt_SPValue").value = tempReturn + 'Ratio Mode + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) +'End If +'gsh_log_e("GSH_C200_GROUPRATIOTRACK_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_REGCTLBOX_ONUPDATE'''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'20Feb08 Created new shape for Sasol - JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_REGCTLBOX_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_REGCTLBOX_ONUPDATE oShape="&oShape.id& ", flag = "&flag) +on error resume next +if flag = 0 then + + call GSH_REGCTLBOXSHOWNORMAL(oShape) + + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +End If + +if flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) 'replaces GSH_GROUPREGULATORYCONTROLSETFOCUS(oShape) + + 'Check for Off Normal and hide text entry and combobox if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + if GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If + +if flag = 0 then + 'PV Data Check + If GSH_C200_REGCTL_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_GROUPREGULATORYCONTROLSHOWBADPV(oShape) + else + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + End If + + 'Display OP Value + oShape.objects("txt_OPValue").value = FormatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS,-2,0,0) + + 'Display SP Value + oShape.objects("txt_SPValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SP)) + + 'ModAttr Data Check + If (GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODATTR) = GSH_MODE_PROGRAM) Then + oShape.objects("txt_ModeValue").value = GSH_MODE_PROGRAM_TEXT & GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + Else + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + end if + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + + 'Set Ramping + Select case GSH_GET_POINT_RAMPING_VALUE(oShape.objects("rec_DataScript")) + Case GSH_RAMPING_RUN + call GSH_GROUPREGULATORYCONTROLSHOW_RAMP(oShape,Left(GSH_RAMPING_RUN,1)) + Case GSH_RAMPING_PRESET + call GSH_GROUPREGULATORYCONTROLSHOW_RAMP(oShape,Left(GSH_RAMPING_PRESET,1)) + Case else + 'do nothing because visibility is hidden by default and in Show Normal + end select +End If +'gsh_log_e("GSH_C200_REGCTLBOX_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_REGCTLBOX_ENH_ONUPDATE'''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'21July08 Created new shape for Sasol - JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_REGCTLBOX_ENH_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_REGCTLBOX_ENH_ONUPDATE oShape="&oShape.id& ", flag = "&flag) +on error resume next +if flag = 0 then + + call GSH_REGCTLBOXSHOWNORMAL(oShape) + + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +End If + +if flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) 'replaces GSH_GROUPREGULATORYCONTROLSETFOCUS(oShape) + + 'Check for Off Normal and hide text entry and combobox if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + if GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If + +if flag = 0 then + 'PV Data Check + If GSH_C200_REGCTL_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_GROUPREGULATORYCONTROLSHOWBADPV(oShape) + else + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + End If + + 'Display OP Value + oShape.objects("txt_OPValue").value = FormatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS,-2,0,0) + + 'Display SP Value + oShape.objects("txt_SPValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SP)) + + 'ModAttr Data Check + If (GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODATTR) = GSH_MODE_PROGRAM) Then + oShape.objects("txt_ModeValue").value = GSH_MODE_PROGRAM_TEXT & GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + Else + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + end if + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + +End If +'gsh_log_e("GSH_C200_REGCTLBOX_ENH_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_REGCTLBOXSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: ' oDataBoundObject = subshape name or me, if calling within subshape +'Used in ALL MULITFP Reg Ctl based! +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_REGCTLBOXSHOWNORMAL(oDataBoundObject) +'gsh_log_s("GSH_REGCTLBOXSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim shapePoint, tagName + shapePoint = GSH_GETSHAPETAG(oDataBoundObject) + tagName = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGNAME_ALIAS, shapePoint) + 'Assign values to textboxes + oDataBoundObject.objects("txt_tagname").value = tagName + 'Disable Alarms + call GSH_SHOWNOALARM(oDataBoundObject) + 'Show values + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPREGULATORYCONTROLNORMAL + oDataBoundObject.objects("outline").style.visibility = GSH_VISIBLE + oDataBoundObject.objects("plg_OpLow").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("plg_OpHigh").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_Initialization").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_ramp").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_REGCTLBOXSHOWNORMAL") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_LEVELREGCTLGAP_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/04/07 Added flag parameter to execute only focus status update or all +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_LEVELREGCTLGAP_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_LEVELREGCTLGAP_ONUPDATE oShape="&oShape.id& ", flag = "&flag) +On Error Resume Next +If flag <= 1 then + GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) + + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + else + call GSH_SHOWLEVELALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + + call GSH_LevelIndicatorRegulatoryControlSetFocus(oShape) 'Check Focus + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_LevelIndicatorRegulatoryControlShowOffNormal(oShape) + end if + end if + + 'Check for bad value + If GSH_C200_REGCTL_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + oShape.objects("plg_SPIndicator1").style.pixeltop = cint(GSH_LEVELINDICATOR_SPFLOATPOSITION (oShape,GSH_CPPARAM_SPHIGH)- (oShape.objects("plg_SPIndicator2").style.pixelheight / 2)) + oShape.objects("plg_SPIndicator2").style.pixeltop = cint(GSH_LEVELINDICATOR_SPFLOATPOSITION (oShape,GSH_CPPARAM_SPLOW)- (oShape.objects("plg_SPIndicator1").style.pixelheight / 2)) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), GSH_LEVELINDICATORDECIMALS) + End If + +End If +If flag = 0 then + + 'When SPHigh or SPLow value is Nan -> do not show the marker + if not((oShape.objects("rec_DataScript")).isNAN(GSH_CPENTITY &"." &GSH_CPPARAM_SPHIGH)) then + oShape.objects("plg_SPIndicator1").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_SPIndicator1").style.visibility = GSH_HIDDEN + end if + + if not((oShape.objects("rec_DataScript")).isNAN(GSH_CPENTITY &"." &GSH_CPPARAM_SPLOW)) then + oShape.objects("plg_SPIndicator2").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_SPIndicator2").style.visibility = GSH_HIDDEN + end if + +End If +'gsh_log_e("GSH_C200_LEVELREGCTLGAP_ONUPDATE") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_LEVELREGCTLGAP_DACA_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 08/31/07 Function to handle LevelGap_data shape. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_LEVELREGCTLGAP_DACA_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_LEVELREGCTLGAP_DACA_ONUPDATE oShape="&oShape.id& ", flag = "&flag) +On Error Resume Next +If flag <= 1 then + GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) + + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + else + call GSH_SHOWLEVELALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +'End If +'If flag <= 1 then + call GSH_LevelIndicatorRegulatoryControlSetFocus(oShape) 'Check Focus + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_REGCTLGAP_DACA_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_LevelIndicatorRegulatoryControlShowOffNormal(oShape) + end if + end if + + 'Check for bad value + If GSH_C200_ANALOG_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + oShape.objects("plg_SPIndicator1").style.pixeltop = cint(GSH_LEVELINDICATOR_SPFLOATPOSITION (oShape,GSH_CPPARAM_SPHIGH)- (oShape.objects("plg_SPIndicator2").style.pixelheight / 2)) + oShape.objects("plg_SPIndicator2").style.pixeltop = cint(GSH_LEVELINDICATOR_SPFLOATPOSITION (oShape,GSH_CPPARAM_SPLOW)- (oShape.objects("plg_SPIndicator1").style.pixelheight / 2)) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), GSH_LEVELINDICATORDECIMALS) + End If + +End If +If flag = 0 then + + 'When SPHigh or SPLow value is Nan -> do not show the marker + if not((oShape.objects("rec_DataScript")).isNAN(GSH_CPENTITY &"." &GSH_CPPARAM_SPHIGH)) then + oShape.objects("plg_SPIndicator1").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_SPIndicator1").style.visibility = GSH_HIDDEN + end if + + if not((oShape.objects("rec_DataScript")).isNAN(GSH_CPENTITY &"." &GSH_CPPARAM_SPLOW)) then + oShape.objects("plg_SPIndicator2").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_SPIndicator2").style.visibility = GSH_HIDDEN + end if + +End If +'gsh_log_e("GSH_C200_LEVELREGCTLGAP_DACA_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_LEVELREGCTL_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/04/07 Added flag parameter to execute only focus status update or all +' 06/04/07 Remove Initman because already using ARWOP HILO. +' 06/04/07 Replace Windup select statement with GSH_SHOWWINDUPSTATUS +' 01/14/08 Add the check for alarms in both ctl and fun block when there is alarm (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_LEVELREGCTL_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_LEVELREGCTL_ONUPDATE oShape="&oShape.id& ", flag = "&flag) +On Error Resume Next +If flag <= 1 then + GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + else + call GSH_SHOWLEVELALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + 'call GSH_SHOWLEVELALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +'End If +'If flag <= 1 then + call GSH_LevelIndicatorRegulatoryControlSetFocus(oShape) + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_LevelIndicatorRegulatoryControlShowOffNormal(oShape) + end if + end if + + 'Check for bad value + If GSH_C200_ANALOG_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + call GSH_LevelIndicatorShowSPFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), GSH_LEVELINDICATORDECIMALS) + End If +End If + + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + +'gsh_log_e("GSH_C200_LEVELREGCTL_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_DIGITALOUTPUTINDICATOR_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 06/06/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/09/07 Check for Off Normal not required; Removed. +' GSH_DIGITALOUTPUTINDICATORSETFOCUS(oShape) replaced by GSH_GEN_SETSHAPEFOCUS(oShape) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_DIGITALOUTPUTINDICATOR_ONUPDATE (oShape, flag) +on error resume next + +' gsh_log_s("GSH_C200_DIGITALOUTPUTINDICATOR_ONUPDATE") + If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + 'oShape.objects("shp_focus").style.visibility = GSH_HIDDEN + End If + If flag <= 1 then + 'Alarming not needed + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'No Check for Off Normal required + 'End If + 'If flag = 0 then + 'Display OP Value + Dim sOPStateTxt + + sOPStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_OP, oShape.objects("rec_DataScript")) + + oShape.objects("txt_OPvalue").value = sOPStateTxt + 'oShape.objects("txt_OPvalue").value = oShape.objects("rec_DataScript") + + End If +' gsh_log_e("GSH_C200_DIGITALOUTPUTINDICATOR_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_ANALOGOUTPUTINDICATOR_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/04/07 Added flag parameter to execute only focus status update or all +' 06/12/07 GSH_GEN_SETSHAPEFOCUS replaced GSH_NUMERICINDICATORSETFOCUS +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_ANALOGOUTPUTINDICATOR_ONUPDATE (oShape, flag) +on error resume next +If flag = 0 then + oShape.objects("outline").styleClass = GSH_CSSANALOGOUTPUTINDICATORNORMAL + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) +end if +If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) +end if +End sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_ValveRegulatoryControl_OnUpdate'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/12/07 Removed initman check because it is redundant to Windup = HILO +' 06/12/07 Fixed incorrect display of txt_OPvalue +' 06/12/07 Alarms must use GSH_GETHIGHESTALARMPRIORITY_OP +' 08/08/07 Add: check & show status message flag on status message text. Reference issue #370 (Cuong Ly) +' Fix potential problem of sticky redTag +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_VALVEREGCTL_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_VALVEREGCTL_ONUPDATE oShape=" & oShape.id) + + If flag <= 1 then + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) + call GSH_ValveRegulatoryControlShowNormal(oShape) + Dim OPValue,stsmsg, val_redTag, initMan + OPValue = oShape.objects("ind_OPStem").value + If (OPValue <= 5) then + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else if ( (OPValue > 5) and (OPValue < 95) ) then + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + end if: end if + 'Check the points alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_ValveRegulatoryControlShowDisabledAlarm(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + + 'Assumption: Reg tag and status message are mutual exclusive + 'Status message + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + 'red tag + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) +' else + 'Check status Message +' dim val_stsMsg +' val_stsMsg = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG) +' call GSH_Show_StatusMessageFlag(oShape, val_stsMsg) + end if + + 'End If + + 'If flag <= 1 then + 'Focus + call GSH_ValveRegulatoryControlSetFocus(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if (GSH_C200_ValveREGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL)) then + 'if (GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL)) then + call GSH_ValveRegulatoryControlShowOffNormal(oShape) + 'oShape.objects("focus").styleClass = GSH_CSSValveOutlineBackground + end if + end if + End If + + If flag = 0 then + 'Check the point Windup + dim sWindupStatus + sWindupStatus = GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")) + call GSH_SHOWWINDUPSTATUS(sWindupStatus,oShape) + + 'Make the focus transparent for valves + oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground + End If +'gsh_log_e("GSH_C200_VALVEREGCTL_ONUPDATE") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_VALVEAUTOMAN_OnUpdate'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 02/22/08 Created shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_VALVEAUTOMAN_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_VALVEAUTOMAN_ONUPDATE oShape=" & oShape.id) + + If flag <= 1 then + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) + call GSH_ValveRegulatoryControlShowNormal(oShape) + Dim OPValue,stsmsg, val_redTag, initMan + OPValue = oShape.objects("ind_OPStem").value + If (OPValue <= 5) then + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else if ( (OPValue > 5) and (OPValue < 95) ) then + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + end if: end if + 'Check the points alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_ValveRegulatoryControlShowDisabledAlarm(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + + 'Red Tag + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + 'red tag + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + end if + + 'If flag <= 1 then + 'Focus + call GSH_ValveRegulatoryControlSetFocus(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_REGCTLSPLIT_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + call GSH_ValveRegulatoryControlShowOffNormal(oShape) + end if + end if + End If + + If flag = 0 then + 'Check the point Windup + dim sWindupStatus + sWindupStatus = GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")) + call GSH_SHOWWINDUPSTATUS(sWindupStatus,oShape) + + 'Make the focus transparent for valves + oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground + End If +'gsh_log_e("GSH_C200_VALVEAUTOMAN_ONUPDATE") +end sub +' +' GSH_C200_STATUSMESSAGE_ONUPDATE +' +'10/12/07 - Status Message shape to put on shapes that require status message to be shown +' however, because stsMessage parameter is not available on every points -> they need +' to be manually put on when needed. +' Only apply to Winz at the moment. (CL) +''04/30/08 - Add isNAN checking condition to handle bad value +sub GSH_C200_STATUSMESSAGE_ONUPDATE(oShape) +'gsh_log_s("GSH_C200_STATUSMESSAGE_ONUPDATE oShape=" & oShape.id) + 'Get Status Message value + dim val_stsMsg, tagName, stsMsgType + if not(oShape.objects("txt_statusMessage")).isNAN(GSH_CPENTITY &"." &GSH_CPPARAM_STSMSG) then + val_stsMsg = cInt(GSH_GETENTITYPARAMETERVALUE(oShape.objects("txt_statusMessage"),GSH_CPPARAM_STSMSG)) + else + val_stsMsg = 0 + end if + 'Get custom status messages from registry + tagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + stsMsgType = GSH_READTAGINFORMATIONKEYVALUE(tagName, GSH_REGKEY_STSMSGLIST, "") + call GSH_Show_StatusMessage(oShape, val_stsMsg, stsMsgType) +'gsh_log_e("GSH_C200_STATUSMESSAGE_ONUPDATE oShape=" & oShape.id) +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_Show_StatusMessage'''''''''''''''''''''''''''''''''''''''''' +' stsMsg_flag = 0 => Off (No Message shown) - Default +' stsMsg_flag = 1 => Bypass (shown as Bypass) +' stsMsg_flag = 2 => HandJack (shown as Hand) +' stsMsg_flag = 3 => Isolated (shown as Isolate) +'08/08/07 - Created the sub routine (Cuong Ly) +'10/12/07 - Modified to work with C200_StatusMessage shape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_Show_StatusMessage(oShape, stsMsg_flag, stsMsgType) +'gsh_log_s("GSH_Show_StatusMessage stsMsg_flag = "&stsMsg_flag & " stsMsgType= " &stsMsgType) + dim message, numOfMessage + + numOfMessage = cInt(GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & "NoOfMessages", "0")) + + if stsMsg_flag >0 and stsMsg_flag <=numOfMessage and stsMsgType <> "" then + message = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & GSH_REGKEY_STATUSMESSAGE &stsMsg_flag, "") + oShape.objects("txt_statusmessage").style.visibility = GSH_VISIBLE + oShape.objects("txt_statusmessage").value = message + else + oShape.objects("txt_statusMessage").style.visibility = GSH_HIDDEN + end if +'gsh_log_e("GSH_Show_StatusMessage") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_VALVEDIGITAL_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape handle +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 06/06/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/14/07 replaced GSH_GETHIGHESTALARMPRIORITYPARAMETER with GSH_GETHIGHESTALARMPRIORITYPROPERTY +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_VALVEDIGITAL_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_ValveDigital_OnUpdate oShape=" & oShape.id) +on error resume next + + If flag <= 1 then + Dim nNumericState + nNumericState = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + call GSH_ValveDigitalShowNormal(oShape) + call GSH_C200_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_ValveDigitalShowDisabledAlarm(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")),oShape) + End If + + 'End If + + 'If flag <= 1 then + 'focus + call GSH_ValveDigitalSetFocus(oShape) + 'Check for Off Normal if not in focus + dim sStateTxt: sStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if (GSH_C200_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL, sStateTxt)) then + call GSH_ValveDigitalShowOffNormal(oShape) + 'oShape.objects("focus").styleClass = GSH_CSSValveOutlineBackground + end if + end if + + End If + 'Make the focus transparent for valves + 'oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground + + If flag = 0 then + 'Bad Data Check + If GSH_C200_DIGITALCOMPOSITE_ISDATABAD(oShape.objects("rec_DataScript")) Then + call GSH_ValveDigitalShowBadPV(oShape) + else + oShape.objects("txt_PVvalue").value = sStateTxt + End If + + End If +'gsh_log_e("GSH_C200_VALVEDIGITAL_ONUPDATE oShape") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_VALVEDIGITAL_LM_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape handle +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 08/14/2007 - Create the function to handle ValveDigital_LM shapes with Localman and Interlock indicators +' Reference issue #524 (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_VALVEDIGITAL_LM_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_VALVEDIGITAL_LM_ONUPDATE oShape=" & oShape.id) +on error resume next + + If flag <= 1 then + Dim nNumericState + nNumericState = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + call GSH_ValveDigitalShowNormal(oShape) + call GSH_C200_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_ValveDigitalShowDisabledAlarm(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")),oShape) + End If + + 'End If + + 'If flag <= 1 then + 'focus + call GSH_ValveDigitalSetFocus(oShape) + 'Check for Off Normal if not in focus + dim sStateTxt: sStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if (GSH_C200_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL, sStateTxt)) then + call GSH_ValveDigitalShowOffNormal(oShape) + 'oShape.objects("focus").styleClass = GSH_CSSValveOutlineBackground + end if + end if + + End If + 'Make the focus transparent for valves + 'oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground + + If flag = 0 then + 'Bad Data Check + If GSH_C200_DIGITALCOMPOSITE_ISDATABAD(oShape.objects("rec_DataScript")) Then + call GSH_ValveDigitalShowBadPV(oShape) + else + oShape.objects("txt_PVvalue").value = sStateTxt + End If + + 'Check for Localman and Interlock status + dim bLocalMan, bInterlock + bInterlock = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_INTERLOCK) + + if(bInterlock) then + oShape.objects("txt_Localman").value = GSH_INTERLOCK_TXT + oShape.objects("txt_Localman").style.visibility = GSH_VISIBLE + else + bLocalMan = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_LOCALMAN) + if(bLocalMan) then + oShape.objects("txt_Localman").value = GSH_LOCALMAN_TXT + oShape.objects("txt_Localman").style.visibility = GSH_VISIBLE + else + oShape.objects("txt_Localman").style.visibility = GSH_HIDDEN + end if + end if + + End If +'gsh_log_e("GSH_C200_VALVEDIGITAL_LM_ONUPDATE oShape") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_VALVEDIGITALFLAG_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Functions the same as Valve Digital but the Offnormal check only exists for Normal State +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 06/06/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/13/07 Replace GSH_GETHIGHESTALARMPRIORITYPARAMETER by GSH_GETHIGHESTALARMPRIORITYPROPERTY +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_VALVEDIGITALFLAG_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_VALVEDIGITALFLAG_ONUPDATE oShape=" & oShape.id) +on error resume next + + 'flag check here is not necessary, but can leave it for consistency + If flag <= 1 then + Dim nNumericState + nNumericState = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + call GSH_ValveDigitalShowNormal(oShape) + call GSH_C200_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_ValveDigitalShowDisabledAlarm(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")), oShape) + End If + + 'focus + call GSH_ValveDigitalSetFocus(oShape) + 'Check for Off Normal if not in focus + dim sStateTxt: sStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sStateTxt) then + call GSH_ValveDigitalShowOffNormal(oShape) + 'oShape.objects("focus").styleClass = GSH_CSSValveOutlineBackground + end if + end if + End If + + 'Make the focus transparent for valves + 'oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground -> should set to be transparent, now done in GSH_ValveDigitalSetFocus + + If flag = 0 then + 'NO Bad Data Check on FLAGA + oShape.objects("txt_PVvalue").value = sStateTxt + End If + + +'gsh_log_e("GSH_C200_VALVEDIGITALFLAG_ONUPDATE oShape") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_MOTORINDICATOR_ONUPDATE''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/13/07 use GSH_GEN_SETSHAPEFOCUS to display focus +' 06/13/07 Use GSH_GETHIGHESTALARMPRIORITYPROPERTY instead of GSH_GETHIGHESTALARMPRIORITYPARAMETER +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_C200_MOTORINDICATOR_ONUPDATE(oShape, flag) +On Error Resume Next + + If flag = 0 then + call GSH_MOTORINDICATORSHOWNORMAL(oShape) + + 'set motor to running or not based on registry + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV),GSH_CPPARAM_PV) + + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")), oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + dim sPVStateTxt + sPVStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV,oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_MOTORINDICATOR_LM_ONUPDATE''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 08/14/2007 - Create the function to handle MotoIndicator_lm shapes with Localman and Interlock indicators +' Reference issue #524 (CL) +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_C200_MOTORINDICATOR_LM_ONUPDATE(oShape, flag) +On Error Resume Next + + If flag = 0 then + call GSH_MOTORINDICATORSHOWNORMAL(oShape) + + 'set motor to running or not based on registry + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV),GSH_CPPARAM_PV) + + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")), oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + dim sPVStateTxt + sPVStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV,oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + + 'This piece of code need to be testd on site + If flag = 0 then + 'Check for Localman and Interlock status + dim bLocalMan, bInterlock + bInterlock = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_INTERLOCK) + + if(bInterlock) then + oShape.objects("txt_Localman").value = GSH_INTERLOCK_TXT + oShape.objects("txt_Localman").style.visibility = GSH_VISIBLE + else + bLocalMan = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_LOCALMAN) + if(bLocalMan) then + oShape.objects("txt_Localman").value = GSH_LOCALMAN_TXT + oShape.objects("txt_Localman").style.visibility = GSH_VISIBLE + else + oShape.objects("txt_Localman").style.visibility = GSH_HIDDEN + end if + end if + end if + +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_LevelIndicator_OnUpdate''''''''''''''''''''''''''''''''''''''' +'Parameters:oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/04/07 Added flag parameter to execute only focus status update or all +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_LevelIndicator_OnUpdate(oShape, flag) +'gsh_log_s("GSH_C200_LevelIndicator_OnUpdate oShape="&oShape.id & ", flag="&flag) +On Error Resume Next +If flag <= 1 then + call GSH_LevelIndicatorShowNormal(oShape) + 'Check Alarms + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_LevelIndicatorShowDisbledAlarm(oShape) + else + 'alarming is enabled, get highest priority(if any) and change shape accordingly + call GSH_SHOWLEVELALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +'End If +'If flag <= 1 then + call GSH_LevelIndicatorSetFocus(oShape) + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_LevelIndicatorSHOWOFFNORMAL(oShape) + end if + end if + +'End If +'If flag = 0 then + 'Check for Bad PV + If GSH_C200_ANALOG_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), GSH_LEVELINDICATORDECIMALS) + End If +End If +'gsh_log_e("GSH_C200_LevelIndicator_OnUpdate") +end sub + +sub GSH_SHOWLEVELALARMS(sAlarmPriority,oShape) + Select Case sAlarmPriority + Case GSH_NOALARMCODE + call GSH_LevelIndicatorShowNoAlarm(oShape) + Case GSH_UNACKEMERG + call GSH_LevelIndicatorShowEmergencyAlarm(oShape,True) + Case GSH_UNACKHIGH + call GSH_LevelIndicatorShowHighAlarm(oShape,true) + Case GSH_UNACKLOW + call GSH_LevelIndicatorShowLowAlarm(oShape,true) + Case GSH_ACKEMERG + call GSH_LevelIndicatorShowEmergencyAlarm(oShape,false) + Case GSH_ACKHIGH + call GSH_LevelIndicatorShowHighAlarm(oShape,false) + Case GSH_ACKLOW + call GSH_LevelIndicatorShowLowAlarm(oShape,false) + Case Else + call GSH_LevelIndicatorShowNoAlarm(oShape) + End Select +end sub + +sub GSH_SHOWLEVELSMALLALARMS(sAlarmPriority,oShape) + call GSH_SHOWLEVELALARMS(sAlarmPriority,oShape) + 'Make Alarm outline width smaller + oShape.objects("outline").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSLVLINDICATORSMALLALARMWIDTH +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPANALOG_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'06/05/07 Added flag parameter to execute only focus status update or all +' 06/12/07 GSH_GEN_SETSHAPEFOCUS replaced GSH_GROUPANALOGSETFOCUS +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPANALOG_ONUPDATE(oShape,flag) +on error resume next +if flag = 0 then + call GSH_GROUPANALOGSHOWNORMAL(oShape) + + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_GROUPANALOGSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +End If +If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) 'Set the focus + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_GROUPANALOGSHOWOFFNORMAL(oShape) + end if + end if + +End If +If flag = 0 then + 'PV Data Check + If NOT(GSH_C200_ANALOG_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false)) Then + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + Else + call GSH_GROUPANALOGSHOWBADPV(oShape) + End If +End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPAUTOMANSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' 06/13/07 Added GSH_SHOWNOALARM to initialize the state of the alarms +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPAUTOMANSHOWNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPAUTOMANSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim shapePoint, tagKeyword, tagName + call GSH_SHOWNOALARM(oDataBoundObject) + 'Show values +' oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPREGULATORYCONTROLNORMAL +' oDataBoundObject.objects("outline").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_statusmessage").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("plg_OpLow").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("plg_OpHigh").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_Initialization").style.visibility = GSH_HIDDEN + 'Read Values from Registry + shapePoint = GSH_GETSHAPETAG(oDataBoundObject) + tagName = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGNAME_ALIAS, shapePoint) + tagKeyword = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_KEYWORD, defaultString) + 'Assign values to textboxes + oDataBoundObject.objects("txt_tagname").value = tagName + oDataBoundObject.objects("txt_keyword").value = tagKeyword +'gsh_log_e("GSH_GROUPAUTOMANSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPAUTOMAN_ONUPDATE''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/10/07 Optimized windup code with GSH_ShowWindupStatus. +' 06/12/07 Add alarming code referencing CP_OP and fix focus display. +' 09/14/07 hide OP combobox when the shape is not in principle focus to solve problem that the combox was open, +' but no entry made, then other tag is selected as focus tag. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPAUTOMAN_ONUPDATE(oShape, flag) +on error resume next + If flag = 0 then + GSH_GROUPAUTOMANSHOWNORMAL(oShape) + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_C200_AUTOMAN_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + + If flag = 0 then + 'Display OP Value + oShape.objects("txt_OPValue").value = formatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS,-2,0,0) + 'ModAttr Data Check + If (GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODATTR) = GSH_MODE_PROGRAM) Then + oShape.objects("txt_ModeValue").value = GSH_MODE_PROGRAM_TEXT & GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + Else + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + end if + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + + 'RedTag message + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + end if + End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPAUTOMAN_SM_ONUPDATE'''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus +' 02/19/08 Created from C200_GROUPAUTOMAN for StatusMessage addition +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPAUTOMAN_SM_ONUPDATE(oShape, flag) +'gsh_log_s("C200_GROUPAUTOMAN_SM oShape = " & oShape.id) +on error resume next + If flag = 0 then + GSH_GROUPAUTOMANSHOWNORMAL(oShape) + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_C200_AUTOMAN_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + + If flag = 0 then + 'Display OP Value + oShape.objects("txt_OPValue").value = formatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS,-2,0,0) + 'ModAttr Data Check + If (GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODATTR) = GSH_MODE_PROGRAM) Then + oShape.objects("txt_ModeValue").value = GSH_MODE_PROGRAM_TEXT & GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + Else + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + end if + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + +' 'RedTag and Status Message + dim val_redTag, val_stsMsg, tagName, stsMsgType, numOfMessage + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + val_stsMsg = cInt(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG)) +' + if strcomp(val_redTag,GSH_ON,vbtextcompare) = 0 then + oShape.objects("txt_statusmessage") = GSH_REDTAG_TEXT + oShape.objects("txt_statusmessage").style.visibility = GSH_VISIBLE + else if (val_stsMsg > 0) then + 'Get custom status messages from registry + tagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + stsMsgType = GSH_READTAGINFORMATIONKEYVALUE(tagName, GSH_REGKEY_STSMSGLIST, "") + numOfMessage = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & "NoOfMessages", "0") + if val_stsMsg >0 and val_stsMsg <=numOfMessage then + message = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & GSH_REGKEY_STATUSMESSAGE &val_stsMsg, "") + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,message) + end if + end if + end if + End If +'gsh_log_e("GSH_C200_GROUPAUTOMAN_SM") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPDIGITALINPUT_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape - Shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 06/06/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/13/07 Replace GSH_GETHIGHESTALARMPRIORITYPARAMETER by GSH_GETHIGHESTALARMPRIORITYPROPERTY +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPDIGITALINPUT_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_GROUPDIGITALINPUT_ONUPDATE oShape = " & oShape.id) +on error resume next + + If flag = 0 then + GSH_GROUPDIGITALINPUTSHOWNORMAL(oShape) + + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_GROUPDIGITALINPUTSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")), oShape) + End If + + oShape.objects("txt_DigitalValue").value = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + + End If + + If flag <= 1 then + 'Set the focus + 'call GSH_GROUPDIGITALINPUTSETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + If GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, oShape.objects("txt_DigitalValue").value) then + call GSH_GROUPDIGITALINPUTSHOWOFFNORMAL(oShape) + end if + end if + + End If + +'gsh_log_e("GSH_C200_GROUPDIGITALINPUT_ONUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPORSEL_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'06/05/07 Added flag parameter to execute only focus status update or all +'06/05/07 Added Redtag and Windup +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPORSEL_ONUPDATE(oShape, flag) +on error resume next +if flag = 0 then + GSH_GROUPORSELSHOWNORMAL(oShape) + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_GROUPORSELSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_CPPARAM_WINDUP),oShape) + End If +End If +If flag <= 1 then + call GSH_GROUPORSELSETFOCUS(oShape) 'Set the focus + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then 'Check for Off Normal if not in focus + if GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_GROUPORSELSHOWOFFNORMAL(oShape) + end if + end if +End If + +If flag = 0 then + 'Display OP Value + oShape.objects("txt_OPValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP)) + 'Display Mode Data + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + + + 'oShape.objects("txt_OPValue").value = GSH_FormatPVText(oShape,alp_OPValue.value) + 'oShape.objects("txt_ModeValue").value = cmb_ModeValue.value + + 'Set Outline fill color White + oShape.objects("outline").styleClass = GSH_CSSWHITE + + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + + 'Status message + dim val_redTag + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if strcomp(val_redTag,GSH_ON,vbtextcompare) = 0 then + oShape.objects("txt_statusmessage") = GSH_REDTAG_TEXT + oShape.objects("txt_statusmessage").style.visibility = GSH_VISIBLE + end if + +End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_MOTORINDICATORWITHALARMS_ONUPDATE'''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/13/07 use GSH_GEN_SETSHAPEFOCUS to display focus +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_C200_MOTORINDICATORWITHALARMS_ONUPDATE (oShape, flag) +'gsh_log_s("GSH_C200_MOTORINDICATORWITHALARMS_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + If flag = 0 then + call GSH_MOTORINDICATORSHOWNORMAL(oShape) + 'set motor to running or not based on registry + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV),GSH_CPPARAM_PV) + 'Alarming: Don't check alarm disabled for this alarm group (OK'd by Jamie) + dim sAlarmPriority, bUnack + sAlarmPriority = GSH_GETALARMGROUPPRIORITYPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITYALARM) + bUnack = GSH_GETALARMGROUPUNACKPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITYALARM) +' gsh_log ("sAlarmPriority = " & sAlarmPriority & "bUnack = " & bUnack ) + call GSH_SHOWALARMS (sAlarmPriority, bUnack, oShape) + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + dim sPVStateTxt + sPVStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV,oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If +'gsh_log_e("GSH_C200_MOTORINDICATORWITHALARMS_ONUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_MOTORINDICATORWITHALARMS_LM_ONUPDATE'''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 08/14/2007 - Create the function to handle MotorWithAlarms_lm shapes with Localman and Interlock indicators +' Reference issue #524 (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_C200_MOTORINDICATORWITHALARMS_LM_ONUPDATE (oShape, flag) +'gsh_log_s("GSH_C200_MOTORINDICATORWITHALARMS_LM_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + If flag = 0 then + call GSH_MOTORINDICATORSHOWNORMAL(oShape) + 'set motor to running or not based on registry + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV),GSH_CPPARAM_PV) + 'Alarming: Don't check alarm disabled for this alarm group (OK'd by Jamie) + dim sAlarmPriority, bUnack + sAlarmPriority = GSH_GETALARMGROUPPRIORITYPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITYALARM) + bUnack = GSH_GETALARMGROUPUNACKPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITYALARM) + 'gsh_log ("sAlarmPriority = " & sAlarmPriority & "bUnack = " & bUnack ) + call GSH_SHOWALARMS (sAlarmPriority, bUnack, oShape) + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + dim sPVStateTxt + sPVStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV,oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + + 'This piece of code need to be testd on site + If flag = 0 then + 'Check for Localman and Interlock status + dim bLocalMan, bInterlock + bInterlock = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_INTERLOCK) + + if(bInterlock) then + oShape.objects("txt_Localman").value = GSH_INTERLOCK_TXT + oShape.objects("txt_Localman").style.visibility = GSH_VISIBLE + else + bLocalMan = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_LOCALMAN) + if(bLocalMan) then + oShape.objects("txt_Localman").value = GSH_LOCALMAN_TXT + oShape.objects("txt_Localman").style.visibility = GSH_VISIBLE + else + oShape.objects("txt_Localman").style.visibility = GSH_HIDDEN + end if + end if + end if + +'gsh_log_e("GSH_C200_MOTORINDICATORWITHALARMS_LM_ONUPDATE") +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MULTIPLESENSORS_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/12/07 Added else statement to alarm display to show alarms if alarms are not disabled +' 06/14/07 replaced GSH_GETHIGHESTALARMPRIORITYPARAMETER with GSH_GETHIGHESTALARMPRIORITYPROPERTY +' 06/20/07 Replace GSH_GETHIGHESTALARMPRIORITYPROPERTY by GSH_GETHIGHESTALARMPRIORITYWITHALARMPARAMETERS to have the C200_SensorMulitple works +' as they need to work with both Tag.DACA.PV and Tag.A1.PV. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_MULTIPLESENSORS_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_MULTIPLESENSORS_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + If flag = 0 then + call GSH_MULTIPLESENSORSSHOWNORMAL(oShape) + 'Alarming + if (GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) or GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITYALARM)) Then + call GSH_MULTIPLESENSORSSHOWSUPPRESSEDALARM(oShape) + else + 'Get Highest Alarm +' iAlarmCode1 = GSH_GETHIGHESTALARMPRIORITYWITHALARMPARAMETERS(oShape.objects("rec_DataScript"),GSH_CPENTITY) +' iAlarmCode2 = GSH_GETHIGHESTALARMPRIORITYWITHALARMPARAMETERS(oShape.objects("rec_DataScript"),GSH_CPENTITYALARM) + iAlarmCode1 = GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITYALARM,GSH_EXPERION_PARAM_ALARMPRIORITY) + iAlarmCode2 = GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY) + + iAlarmCode = GSH_COMPAREHIGHESTALARMPRIORITY(iAlarmCode1, iAlarmCode2) + Select Case iAlarmCode + Case GSH_UNACKEMERG + call GSH_MULTIPLESENSORSSHOWEMERGENCYALARM(oShape,true) + Case GSH_UNACKHIGH + call GSH_MULTIPLESENSORSSHOWHIGHALARM(oShape,true) + Case GSH_UNACKLOW + call GSH_MULTIPLESENSORSSHOWLOWALARM(oShape,true) + Case GSH_ACKEMERG + call GSH_MULTIPLESENSORSSHOWEMERGENCYALARM(oShape,false) + Case GSH_ACKHIGH + call GSH_MULTIPLESENSORSSHOWHIGHALARM(oShape,false) + Case GSH_ACKLOW + call GSH_MULTIPLESENSORSSHOWLOWALARM(oShape,false) + Case Else + 'No Alarms + End Select + end if + End If + + If flag <= 1 then + + 'Set the focus + call GSH_MULTIPLESENSORSSETFOCUS(oShape) + 'No Offnormal check as this shape could be a digital flag or analog point. + 'gsh_log_e("GSH_C200_MULTIPLESENSORS_ONUPDATE") + End If +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_NUMERICINDICATOR_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/12/07 GSH_GEN_SETSHAPEFOCUS replaced GSH_NUMERICINDICATORSETFOCUS +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_NUMERICINDICATOR_ONUPDATE (oShape, flag) +on error resume next + If flag = 0 then + oShape.objects("outline").styleClass = GSH_CSSNUMERICINDICATORNORMAL + End If + If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) 'GSH_NUMERICINDICATORSETFOCUS(oShape) + End If + If flag = 0 then + 'Bad Data Check removed by Request of Rich M May3,2007. + oShape.objects("txt_PVvalue").value = GSH_FormatPVText(oShape,oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV)) + End If +End sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_RATIOTRACKINDICATOR_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 08/July/2008 New Shape - JE +' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_RATIOTRACKINDICATOR_ONUPDATE (oShape, flag) +on error resume next + If flag = 0 then + oShape.objects("outline").styleClass = GSH_CSSNUMERICINDICATORNORMAL + End If + If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) 'GSH_NUMERICINDICATORSETFOCUS(oShape) + End If + If flag = 0 then +' do own PVFormatting as using RTFormat not PVFormat + txtIn = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV) + If StrComp(txtIn,"1.#QNAN",vbTextcompare)= 0 then + oShape.objects("txt_PVvalue").value = "---" + else + numOfDecimals = CInt(Right(GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), "RTFORMAT", GSH_DEFAULTPVFORMAT),1)) + tempReturn = FormatNumber(txtIn, numOfDecimals,-2, 0, 0) + oShape.objects("txt_PVvalue").value = tempReturn + end if + End If +End sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'LevelIndicatorSmall Shape Section +' Contains all functions specific to the Level Indicator Small shape +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/04/07 Added flag parameter to execute only focus status update or all +' 08/05/08 Remove flag checking because we have to do everything in all the cases(CL), otherwise badPV does not show correctly +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_LevelIndicatorSmall_OnUpdate(oShape, flag) +'gsh_log_s("GSH_C200_LevelIndicatorSmall_OnUpdate, oshape=" & oShape.id & "w flag = "&flag) +On Error Resume Next + + call GSH_LevelIndicatorShowNormal(oShape) + 'Check Alarms + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_LevelIndicatorShowDisbledAlarm(oShape) + else + call GSH_SHOWLEVELSMALLALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If +'End If +'If flag <=1 then + call GSH_LEVELINDICATORSETFOCUS(oShape) + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + IF GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_LevelIndicatorSHOWOFFNORMAL(oShape) + end if + end if + + + + 'Check for Bad PV + If GSH_C200_ANALOG_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), GSH_LEVELINDICATORDECIMALS) + End If + +'gsh_log_e("GSH_C200_LevelIndicatorSmall_OnUpdate") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_LevelIndicatorRegCtlSmall_OnUpdate'''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/04/07 Remove Initman because already using ARWOP HILO. +' 06/04/07 Replace Windup select statement with GSH_SHOWWINDUPSTATUS +' 06/05/07 Added flag parameter to execute only focus status update or all +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_LevelIndicatorRegCtlSmall_OnUpdate(oShape, flag) +'gsh_log_s("GSH_C200_LevelIndicatorRegCtlSmall_OnUpdate oShape="&oShape.id& ", flag = "&flag) +On Error Resume Next +If flag <= 1 then + GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + else + + 'alarming is enabled, get highest priority and change shape accordingly + Select Case GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY) + Case GSH_NOALARMCODE + call GSH_LevelIndicatorRegulatoryControlShowNoAlarm(oShape) + Case GSH_UNACKEMERG + call GSH_LevelIndicatorRegCtlSmallShowEmergencyAlarm(oShape,True) + Case GSH_UNACKHIGH + call GSH_LevelIndicatorRegCtlSmallShowHighAlarm(oShape,true) + Case GSH_UNACKLOW + call GSH_LevelIndicatorRegCtlSmallShowLowAlarm(oShape,true) + Case GSH_ACKEMERG + call GSH_LevelIndicatorRegCtlSmallShowEmergencyAlarm(oShape,false) + Case GSH_ACKHIGH + call GSH_LevelIndicatorRegCtlSmallShowHighAlarm(oShape,false) + Case GSH_ACKLOW + call GSH_LevelIndicatorRegCtlSmallShowLowAlarm(oShape,false) + Case Else + call GSH_LevelIndicatorRegulatoryControlShowNoAlarm(oShape) + End Select + End If +'End If +'If flag <= 1 then + call GSH_LevelIndicatorRegulatoryControlSetFocus(oShape) 'Check Focus + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_LevelIndicatorRegulatoryControlShowOffNormal(oShape) + end if + end if + + 'Check for bad value + IF GSH_C200_REGCTL_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) THEN + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + call GSH_LevelIndicatorShowSPFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), GSH_LEVELINDICATORDECIMALS) + End If + +End If + +If flag = 0 then + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) +End If +'gsh_log_e("GSH_C200_LevelIndicatorRegCtlSmall_OnUpdate") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_MOTORINDICATORSMALL_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/13/07 use GSH_GEN_SETSHAPEFOCUS to display focus +' 06/13/07 Replace GSH_GETHIGHESTALARMPRIORITYPARAMETER by GSH_GETHIGHESTALARMPRIORITYPROPERTY +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_C200_MOTORINDICATORSMALL_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_MOTORINDICATORSMALL_ONUPDATE >>>>> Shape ="& oShape.id) + On Error Resume Next + + If flag = 0 then + call GSH_MINIMOTORINDICATORSHOWNORMAL(oShape) + 'set motor to running or not based on registry + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV),GSH_CPPARAM_PV) + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSSMINIMOTORINDICATORDISABLEDALARM + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")), oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + dim sPVStateTxt + sPVStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If +'gsh_log_e("GSH_C200_MOTORINDICATORSMALL_ONUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_MOTORINDICATORSMALL_LM_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 08/14/2007 - Create the function to handle MotoIndicatorSmall_lm shapes with Localman and Interlock indicators +' Reference issue #524 (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_C200_MOTORINDICATORSMALL_LM_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_MOTORINDICATORSMALL_LM_ONUPDATE >>>>> Shape ="& oShape.id) + On Error Resume Next + + If flag = 0 then + call GSH_MINIMOTORINDICATORSHOWNORMAL(oShape) + 'set motor to running or not based on registry + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV),GSH_CPPARAM_PV) + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSSMINIMOTORINDICATORDISABLEDALARM + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")), oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + dim sPVStateTxt + sPVStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + + 'This piece of code need to be testd on site + If flag = 0 then + 'Check for Localman and Interlock status + dim bLocalMan, bInterlock + bInterlock = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_INTERLOCK) + + if(bInterlock) then + oShape.objects("txt_Localman").value = GSH_INTERLOCK_TXT + oShape.objects("txt_Localman").style.visibility = GSH_VISIBLE + else + bLocalMan = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_LOCALMAN) + if(bLocalMan) then + oShape.objects("txt_Localman").value = GSH_LOCALMAN_TXT + oShape.objects("txt_Localman").style.visibility = GSH_VISIBLE + else + oShape.objects("txt_Localman").style.visibility = GSH_HIDDEN + end if + end if + end if +'gsh_log_e("GSH_C200_MOTORINDICATORSMALL_LM_ONUPDATE") +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_SENSOR_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/13/07 Replace GSH_GETHIGHESTALARMPRIORITY(oShape.objects("rec_DataScript")) by GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")) +' 06/20/07 Replace GSH_GETHIGHESTALARMPRIORITYPROPERTY by GSH_GETHIGHESTALARMPRIORITYWITHALARMPARAMETERS to have the C200_Sensor work +' as they need to work with both Tag.DACA.PV and Tag.A1.PV. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_SENSOR_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_SENSOR_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + If flag = 0 then + call GSH_SENSORSHOWNORMAL(oShape) + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_SENSORSHOWSUPPRESSEDALARM(oShape) + else + 'alarming is enabled, get highest priority and change shape accordingly +' Select Case GSH_GETHIGHESTALARMPRIORITYWITHALARMPARAMETERS(oShape.objects("rec_DataScript"),GSH_CPENTITY) + Select Case GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY) + Case GSH_UNACKEMERG + call GSH_SENSORSHOWEMERGENCYALARM(oShape,true) + Case GSH_UNACKHIGH + call GSH_SENSORSHOWHIGHALARM(oShape,true) + Case GSH_UNACKLOW + call GSH_SENSORSHOWLOWALARM(oShape,true) + Case GSH_ACKEMERG + call GSH_SENSORSHOWEMERGENCYALARM(oShape,false) + Case GSH_ACKHIGH + call GSH_SENSORSHOWHIGHALARM(oShape,false) + Case GSH_ACKLOW + call GSH_SENSORSHOWLOWALARM(oShape,false) + Case Else + End Select + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_SETSHAPEFOCUS(oShape) + 'No Offnormal check as this shape could be a digital flag or analog point. + 'gsh_log_e("GSH_C200_SENSOR_ONUPDATE") + End If +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_SELECTOROUTPUT_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/14/07 GSH_SELECTOROUTPUTSETFOCUS replaced by GSH_GEN_SETSHAPEFOCUS +' 06/14/07 Added alarm checking for GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_SELECTOROUTPUT_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_SELECTOROUTPUT_ONUPDATE oShape=" & oShape.id) + +On Error Resume Next + + If flag = 0 then + call GSH_SELECTOROUTPUTSHOWNORMAL(oShape) + call GSH_SELECTOROUTPUTSHOWSELECTOR(oShape, GSH_CPPARAM_SELINPUT) + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_SELECTOROUTPUT_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + +'gsh_log_e("GSH_C200_SELECTOROUTPUT_ONUPDATE") + +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SELECTOROUTPUTSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' 06/14/07 initialized the state of alarms +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SELECTOROUTPUTSHOWNORMAL(oShape) +'gsh_log_s("GSH_SELECTOROUTPUTSHOWNORMAL oShape=" & oShape.id) +on error resume next + call GSH_SHOWNOALARM(oShape) + oShape.objects("linLeft").style.visibility = GSH_HIDDEN + oShape.objects("linRight").style.visibility = GSH_HIDDEN + oShape.objects("linTop").style.visibility = GSH_HIDDEN + oShape.objects("focus").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_SELECTOROUTPUTSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SELECTOROUTPUTSHOWSELECTOR'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = shape +' paramSelector = custom parameter +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SELECTOROUTPUTSHOWSELECTOR(oShape, paramSelector) +'gsh_log_s("GSH_SELECTOROUTPUTSHOWSELECTOR oShape=" & oShape.id & ", paramSelector=" & paramSelector) +on error resume next + dim xinput, selOrientation + xinput = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),paramSelector) + ' Determine selector orientation (LEFT, RIGHT, CENTER) + selOrientation = GSH_NONE + select case xinput + case GSH_SELX1 + ' Retrive custom parameter X1 + selOrientation = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPX1, GSH_CPVALUE) + case GSH_SELX2 + ' Retrive custom parameter X2 + selOrientation = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPX2, GSH_CPVALUE) + case GSH_SELX3 + ' Retrive custom parameter X3 + selOrientation = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPX3, GSH_CPVALUE) + end select + 'Set Orientation + call GSH_SELECTOROUTPUTSETORIENTATION(oShape, selOrientation) +'gsh_log_e("GSH_SELECTOROUTPUTSHOWSELECTOR") + +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SELECTOROUTPUTSETORIENTATION'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = shape +' selOrientation = orientation (LEFT, RIGHT, CENTER) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SELECTOROUTPUTSETORIENTATION(oShape, selOrientation) +'gsh_log_s("GSH_SELECTOROUTPUTSETORIENTATION oShape=" & oShape.id & ", selOrientation=" & selOrientation) +on error resume next + + if (strcomp(selOrientation,GSH_LEFT,vbtextcompare)=0) then + oShape.objects("linLeft").style.visibility = GSH_VISIBLE + ElseIf (strcomp(selOrientation,GSH_RIGHT,vbtextcompare)=0 ) then + oShape.objects("linRight").style.visibility = GSH_VISIBLE + ElseIf (strcomp(selOrientation,GSH_CENTER,vbtextcompare)=0 ) then + oShape.objects("linTop").style.visibility = GSH_VISIBLE + else + 'Do Nothing + end if +'gsh_log_e("GSH_SELECTOROUTPUTSETORIENTATION") + +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SELECTOROUTPUTSETFOCUS replaced by GSH_GEN_SETSHAPEFOCUS 06/14/07 + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPSELECTORINPUT_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = shape +' 06/14/07 GSH_GROUPSELECTORINPUTSETFOCUS replaced by GSH_GEN_SETSHAPEFOCUS +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPSELECTORINPUT_ONUPDATE(oShape, flag) +on error resume next + If flag = 0 then + call GSH_GROUPSELECTORINPUTSHOWNORMAL(oShape) + End If + If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) + End If + If flag = 0 then + 'Get SELOUT value + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SELOUT)) + End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPSELECTORINPUTSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPSELECTORINPUTSHOWNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPSELECTORINPUTSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim shapePoint, tagKeyword, sTagName + 'Show objects + oDataBoundObject.objects("outline").style.visibility = GSH_VISIBLE + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPANALOGNORMAL + oDataBoundObject.objects("txt_AnalogValue").style.visibility = GSH_VISIBLE + 'Read Values from Registry + shapePoint = GSH_GETSHAPETAG(oDataBoundObject) + sTagname = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGNAME_ALIAS, shapePoint) + tagKeyword = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_KEYWORD, defaultString) + oDataBoundObject.objects("txt_tagname").value = sTagname + oDataBoundObject.objects("txt_keyword").value = tagKeyword +'gsh_log_e("GSH_GROUPSELECTORINPUTSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPSELECTORINPUTSETFOCUS replaced by GSH_GEN_SETSHAPEFOCUS 06/14/07 + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPSELECTOROUTPUT_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/14/07 GSH_GROUPSELECTOROUTPUTSETFOCUS replaced by GSH_GEN_SETSHAPEFOCUS +' 06/14/07 removed check for initman because it is redundant with the check for Windup = HILO +' 06/14/07 optimized select case code by replacing it with SHOWWINDUPSTATUS +' 06/14/07 use GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER for alarming +' 09/14/07 hide OP combobox when the shape is not in principle focus to solve problem +' that the combox or alp entry was open, +' but no entry made, then other tag is selected as focus tag. (CL) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPSELECTOROUTPUT_ONUPDATE(oShape, flag) +on error resume next + + + If flag = 0 then + GSH_GROUPSELECTOROUTPUTSHOWNORMAL(oShape) + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_GROUPSELECTOROUTPUTSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + End If + + If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_C200_SELECTOROUTPUT_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + + If flag = 0 then + 'Display OP Value (no check for bad data needed) + oShape.objects("txt_OPValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP)) + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")),oShape) + 'Status message + dim val_redTag + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + end if + 'No Ramping needed + End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_GROUPSELECTOROUTPUT_SM_ONUPDATE''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 02/19/08 Created from C200_GROUPSELECTOROUTPUT for StatusMessage addition +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_GROUPSELECTOROUTPUT_SM_ONUPDATE(oShape, flag) +on error resume next + + If flag = 0 then + GSH_GROUPSELECTOROUTPUTSHOWNORMAL(oShape) + 'Alarming + If GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + call GSH_GROUPSELECTOROUTPUTSHOWSUPPRESSEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + End If + + If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_C200_SELECTOROUTPUT_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + + If flag = 0 then + 'Display OP Value (no check for bad data needed) + oShape.objects("txt_OPValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP)) + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")),oShape) + + 'RedTag and Status Message + dim val_redTag, val_stsMsg, tagName, stsMsgType + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + val_stsMsg = cInt(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG)) + + if (val_redTag = GSH_ON) then + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + else if (val_stsMsg > 0) then + 'Get custom status messages from registry + tagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + stsMsgType = GSH_READTAGINFORMATIONKEYVALUE(tagName, GSH_REGKEY_STSMSGLIST, "") + if val_stsMsg >0 and stsMsgType <> "" then + message = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & GSH_REGKEY_STATUSMESSAGE &val_stsMsg, "") + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,message) + end if + end if + end if + End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPSELECTOROUTPUTSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPSELECTOROUTPUTSHOWNORMAL(oDataBoundObject) +'gsh_log_s("GSH_GROUPSELECTOROUTPUTSHOWNORMAL oDataBoundObject=" & oDataBoundObject.id) +on error resume next +Dim shapePoint, tagKeyword, tagName + shapePoint = GSH_GETSHAPETAG(oDataBoundObject) + tagName = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_TAGNAME_ALIAS, shapePoint) + tagKeyword = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_KEYWORD, defaultString) + 'Assign values to textboxes + oDataBoundObject.objects("txt_tagname").value = tagName + oDataBoundObject.objects("txt_keyword").value = tagKeyword + call GSH_SHOWNOALARM(oDataBoundObject) + 'Show values + oDataBoundObject.objects("outline").style.visibility = GSH_VISIBLE + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPORSELNORMAL + oDataBoundObject.objects("plg_OpLow").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("plg_OpHigh").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_Initialization").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_status").style.visibility = GSH_HIDDEN + oDataBoundObject.objects("txt_statusmessage").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_GROUPSELECTOROUTPUTSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GROUPSELECTOROUTPUTSHOWSUPPRESSEDALARM''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GROUPSELECTOROUTPUTSHOWSUPPRESSEDALARM(oDataBoundObject) +'gsh_log_s("GSH_GROUPSELECTOROUTPUTSHOWSUPPRESSEDALARM oDataBoundObject=" & oDataBoundObject.id) +on error resume next + oDataBoundObject.objects("outline").styleClass = GSH_CSSGROUPORSELDISABLEDALARM +'gsh_log_e("GSH_GROUPSELECTOROUTPUTSHOWSUPPRESSEDALARM") +end sub + +'GSH_GROUPSELECTOROUTPUTSETFOCUS replaced by GSH_GEN_SETSHAPEFOCUS 06/14/07 +'GSH_GROUPSELECTOROUTPUTSHOW_RAMP removed function May 11'''''''''''''' + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_SELECTORINPUT_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/14/07 GSH_GSH_SELECTORINPUTSETFOCUS replaced by GSH_GEN_SETSHAPEFOCUS +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_SELECTORINPUT_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_SELECTORINPUT_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + If flag = 0 then + call GSH_SELECTORINPUTSHOWNORMAL(oShape) + call GSH_SELECTORINPUTSHOWSELECTOR(oShape, GSH_CPPARAM_SELINPUT) + End If + If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) + End If +'gsh_log_e("GSH_C200_SELECTORINPUT_ONUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SELECTORINPUTSHOWNORMAL'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' 06/14/07 initialized the state of "outline" +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SELECTORINPUTSHOWNORMAL(oShape) +'gsh_log_s("GSH_SELECTORINPUTSHOWNORMAL oShape=" & oShape.id) +on error resume next + oShape.objects("outline").styleClass = GSH_CSSALARMNONE + oShape.objects("linLeft").style.visibility = GSH_HIDDEN + oShape.objects("linRight").style.visibility = GSH_HIDDEN + oShape.objects("linTop").style.visibility = GSH_HIDDEN + oShape.objects("focus").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_SELECTORINPUTSHOWNORMAL") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SELECTORINPUTSHOWSELECTOR'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = shape +' paramSelector = custom parameter +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SELECTORINPUTSHOWSELECTOR(oShape, paramSelector) +'gsh_log_s("GSH_SELECTORINPUTSHOWSELECTOR oShape=" & oShape.id & ", paramSelector=" & paramSelector) +on error resume next + dim ininput, selOrientation + ininput = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),paramSelector) + ' Determine selector orientation (LEFT, RIGHT, CENTER) + selOrientation = GSH_LEFT + if strcomp(ininput,GSH_SELIN1, vbTextCompare) = 0 then + selOrientation = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPIN1, GSH_CPVALUE) + else if strcomp(ininput,GSH_SELIN2, vbTextCompare) = 0 then + ' Retrive custom parameter IN2 + selOrientation = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPIN2, GSH_CPVALUE) + end if: end if + 'Set Orientation + call GSH_SELECTORINPUTSETORIENTATION(oShape, selOrientation) +'gsh_log_e("GSH_SELECTORINPUTSHOWSELECTOR") + +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SELECTORINPUTSETORIENTATION'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = shape +' selOrientation = orientation (LEFT, RIGHT, CENTER) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SELECTORINPUTSETORIENTATION(oShape, selOrientation) +'gsh_log_s("GSH_SELECTORINPUTSETORIENTATION oShape=" & oShape.id & ", selOrientation=" & selOrientation) +on error resume next + + if (strcomp(selOrientation,GSH_LEFT,vbtextcompare)=0) then + oShape.objects("linLeft").style.visibility = GSH_VISIBLE + ElseIf (strcomp(selOrientation,GSH_RIGHT,vbtextcompare)=0 ) then + oShape.objects("linRight").style.visibility = GSH_VISIBLE + ElseIf (strcomp(selOrientation,GSH_CENTER,vbtextcompare)=0 ) then + oShape.objects("linTop").style.visibility = GSH_VISIBLE + else + 'Do Nothing + end if +'gsh_log_e("GSH_SELECTORINPUTSETORIENTATION") + +end sub + +'GSH_SELECTORINPUTSETFOCUS replaced by GSH_GEN_SETSHAPEFOCUS 06/14/07 +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_VALVEANALOG3WAY_SCADA_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_VALVEANALOG3WAY_SCADA_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_VALVEANALOG3WAY_SCADA_ONUPDATE oShape=" & oShape.id) + + If flag <= 1 then + call GSH_VALVEANALOG3WAYSHOWNORMAL(oShape) + + Dim OPValue,stsmsg, val_redTag, initMan + OPValue = oShape.objects("ind_OPStem").value + If (OPValue <= 5) then + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else if ( (OPValue > 5) and (OPValue < 95) ) then + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + end if: end if + + call GSH_VALVEANALOG3WAYSHOWPORT(oShape) + + 'Check the points alarming + if GSH_SCADA_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_VALVEANALOG3WAYSHOWDISABLEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITY_OP(oShape.objects("rec_DataScript")),oShape) + End If + +' End If + +' If flag <= 1 then + 'Focus + call GSH_VALVEANALOG3WAYSETFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if (GSH_REGCTL_SCADA_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_CPPARAM_PV)) then + call GSH_VALVEANALOG3WAYSHOWOFFNORMAL(oShape) + 'oShape.objects("focus").styleClass = GSH_CSSValveOutlineBackground + end if + end if + + 'Make the focus transparent for valves + 'oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground --> outline is always transparent + End If + 'gsh_log_e("GSH_VALVEANALOG3WAY_SCADA_ONUPDATE") +end sub + + +' +' 10/12/2007 - Modified so that ValveAnalog3Way can show input flow that come from +' left (default) or right hand side. (CL) +' +sub GSH_VALVEANALOG3WAYSHOWPORT(oShape) +'gsh_log_s("GSH_VALVEANALOG3WAYSHOWPORT oShape=" & oShape.id) +on error resume next + Dim OPValue, divertMinValue, divertMaxValue, throughMinValue, throughMaxValue, inputDirection + Dim styleLeftPort, styleRightPort, styleDivertPort + + OPValue = CSng(oShape.objects("ind_OPStem").value) + 'gsh_log("OPValue=" & OPValue) + divertMinValue = CSng(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPDIVERTMIN, GSH_CPVALUE)) + divertMaxValue = CSng(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPDIVERTMAX, GSH_CPVALUE)) + throughMinValue = CSng(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPTHROUGHMIN, GSH_CPVALUE)) + throughMaxValue = CSng(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPTHROUGHMAX, GSH_CPVALUE)) + + 'gsh_log("divertMinValue=" & divertMinValue & ", divertMaxValue=" & divertMaxValue & ", throughMinValue=" & throughMinValue & ", throughMaxValue=" & throughMaxValue) + styleLeftPort = GSH_CSSVALVEREGULATORYCONTROLNORMAL + styleRightPort = GSH_CSSVALVEREGULATORYCONTROLNORMAL + styleDivertPort = GSH_CSSVALVEREGULATORYCONTROLNORMAL + + + if ((OPValue >= divertMinValue) or (OPValue >= throughMinValue)) then + styleLeftPort = GSH_CSSVALVEREGULATORYCONTROLSATURATED + end if + if (OPValue >= divertMinValue) and (OPValue <= divertMaxValue) then + styleDivertPort = GSH_CSSVALVEREGULATORYCONTROLSATURATED + end if + if ((OPValue >= throughMinValue) and (OPValue <= throughMaxValue)) then + styleRightPort = GSH_CSSVALVEREGULATORYCONTROLSATURATED + end if + + inputDirection = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPINPUTDIRECTION, GSH_CPVALUE) + + 'Input flow direction from the right hand side. + dim temp + If strComp(inputDirection,"right",vbTextCompare) = 0 Then + temp = styleLeftPort + styleLeftPort = styleRightPort + styleRightPort = temp + End If + + + 'Set style + oShape.objects("plg_LeftPort").styleClass = styleLeftPort + oShape.objects("plg_RightPort").styleClass = styleRightPort + oShape.objects("plg_DivertPort").styleClass = styleDivertPort + + 'gsh_log("Left Port styleClass=" & oShape.objects("plg_LeftPort").styleClass) + 'gsh_log("Right Port styleClass=" & oShape.objects("plg_RightPort").styleClass) + 'gsh_log("Divert Port styleClass=" & oShape.objects("plg_DivertPort").styleClass) +'gsh_log_e("GSH_VALVEANALOG3WAYSHOWPORT") +end sub + +sub GSH_VALVEANALOG3WAYSETFOCUS(oShape) +'gsh_log_s("GSH_VALVEANALOG3WAYSETFOCUS oShape=" & oShape.id) +on error resume next + call GSH_SetShapeFocus(oShape) + + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show analog value and outline + call GSH_ValveRegulatoryControlShowBottomFlowIndicator(oShape,false) + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("rec_LineCover").styleClass = GSH_CSSFOCUSASSOCIATED_COLOUR + oShape.objects("txt_OPValue").style.visibility = GSH_VISIBLE 'changed AL + else + oShape.objects("rec_LineCover").styleClass = GSH_CSSBACKGROUND_GRAY + end if + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT '-> set alarm filled the outline -> set it back to transparent here +'gsh_log_e("GSH_VALVEANALOG3WAYSETFOCUS") +end sub + +sub GSH_VALVEANALOG3WAYSHOWNORMAL(oShape) +'gsh_log_s("GSH_VALVEANALOG3WAYSHOWNORMAL oShape=" & oShape.id) +on error resume next + oShape.objects("txt_OPValue").value = FormatNumber(oShape.objects("ind_OPStem").value,GSH_OUTPUTINDICATORDECIMALS) + oShape.objects("rec_LineCover").styleClass = GSH_CSSBACKGROUND_GRAY + oShape.objects("txt_OPValue").style.visibility = GSH_HIDDEN 'changed AL + oShape.objects("ind_OPBottom").style.visibility = GSH_VISIBLE + call GSH_ShowNoAlarm(oShape) + oShape.objects("txt_statusmessage").style.visibility = GSH_HIDDEN + oShape.objects("plg_OpHigh").style.visibility = GSH_HIDDEN + oShape.objects("plg_OpLow").style.visibility = GSH_HIDDEN + oShape.objects("txt_initialization").style.visibility = GSH_HIDDEN +'gsh_log_e("GSH_VALVEANALOG3WAYSHOWNORMAL") +end sub + +sub GSH_VALVEANALOG3WAYSHOWOFFNORMAL(oShape) +'gsh_log_s("GSH_VALVEANALOG3WAYSHOWOFFNORMAL oShape=" & oShape.id) +on error resume next + oShape.objects("focus").style.visibility = GSH_VISIBLE + oShape.objects("focus").styleClass = GSH_CSSREGULATORYCONTROLVALVEOFFNORMAL + call GSH_ValveRegulatoryControlShowBottomFlowIndicator(oShape,true) +'gsh_log_e("GSH_VALVEANALOG3WAYSHOWOFFNORMAL") +end sub + +sub GSH_VALVEANALOG3WAYSHOWDISABLEDALARM(oShape) +'gsh_log_s("GSH_VALVEANALOG3WAYSHOWDISABLEDALARM oShape=" & oShape.id) +on error resume next + call GSH_ShowNoAlarm(oShape) + call GSH_VALVEANALOG3WAYSHOWBOTTOMFLOWINDICATOR(oShape,true) + oShape.objects("outline").styleClass = GSH_CSSREGULATORYCONTROLINDICATORDISABLEDALARM +'gsh_log_e("GSH_VALVEANALOG3WAYSHOWDISABLEDALARM") +end sub + +sub GSH_VALVEANALOG3WAYSHOWBOTTOMFLOWINDICATOR(oShape,ShowBottomFlowdicator) +'gsh_log_s("GSH_VALVEANALOG3WAYSHOWBOTTOMFLOWINDICATOR oShape="&oShape&" "& CSTR(ShowBottomFlowdicator)) +on error resume next + if (ShowBottomFlowdicator) then + oShape.objects("txt_OPValue").style.visibility = GSH_HIDDEN + else + oShape.objects("txt_OPValue").style.visibility = GSH_VISIBLE + end if +'gsh_log_e("GSH_VALVEANALOG3WAYSHOWBOTTOMFLOWINDICATOR") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_VALVEANALOG3WAY_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/07/07 Added flag parameter to execute only focus & offnormal status update or all +' 06/10/07 Removed initman check because it is redundant to Windup = HILO +' 08/08/07 Add: check & show status message flag on status message text. Reference issue #370 (Cuong Ly) +' 12/09/07 Removed status message CP for now until database is ready - JE +' Fix potential problem of sticky red +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_VALVEANALOG3WAY_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_VALVEANALOG3WAY_ONUPDATE oShape=" & oShape.id) + + If flag <= 1 then + call GSH_VALVEANALOG3WAYSHOWNORMAL(oShape) + + Dim OPValue,stsmsg, val_redTag, initMan + OPValue = oShape.objects("ind_OPStem").value + If (OPValue <= 5) then + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else if ( (OPValue > 5) and (OPValue < 95) ) then + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + end if: end if + + call GSH_VALVEANALOG3WAYSHOWPORT(oShape) + + 'Check the points alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + 'Alarm is Disabled + call GSH_VALVEANALOG3WAYSHOWDISABLEDALARM(oShape) + else + call GSH_SHOWPOINTALARMS(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + End If + + 'Assumption: Reg tag and status message are mutual exclusive + 'Status message + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + 'red tag + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) +' else + 'Check status Message +' dim val_stsMsg +' val_stsMsg = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG) +' call GSH_Show_StatusMessageFlag(oShape, val_stsMsg) + end if + + 'End If + + 'If flag <= 1 then + 'Focus + call GSH_VALVEANALOG3WAYSETFOCUS(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then +' if (GSH_C200_ValveREGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL)) then + if (GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL)) then + call GSH_VALVEANALOG3WAYSHOWOFFNORMAL(oShape) + 'oShape.objects("focus").styleClass = GSH_CSSValveOutlineBackground + end if + end if + End If + + If flag = 0 then + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")),oShape) + End If + + 'Make the focus transparent for valves + 'oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground + +'gsh_log_e("GSH_C200_VALVEANALOG3WAY_ONUPDATE") +end sub + +sub GSH_VALVEANALOG3WAYSHOWSTATUSMESSAGE(oShape,message) +'gsh_log_s("GSH_VALVEANALOG3WAYSHOWSTATUSMESSAGE oShape=" & oShape.id & ",message="&message) +on error resume next + oShape.objects("txt_statusmessage").style.visibility = GSH_VISIBLE + oShape.objects("txt_statusmessage").value = message +'gsh_log_e("GSH_VALVEANALOG3WAYSHOWSTATUSMESSAGE") +end sub + +sub GSH_VALVEANALOG3WAYSHOWINITIALIZATION(oShape) +'gsh_log_s("GSH_VALVEANALOG3WAYSHOWINITIALIZATION oShape=" & oShape.id) +on error resume next + oShape.objects("plg_OpHigh").style.visibility = GSH_HIDDEN + oShape.objects("plg_OpLow").style.visibility = GSH_HIDDEN + oShape.objects("txt_initialization").style.visibility = GSH_VISIBLE +'gsh_log_e("GSH_VALVEANALOG3WAYSHOWINITIALIZATION") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITALINDICATORSHORT_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital value does not change often) only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_DIGITALINDICATORSHORT_ONUPDATE (oShape, flag) +on error resume next + +If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY),oShape) + End If + +End If + +If flag <=1 then + 'Set the focus + 'call GSH_DIGITALINDICATORSETFOCUS(oShape) + call GSH_GEN_SETSHAPEFOCUS(oShape) + + + 'Check for Off Normal if not in focus + dim sPVStateTxt + sPVStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_SCADA_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + +End If + +If flag = 0 then + 'Bad Data Check + If GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + oShape.objects("txt_PVvalue").value = "---" + Else + oShape.objects("txt_PVvalue").value = oShape.GetCustomProperty(GSH_CPVALUE,GSH_CPLABEL) + End If +End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_DIGITALINDICATORSHORT_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 06/06/07 Added flag parameter to execute only focus & offnormal status update or all +' 13/06/07 Use GSH_GETHIGHESTALARMPRIORITYPROPERTY of GSH_GETHIGHESTALARMPRIORITYPARAMETER +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_DIGITALINDICATORSHORT_ONUPDATE (oShape, flag) +on error resume next + + If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + else + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")), oShape) + End If + End If + + If flag <= 1 then + 'Set the focus + 'call GSH_DIGITALINDICATORSETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + dim sPVStateTxt + sPVStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sPVStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + + End If +'Bad Data Check not needed +'Shape's Label is automatically assign to the Shape Custom property "Label" +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_FLAGINDICATOR_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_FLAGINDICATOR_ONUPDATE (oShape, flag) +on error resume next + + call GSH_GEN_SETSHAPEFOCUS(oShape) + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + dim sPVStateTxt + sPVStateTxt = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV) + oShape.objects("txt_PVvalue").value = sPVStateTxt +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_UpdateAlarmStatus +'Check alarm status and updates the text value for ConTxtAlmEnabled object +'Parameter: sAlarmStatusParamName = GSH_SCADA_PARAM_ALARMDISABLED or C200 param constant +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_UpdateAlarmStatus (sAlarmStatusParamName) +'gsh_log_s "GSH_FP_UpdateAlarmStatus sAlarmStatusParamName ="& sAlarmStatusParamName +dim sAlarmStatus + sAlarmStatus = "---" + if (ConTxtAlmEnabled.DataValue(GSH_SDR_CURRENTPOINT & "." & sAlarmStatusParamName)<> 0) then + 'if strcomp(ConTxtAlmEnabled.DataValue(GSH_SDR_CURRENTPOINT & "." & sAlarmStatusParamName),"DISABLED",vbTextCompare) = 0 then + sAlarmStatus = "Disabled" + Rec_AlmEnabledOffNorm.style.visibility = GSH_VISIBLE + else + sAlarmStatus = "Enabled" + Rec_AlmEnabledOffNorm.style.visibility = GSH_HIDDEN + end if + ConTxtAlmEnabled.value = sAlarmStatus +'gsh_log_e "GSH_FP_UpdateAlarmStatus" +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_SCADA_ShowAlarmLimits +'function: Sets the style and position of the 4 alarm limits on the PV Bar graph +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_SCADA_ShowAlarmLimits +dim alarmtype, alarmlim, alarmPri 'to do: handle null return from the limit and priority values +alarmtype = 0: alarmlim = 0: alarmPri = 0 + for i = 1 to 4 + alarmtype = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".ALARMTYPE" & i) + alarmPri = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".ALARM" & i & "PRIORITY") + page.all("txt_alarmtype"&i).value = GSH_FP_SCADA_GETALARMTYPELABEL(alarmtype) + if (alarmtype <> 0 and alarmPri <> 0) then + alarmlim = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".ALARMLIMIT" & i) + page.all("txt_alarmlim"&i).value = GSH_FormatPVTextTag(ConAlpTagname.value,alarmlim) + call GSH_FP_SCADA_ShowAlarmRec(page.all("RecAlarm"&i), alarmlim, alarmPri) + page.all("txt_alarmlim"&i).style.visibility = GSH_VISIBLE + page.all("txt_alarmtype"&i).style.visibility = GSH_VISIBLE + page.all("RecAlarm"&i).style.visibility = GSH_VISIBLE + end if + next +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_SCADA_GETALARMTYPELABEL +'function: Returns the text for the Alarm Limit label +'parameters: nAlarmType = numeric value for the Alarm Type +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_FP_SCADA_GETALARMTYPELABEL(nAlarmType) +'gsh_log_s("GSH_FP_SCADA_GETALARMTYPELABEL nAlarmType=" & nAlarmType) +Dim sLabel: sLabel = "" + select case nAlarmType + case GSH_FP_PVHH + sLabel = GSH_FP_PVHH_LABEL + case GSH_FP_PVH + sLabel = GSH_FP_PVH_LABEL + case GSH_FP_PVL + sLabel = GSH_FP_PVL_LABEL + case GSH_FP_PVLL + sLabel = GSH_FP_PVLL_LABEL + end select + GSH_FP_SCADA_GETALARMTYPELABEL = sLabel +'gsh_log_e("GSH_FP_SCADA_GETALARMTYPELABEL returns >>>>>>>>"&sLabel) +end function + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_SCADA_ShowAlarmRec +'function: Sets the style and position of one alarm limit on the PV Bar graph +'parameters: oRect = object ref to limit bar +' alarmlim = value of the limit, alarmPri = value of the alarm priority determines the style +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_SCADA_ShowAlarmRec(oRect, alarmlim, alarmPri) +'gsh_log_s("GSH_FP_ShowAlarmRec oRect=" & oRect.id & ", alarmlim=" & alarmlim & ", alarmPri=" & alarmPri) + dim iNumPixels, iBottom, iRange + 'Retrieve Type value & calculate rectangle position + iRange = cdbl(txt_euhi.value) - cdbl(txt_eulo.value) + if iRange = 0 then + oRect.style.visibility = GSH_HIDDEN + else + iNumPixels = (ConIndPV.style.pixelheight * ((cdbl(alarmlim) - cdbl(txt_eulo.value)) / iRange)) + iBottom = (ConIndPV.style.pixelheight + ConIndPV.style.pixeltop) + oRect.style.pixeltop = iBottom - iNumPixels - oRect.style.pixelheight + + 'Retrieve Priority value & set style sheet + select case alarmPri + case 1 + oRect.styleClass = "AlarmLowColor" + oRect.style.visibility = GSH_VISIBLE + case 2 + oRect.styleClass = "AlarmHighColor" + oRect.style.visibility = GSH_VISIBLE + case 3 + oRect.styleClass = "AlarmEmergColor" + oRect.style.visibility = GSH_VISIBLE + case else + oRect.style.visibility = GSH_HIDDEN + end select + end if +'gsh_log_e("GSH_FP_SCADA_ShowAlarmRec") +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_C200_ShowAlarmRec +'function: Sets the style and position of one alarm limit on the PV Bar graph +'parameters: oRect = object ref to limit bar +' alarmlim = value of the limit, alarmPri = value of the alarm priority determines the style +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_C200_ShowAlarmRec(oRect, alarmlim, alarmPri) +'gsh_log_s("GSH_FP_C200_ShowAlarmRec oRect=" & oRect.id & ", alarmlim=" & alarmlim & ", alarmPri=" & alarmPri) + dim iNumPixels, iBottom, iRange + 'Retrieve Type value & calculate rectangle position + iRange = cdbl(txt_euhi.value) - cdbl(txt_eulo.value) + if iRange = 0 then + oRect.style.visibility = GSH_HIDDEN + else + iNumPixels = (ConIndPV.style.pixelheight * ((cdbl(alarmlim) - cdbl(txt_eulo.value)) / iRange)) + iBottom = (ConIndPV.style.pixelheight + ConIndPV.style.pixeltop) + oRect.style.pixeltop = iBottom - iNumPixels - oRect.style.pixelheight +'Retrieve Priority value & set style sheet + select case alarmPri + case 2 + oRect.styleClass = "AlarmLowColor" + oRect.style.visibility = GSH_VISIBLE + case 3 + oRect.styleClass = "AlarmHighColor" + oRect.style.visibility = GSH_VISIBLE + case 4 + oRect.styleClass = "AlarmEmergColor" + oRect.style.visibility = GSH_VISIBLE + case else + oRect.style.visibility = GSH_HIDDEN + end select + end if +'gsh_log_e("GSH_FP_C200_ShowAlarmRec") +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_TagNameEntryTimeout +'function: Hides timed out Tagname combobox object +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_TagNameEntryTimeout + call GSH_HIDESUBSHAPE(cmb_tagnames) + call GSH_HIDESUBSHAPE(txt_newTagname) + btn_EnterTagName.disabled = false + window.clearInterval(GSH_FPTimerId) +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_clearTimerInterval +'function: Hides timed out entry object and clears the specified timer if ID is not 0. +'parameters: oTimedOutEntryObj = object ref to something like the SP entry box +' sTimerID = unique id of the time to be cleared or 0 if no time needs to be cleared +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_ClearTimerInterval(oTimedOutEntryObj, sTimerID) +'gsh_log_s("GSH_FP_ClearTimerInterval " & " oTimedOutEntryObj=" & oTimedOutEntryObj.id & " sTimerID=" & sTimerID) + call GSH_HIDESUBSHAPE(oTimedOutEntryObj) + call GSH_FP_TagNameEntryTimeout + if sTimerID <> 0 then + window.clearInterval(sTimerID) + end if +'gsh_log_e("GSH_FP_ClearTimerInterval ") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_DEMANDTRENDBTN_CLICK ''''''''''''''''''''''''''''''''''''''''''' +'06/01/07 Remove sPathPrefix because its not being used. +'06/01/07 Added sTagNameHDA from the TagInformation because the Historian names do not match the tagname +'06/01/07 parse out the function block for storing the itemAlias +'06/25/07 change asTraceParams to asTraceNames as asTraceParams does not exists causing registry not saved. +'08/21/2008 (CL) Add a check to determine if we should use shortname for HDA Item path in order to work with Sasol PHD historian interface (Issue#21) +'10/06/2008 (CL) Add writing value of tag euhigh and eulow to trend range high and trend range low to allow the trend use +' the range from registry when the range is not available from the historian +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_DEMANDTRENDBTN_CLICK(sTagName) + +'gsh_log_s("GSH_FP_DEMANDTRENDBTN_CLICK " & " sTagName=" & sTagName) +Dim DispStr(), asCommandStr(), asTrendParams() +Dim nRetVal, nNumTrendParams, nNumCommands, nCount +Dim nIndex, nAddIndex, nDeleteIndex, nCommandIndex, nCancelIndex +Dim nNumTrends, vTrendAvail, sParseStr, istrLen, iPosition +Dim asDeleteParams(9), asActive(8), asTraceNames(8), asAutoscale(8), arY_Max(8), arY_Min(8), asStepped(8), asPVFormat(8), asTrendParamShort(8), asEUHIGH(8), asEULOW(8) +Dim sTemp, nActiveCount, nSaveIndex, nCounter, sStepped, sPathPrefix, sPVFormat, asItemAliasName, sTagNameAlias, sPVeuhigh, sPVeulow + +on error resume next + sTagNameAlias = GSH_READTAGINFORMATIONKEYVALUE(sTagName, GSH_REGKEY_TAGNAME_ALIAS, sTagName) + nIndex = 0 + nNumTrends = 8 + nNumTrendParams = GSH_READTAGINFORMATIONKEYVALUE(sTagName, "NoOfTrendingParams", 0) + nNumCommands = GSH_GETMENUCONFIG(GSH_REGKEY_NUMCMDS, 0) + sPVFormat = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT) + sPathPrefix = GSH_GETDEMANDTREND (GSH_REGISTRY_SETTINGS,GSH_REGKEY_PATHPREFIX, "") + + '10/06/2008 CL + sPVeuhigh = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_EUHIGH, 0) + sPVeulow = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_EULOW, 0) + + If nNumTrendParams >0 Then + ReDim asTrendParams(nNumTrendParams-1) + End If + + If nNumCommands>0 Then + ReDim asCommandStr(nNumCommands-1) + End If + + nActiveCount = 0 + For nCount = 1 To nNumTrends Step 1 + asTraceNames(nCount) = GSH_GETDEMANDTREND (GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ITEMALIAS, "") + asActive(nCount) = GSH_GETDEMANDTREND (GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, "OFF") + asAutoscale(nCount) = GSH_GETDEMANDTREND (GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_AUTOSCALE, "OFF") + asDeleteParams(nCount) = "" + If strComp(asActive(nCount),"ON",vbTextCompare) = 0 Then + nActiveCount = nActiveCount + 1 + asDeleteParams(nCount) = asTraceNames(nCount) + End If + Next + + If nActiveCount > 0 Then + nActiveCount = nActiveCount + 1 + End If + + If (nNumTrendParams > 0) Then + For nCount = 1 To nNumTrendParams Step 1 + asTrendParams(nCount-1) = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_TRENDPARAM & nCount, "") + istrLen = len(asTrendParams(nCount-1)) + iPosition= Instr(1, asTrendParams(nCount-1) , ".",vbtextcompare) + asTrendParamShort(nCount-1) = right(asTrendParams(nCount-1), istrLen - iPosition) + asStepped(nCount) = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_TRENDSTEPPED & nCount, "OFF") + Select Case asTrendParamShort(nCount-1) +' Select Case asTrendParams(nCount-1) + Case "PV" + asPVFormat(nCount) = sPVFormat + '10/06/2008 CL + asEUHIGH(nCount) = sPVeuhigh + asEULOW(nCount) = sPVeulow + Case "SP" + asPVFormat(nCount) = sPVFormat + '10/06/2008 CL + asEUHIGH(nCount) = sPVeuhigh + asEULOW(nCount) = sPVeulow + Case "OP" + asPVFormat(nCount) = "D1" + '10/06/2008 CL + asEUHIGH(nCount) = 106.9 + asEULOW(nCount) = -6.9 + End Select + Next + End If + + If (nNumCommands > 0) Then + For nCount = 1 To nNumCommands Step 1 + asCommandStr(nCount-1) = GSH_GETMENUCONFIG(GSH_REGKEY_CMDSTR & nCount, "") + Next + End If + + ReDim DispStr(nNumTrendParams + nNumCommands + 7 + nActiveCount) + + DispStr(nIndex) = "Tag : " & sTagNameAlias + nIndex = nIndex + 1 + DispStr(nIndex) = "" + nIndex = nIndex + 1 + + If (nNumTrendParams > 0) Then + nAddIndex = nIndex + For nCount = 0 To UBound(asTrendParams) Step 1 + DispStr(nIndex) = "Add Trace " & sTagNameAlias & "." & asTrendParams(nCount) + nIndex = nIndex + 1 + Next + + DispStr(nIndex) = "" + nIndex = nIndex + 1 + nDeleteIndex = nIndex + For nCount = 1 To nNumTrends + If asDeleteParams(nCount) <> "" Then + DispStr(nIndex) = "Delete Trace " & asDeleteParams(nCount) + nIndex = nIndex + 1 + End If + Next + + If nActiveCount > 0 Then + DispStr(nIndex) = "Delete ALL Demand Trend traces" + nIndex = nIndex + 1 + + DispStr(nIndex) = "" + nIndex = nIndex + 1 + End If + End If + + nSaveIndex = nIndex + + DispStr(nIndex) = "Save Demand Trend Setup" + nIndex = nIndex + 1 + + DispStr(nIndex) = "Restore Previous Demand Trend" + nIndex = nIndex + 1 + + DispStr(nIndex) = "" + nIndex = nIndex + 1 + + If (nNumCommands > 0) Then + nCommandIndex = nIndex + For nCount = 0 To UBound(asCommandStr) Step 1 + DispStr(nIndex) = asCommandStr(nCount) + nIndex = nIndex + 1 + Next + End If + + nCancelIndex = nIndex + 'Debugging + For nCount = 0 To nIndex Step 1 + 'gsh_log("GSH_DEMANDTRENDBTN nCount=" &nCount&"DispStr(nCount)"& DispStr(nCount)) + Next + + If nNumCommands = 0 Then + nCommandIndex = nCancelIndex + End If + +'CallAgain: + do while nRetVal = 0 + + Dim ArrMenu ' As ArrPopupMenuX + Set ArrMenu = CreateObject("ArrPopupMenuXControl.ArrPopupMenuX") + ArrMenu.ShowMenuArr DispStr + nRetVal = ArrMenu.Item + + If nActiveCount = 0 Then 'added this to handle case when all traces are inactive + nDeleteIndex = nAddIndex + 1 + End If + loop + + Set ArrMenu = Nothing + + If ((nRetVal >= nAddIndex) And (nRetVal < nDeleteIndex)) Then + Dim sOPC1_PathPrefix,sOPC2_PathPrefix, sTagNameHDA, bUseShortNameForHDA + sOPC1_PathPrefix = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_OPCKEY1PREFIX,"") + sOPC2_PathPrefix = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_OPCKEY2PREFIX,"") + bUseShortNameForHDA = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_USESHORTNAME_FOR_HDAPATH,"") + + For nCount = 1 To nNumTrends Step 1 + If asActive(nCount) = GSH_OFF Then + sTagNameHDA = GSH_READTAGINFORMATIONKEYVALUE(sTagName,GSH_REGKEY_TAGNAMEHDA, sTagName) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ITEMALIAS, sTagNameAlias & "." & asTrendParamShort(nRetVal - nAddIndex) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPCITEMPATH, sOPC1_PathPrefix & sPathPrefix & sTagName & "." & asTrendParams(nRetVal - nAddIndex) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPC2ITEMPATH, sOPC2_PathPrefix& sPathPrefix & sTagName & "." & asTrendParams(nRetVal - nAddIndex) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, GSH_ON + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TRENDSTEPPED, asStepped(nRetVal - nAddIndex + 1) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_PVFORMATKEY, asPVFormat(nRetVal - nAddIndex + 1) + + 'Added 10/06/2008 (CL) add to allows trend to use range from registry if they are not available from historian + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_HIGH, asEUHIGH(nRetVal - nAddIndex + 1) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_LOW, asEULOW(nRetVal - nAddIndex + 1) + + + 'Added 08/21/2008 (CL) to work with Sasol PHD historian interface + 'Issue#21: http://wss-edm-1/clients/hcs/services/ISE-HCS8227/ClientProjectAccess/Lists/Issue%20Tracker/DispForm.aspx?ID=21 + If(UCASE(bUseShortNameForHDA) = "ON") then + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, sTagNameHDA & "." & asTrendParamShort(nRetVal - nAddIndex) + + Else + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, sTagNameHDA & "." & asTrendParams(nRetVal - nAddIndex) + End If + + Exit Sub + End If + Next + Msgbox "Sorry ! No Traces available. Please delete a Trace before adding a new one." & Chr(13),,"HMI Operator Interface" + ElseIf ((nRetVal >= nDeleteIndex) And (nRetVal < nSaveIndex)) Then + nCount = nRetVal - nDeleteIndex + 1 + If nCount = nActiveCount Then + For nCount = 1 To nNumTrends + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, GSH_OFF + Next + Else + nDelete = 1 + For n = 1 To nNumTrends Step 1 + If asActive(n) <> "OFF" Then + If nDelete = nCount Then + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & n,GSH_REGKEY_ACTIVE, GSH_OFF + Exit Sub + End If + nDelete = nDelete + 1 + End If + Next + End If + ElseIf ((nRetVal >= nSaveIndex) And (nRetVal < nCommandIndex)) Then + nCnt = nRetVal - nSaveIndex + 1 + 'Saving demand trends to previous demand trend on registry + If nCnt = 1 Then + For nCount = 1 To nNumTrends + asItemAliasName = GSH_GETDEMANDTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ITEMALIAS, "") + asTraceNames(1) = GSH_GETDEMANDTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, "") + asTraceNames(2) = GSH_GETDEMANDTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPCITEMPATH, "") + asTraceNames(3) = GSH_GETDEMANDTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPC2ITEMPATH, "") + asActive(1) = GSH_GETDEMANDTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, "") + asAutoscale(1) = GSH_GETDEMANDTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_AUTOSCALE, "") + asStepped(1)= GSH_GETDEMANDTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TRENDSTEPPED, "") + asPVFormat(1) = GSH_GETDEMANDTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_PVFORMATKEY, "") + arY_Max(1) = GSH_GETDEMANDTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMAX,"") + arY_Min(1) = GSH_GETDEMANDTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMIN,"") + + '10/06/2008 (CL) + asEUHIGH(1) = GSH_GETDEMANDTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_HIGH,"") + asEULOW(1) = GSH_GETDEMANDTREND(GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_LOW,"") + + GSH_SETOPERATORTREND GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ITEMALIAS, asItemAliasName + GSH_SETOPERATORTREND GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, asTraceNames(1) + GSH_SETOPERATORTREND GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPCITEMPATH, asTraceNames(2) + GSH_SETOPERATORTREND GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPC2ITEMPATH, asTraceNames(3) + GSH_SETOPERATORTREND GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, asActive(1) + GSH_SETOPERATORTREND GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_AUTOSCALE, asAutoscale(1) + GSH_SETOPERATORTREND GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TRENDSTEPPED, asStepped(1) + GSH_SETOPERATORTREND GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_PVFORMATKEY, asPVFormat(1) + GSH_SETOPERATORTREND GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMAX, arY_Max(1) + GSH_SETOPERATORTREND GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMIN, arY_Min(1) + + '10/06/2008 (CL) + GSH_SETOPERATORTREND GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_HIGH, asEUHIGH(1) + GSH_SETOPERATORTREND GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_LOW, asEULOW(1) + + + Next + 'Restore previous demand strends to demand trend on Registry + Else + For nCount = 1 To nNumTrends + asItemAliasName = GSH_GETOPERATORTREND(GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ITEMALIAS, "") + asTraceNames(1) = GSH_GETOPERATORTREND(GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, "") + asTraceNames(2) = GSH_GETOPERATORTREND(GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPCITEMPATH, "") + asTraceNames(3) = GSH_GETOPERATORTREND(GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPC2ITEMPATH, "") + asActive(1) = GSH_GETOPERATORTREND(GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, "") + asAutoscale(1) = GSH_GETOPERATORTREND(GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_AUTOSCALE, "") + asStepped(1)= GSH_GETOPERATORTREND(GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TRENDSTEPPED, "") + asPVFormat(1) = GSH_GETOPERATORTREND(GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_PVFORMATKEY, "") + + '10/06/2008 (CL) + asEUHIGH(1) = GSH_GETOPERATORTREND(GSH_REGKEY_DEMANDTRENDPREV, GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_HIGH,"") + asEULOW(1) = GSH_GETOPERATORTREND(GSH_REGKEY_DEMANDTRENDPREV, GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_LOW,"") + + + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ITEMALIAS, asItemAliasName + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, asTraceNames(1) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPCITEMPATH, asTraceNames(2) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPC2ITEMPATH, asTraceNames(3) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, asActive(1) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TRENDSTEPPED, asStepped(1) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_PVFORMATKEY, asPVFormat(1) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_AUTOSCALE, asAutoscale(1) + + '10/06/2008 (CL) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_HIGH, asEUHIGH(1) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_RANGE_LOW, asEULOW(1) + + + If (strComp(asAutoscale(1),"Off",vbTextCompare) = 0) Then + arY_Max(1) = GSH_GETOPERATORTREND(GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMAX,"") + arY_Min(1) = GSH_GETOPERATORTREND(GSH_REGKEY_DEMANDTRENDPREV,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMIN,"") + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMAX,arY_Max(1) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMIN,arY_Min(1) + End If + Next + End If + ElseIf ((nRetVal >= nCommandIndex) And (nRetVal < nCancelIndex)) Then + Dim nLen, nTemp, sCommandLeft, sCommandRight, sCommand + + sParseStr = GSH_GETMENUCONFIG(GSH_REGKEY_CMDSTRING & ((nRetVal-nCommandIndex)+1), "") + nLen = Len(sParseStr) + nTemp = Instr(1,sParseStr,"XXXXXX",1) + + If nTemp = 0 Then ' do not need to add tag name to command + sCommand = sParseStr +' gsh_log("GSH_RIGHTCLICKTAGNAME 1 sCommand=" & sCommand) + Else + sCommandLeft = left(sParseStr,(nTemp - 1)) + nTemp = nLen - nTemp - 5 + If nTemp < 1 Then + sCommandRight = "" + Else + sCommandRight = right(sParseStr,(nTemp)) + End If +' gsh_log("GSH_RIGHTCLICKTAGNAME 2 sCommand=" & sCommand) + + sCommand = sCommandLeft & sTagName & sCommandRight +' id = shell(sCommand,1) + End If + id = window.parent.external.shell(sCommand,1) + End If +'errorhandler: +'gsh_log_e("GSH_DEMANDTRENDBTN" ) + +End Sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Procedure: WRITE FACEPLATE TAGNAME KEY VALUE''''''''''''''''''''''''''''''' +'Parameters: +' strKey - Part of path to Registry Item +' strValue - Value of string key +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_WRITEFACEPLATETAGNAMEKEYVALUE(strKey, strValue) +'gsh_log_s("GSH_WRITEFACEPLATETAGNAMEKEYVALUE " & "strKey=" & strKey & ",strValue=" & strValue ) + dim strRegLocation + strRegLocation = GSH_REGISTRY_BASE & GSH_REGISTRY_FACEPLATE_TAGS & strKey + 'gsh_log("GSH_WRITEFACEPLATETAGNAMEKEYVALUE checkPoint strRegLocation=" & strRegLocation) + GSH_WRITETOREGISTRY strRegLocation,strValue,"REG_SZ" +'gsh_log_e("GSH_WRITEFACEPLATETAGNAMEKEYVALUE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: READ FACEPLATE TAGNAME KEY VALUE ''''''''''''''''''''''''' +'Parameters: +' strKey - Part of path to Registry Item +' defaultString - Default Value if error or nothing found +'Returns: +' value of registry item or parameter of defaultString +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_READFACEPLATETAGNAMEKEYVALUE(strKey, defaultString) +'gsh_log_s("GSH_READFACEPLATETAGNAMEKEYVALUE" & " strKey=" & strKey & ",defaultString=" & defaultString ) + dim tempString, strRegLocationm, tempReturn + strRegLocation = GSH_REGISTRY_BASE & GSH_REGISTRY_FACEPLATE_TAGS & strKey + 'gsh_log("GSH_READFACEPLATETAGNAMEKEYVALUE checkPoint strRegLocation=" & strRegLocation) + tempString = GSH_READREGISTRY(strRegLocation,defaultString) + if tempString = "" then + tempReturn = defaultString + else + tempReturn = tempString + End If + GSH_READFACEPLATETAGNAMEKEYVALUE = tempReturn +'gsh_log_e("GSH_READFACEPLATETAGNAMEKEYVALUE returning >>>" & tempReturn&"<<<") +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'Function: GSH_FP_TAG_CHANGED '''''''''''''''''''''''''''''''''''''' +' Sets registry settings for faceplates +'Parameters: +' tagname - tag name of new tag user wants displayed in faceplate +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_TAG_CHANGED(tagname) +on error resume next +'gsh_log_s("GSH_FP_TAG_CHANGED tagname=" & tagname) + + dim vTagFamily + + 'Make tagname the focus tag + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_FOCUSTAG,tagname + 'Need to take care of associate tags as well + vTagFamily = GSH_READTAGINFORMATIONKEYVALUE(tagname, GSH_REGKEY_TAGFAM, "") + 'Store Tag Family in Display Communication Mailbox + GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE GSH_REGKEY_TAGFAM,vTagFamily + + 'Update faceplate + call GSH_UpdateFaceplate + + 'Comment out by Cuong Ly on Jun 12, 2007 + 'call GSH_UpdateFaceplate(tagname) '-> GSH_UpdateFaceplate take no paramter. +'put new tagname into current +'move current to prior1, prior1 to prior2, etc + for cnt = 1 to 4 + call GSH_WRITEFACEPLATETAGNAMEKEYVALUE(GSH_REGKEY_FACEPLATE_PRIOR&cstr(6-cnt),GSH_READFACEPLATETAGNAMEKEYVALUE(GSH_REGKEY_FACEPLATE_PRIOR&cstr(6-cnt-1),"")) + Next + call GSH_WRITEFACEPLATETAGNAMEKEYVALUE(GSH_REGKEY_FACEPLATE_PRIOR&cstr(1),GSH_READFACEPLATETAGNAMEKEYVALUE(GSH_REGKEY_FACEPLATE_CURRENT,"")) + call GSH_WRITEFACEPLATETAGNAMEKEYVALUE(GSH_REGKEY_FACEPLATE_CURRENT,tagname) +'gsh_log_e("GSH_FP_TAG_CHANGED") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_SHOWNAMESBTN_ONCLICK +'Function: Toggles the visible flag for tag name labels and changes the +'button text label between Show and Hide Names, then updates all shapes +'06/27/07 Removed call to GSH_UPDATESHAPESONDISPLAY on all 3 displays +' this is now being handled by the onperiodicupdate event handler on each pg +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_FP_SHOWNAMESBTN_ONCLICK (oShape) +'gsh_log_S("GSH_FP_SHOWNAMESBTN_ONCLICK oShape = "& oShape.id) + +Dim sIsTagNameVisible, sPushbuttonLabel + sIsTagNameVisible = GSH_FALSE + sPushbuttonLabel = "Show Names" + if (strcomp(oShape.value,"Show Names", vbtextcompare) = 0) then + sIsTagNameVisible = GSH_TRUE + sPushbuttonLabel = "Hide Names" + end if + + GSH_TAGNAMELABEL_SET_VISIBILITYSTATUS(sIsTagNameVisible) + + oShape.value = sPushbuttonLabel +'gsh_log_e("GSH_FP_SHOWNAMESBTN_ONCLICK") +End Sub + +sub GSH_FP_SHOWNAMESBTNPERIODICUPDATE + Dim sPushbuttonLabel + sPushbuttonLabel = "Show Names" + dim tagLabelVisibility + tagLabelVisibility = GSH_TAGNAMELABEL_GET_VISIBILITYSTATUS() + if (strcomp(tagLabelVisibility,GSH_TRUE, vbtextcompare) = 0) then + sPushbuttonLabel = "Hide Names" + end if + btn_ShowNames.value = sPushbuttonLabel +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_ACKALARMBUTTONCLICK +'Function: Toggles the acknowlege alarm flag to trigger an acknowledge event +' in the alarm summary page +'TODO: update +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_ACKALARMBUTTONCLICK + on error resume next + ConAlpTagname.focus + window.external.Application.Document.ParentWindow.external.InvokeMenu2 "Acknowledge Alarm" +end sub + +function GSH_FP_VALIDATETAG (sTagname) +'gsh_log_s "GSH_FP_VALIDATETAG <<<<<<" & sTagname + dim sFaceplateName, tempReturn + + 'Comment out by Cuong Ly, Jun 12, 2007. Not sure what this does + 'but it gave error + 'call DisplayDataRepository.PutValue (GSH_SDR_INTERIMPOINT, sTagname) + +'for i=1 to 1000 +'GSH_LOG i +'next + 'if ConAlpTagname.DataExists(GSH_SDR_INTERIMPOINT & ".PointID") then + sFaceplateName = GSH_READTAGINFORMATIONKEYVALUE(sTagname, GSH_REGKEY_TagFacePlate, "Error") +' gsh_log "Data Exists? " & ConAlpTagname.DataExists(GSH_SDR_INTERIMPOINT & ".PointID") & " sFaceplateName? " & sFaceplateName +' if ConAlpTagname.DataExists(GSH_SDR_INTERIMPOINT & ".PointID") or strcomp(sFaceplateName, "Error",vbtextcompare) <> 0 then + + if strcomp(sFaceplateName, "Error",vbtextcompare) <> 0 then + tempReturn = true + else + tempReturn = false + end if + GSH_FP_VALIDATETAG = tempReturn +'gsh_log_e "GSH_FP_VALIDATETAG returns >>>>>>>>>>>" & tempReturn +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_TXTNEWTAGNAME_ONCHANGE +'Function: Hides Tagname entry objects and updates the Current Point +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_TXTNEWTAGNAME_ONCHANGE +'gsh_log_s "GSH_FP_TXTNEWTAGNAME_ONCHANGE" + txt_newTagname.style.visibility = "hidden" + cmb_tagnames.style.visibility = "hidden" + if (btn_EnterTagName.disabled) then 'added this check because this event was firing twice sequentially + if GSH_FP_VALIDATETAG (txt_newTagname.value) then + GSH_FP_TAG_CHANGED(txt_newTagname.value) + else + msgbox "This Tag does not exist." + end if + btn_EnterTagName.disabled = false + end if + window.clearInterval(GSH_FPTimerId) + txt_newTagname.CancelChange +'gsh_log_e "GSH_FP_TXTNEWTAGNAME_ONCHANGE" +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_CMBTAGNAMES_ONACTIVATE +'Function: Refreshs the dropdown list to the last 5 tags used +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_CMBTAGNAMES_ONACTIVATE +'gsh_log_s "GSH_FP_CMBTAGNAMES_ONACTIVATE" +cmb_tagnames.ResetContent + for cnt = 1 to 5 + cmb_tagnames.AddString GSH_READFACEPLATETAGNAMEKEYVALUE(GSH_REGKEY_FACEPLATE_PRIOR&cstr(cnt),"") + Next +'gsh_log_e "GSH_FP_CMBTAGNAMES_ONACTIVATE" +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_CMBTAGNAMES_ONCHANGE +'Function: Hides Tagname entry objects and updates the Current Point +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_CMBTAGNAMES_ONCHANGE +'gsh_log_s "GSH_FP_CMBTAGNAMES_ONCHANGE" + cmb_tagnames.style.visibility = "Hidden" + txt_newTagname.style.visibility = "hidden" + GSH_FP_TAG_CHANGED(cmb_tagnames.value) + btn_EnterTagName.disabled = false + window.clearInterval(GSH_FPTimerId) +'gsh_log_e "GSH_FP_CMBTAGNAMES_ONCHANGE" +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_LAUNCHPOINTDETAILPAGE +'Function: Calls system detail page +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_LAUNCHPOINTDETAILPAGE +'gsh_log_s "GSH_FP_LAUNCHPOINTDETAILPAGE" + ConAlpTagname.focus + window.external.Application.Document.ParentWindow.external.InvokeMenu2 "Request Point Detail" +'gsh_log_e "GSH_FP_LAUNCHPOINTDETAILPAGE" +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_LAUNCHHOMEDISPLAYS +'Function: Launches T2, T3 and T4 for current point +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_LAUNCHHOMEDISPLAYS +'sh_log_s "GSH_FP_LAUNCHHOMEDISPLAYS" + Dim sOnDispT2, sOnDispT3, sOnDispT4, sHomeDispT2, sHomeDispT3, sHomeDispT4 + Dim sDispLocation + + sOnDispT2 = GSH_READDISPLAYCOMMUNICATIONKEYVALUE("Type2Filename","") + sOnDispT3 = GSH_READDISPLAYCOMMUNICATIONKEYVALUE("Type3Filename","") + sOnDispT4 = GSH_READDISPLAYCOMMUNICATIONKEYVALUE("Type4Filename","") + + sHomeDispT2 = GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, "Type2HomeDispFN", "") + sHomeDispT3 = GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, "Type3HomeDispFN", "") + sHomeDispT4 = GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, "Type4HomeDispFN", "") + + sDispLocation = GSH_READDISPLAYNAMES("") + if strcomp(sHomeDispT3, "", vbtextcompare) <> 0 then + if strcomp(sOnDispT3, sHomeDispT3, vbtextcompare) <> 0 then + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T3FN,sHomeDispT3) + window.navigate( sDispLocation & sHomeDispT3 & GSH_DISPLAYFILEEXTENSION ) + end if + end if + if strcomp(sHomeDispT4, "", vbtextcompare) <> 0 then + if strcomp(sOnDispT4, sHomeDispT4, vbtextcompare) <> 0 then + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T4FN,sHomeDispT4) + window.navigate( sDispLocation & sHomeDispT4 & GSH_DISPLAYFILEEXTENSION ) + end if + end if + if strcomp(sHomeDispT2, "", vbtextcompare) <> 0 then + if strcomp(sOnDispT2, sHomeDispT2, vbtextcompare) <> 0 then + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T2FN,sHomeDispT2) + window.navigate( sDispLocation & sHomeDispT2 & GSH_DISPLAYFILEEXTENSION ) + end if + end if +'sh_log_e "GSH_FP_LAUNCHHOMEDISPLAYS" +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_ENTRYFIELD_ONCHANGE +'Function: If there is a change, hide the entry field, +' set the data value, and clear the Timer +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_ENTRYFIELD_ONCHANGE (oShapeObj, sParamName, nTimerID) +if not(isNull(oShapeObj.value) or isEmpty(oShapeObj.value)) then + call GSH_HIDESUBSHAPE(oShapeObj) + ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sParamName) = oShapeObj.value + window.clearInterval(nTimerID) + oShapeObj.CancelChange +end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_SHOWNOALARM +'Function: Unlike other shapes, the alarm status display on the fp doesn't +' show the outline when not in alarm. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_SHOWNOALARM(oShape) + call GSH_SHOWNOALARM(oShape) + oShape.objects("outline").style.visibility = GSH_HIDDEN +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_GENERAL_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, ShowNames Button, Detail Trend +' 06/08/07 Removed the line to write the current FP Filename to the +' Registry mailbox because it is no longer needed in GSH_UpdateFaceplate. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_GENERAL_ONPAGECOMPLETE +'gsh_log_s "GSH_FP_GENERAL_ONPAGECOMPLETE" +on error resume next + document.title = CSTR("fp") + + txt_Description.value = cStr(GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_REGKEY_TAGDESCRIPTION, defaultString)) + txt_Keyword.value = cStr(GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_REGKEY_KEYWORD, defaultString)) + txt_Units.value = cStr(GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_REGKEY_UNITS, defaultString)) + + 'Initialize the ShowNames button label + call GSH_FP_SHOWNAMESBTNPERIODICUPDATE + window.clearInterval(GSH_FP_ShowNamesBtnTimerId) + GSH_FP_ShowNamesBtnTimerId = window.setInterval("GSH_FP_SHOWNAMESBTNPERIODICUPDATE", GSH_FP_SHOWNAMESBTNUPDATEPERIOD_SECS * 1000) + 'Start the detail trend timer and periodic update function + call GSH_FP_DetailTrendInitialize(ConAlpTagname.value) + window.clearInterval(GSH_DetailTrendUpdateTimerId) + GSH_DetailTrendUpdateTimerId = window.setInterval("GSH_DETAILTRENDPERIODICUPDATE(" & ConAlpTagname.id & ")", GSH_DETAILTRENDUPDATEPERIOD_SECS * 1000) +'gsh_log_e "GSH_FP_GENERAL_ONPAGECOMPLETE" +end sub + + +sub GSH_FP_GENERAL_INIT_STSMSG(dataScriptObj, stsMsgComboObj, stsMsgOffNormalObj, point, parameter) +'gsh_log_s("GSH_FP_GENERAL_INIT_STSMSG") +on error resume next + dim i, message, stsMsgType, numOfMessage + + 'Enter states for the StsMsg combo + stsMsgComboObj.AddString(GSH_NONE) + stsMsgType = GSH_READTAGINFORMATIONKEYVALUE(dataScriptObj.value, GSH_REGKEY_STSMSGLIST, defaultString) + + + numOfMessage = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & "NoOfMessages", "0") + + dim stsMsg_flag + stsMsg_flag = dataScriptObj.DataValue(point &"." ¶meter) + + stsMsgComboObj.value = GSH_NONE + stsMsgOffNormalObj.style.visibility = GSH_HIDDEN + + for i = 1 to numOfMessage + message = GSH_READSTSMSGLISTSKEYVALUE(stsMsgType & "\" & GSH_REGKEY_STATUSMESSAGE &i, "") + ConCboStsMsg.AddString(message) + + if i = stsMsg_flag then + stsMsgComboObj.value = message + stsMsgOffNormalObj.style.visibility = GSH_VISIBLE + end if + next +'gsh_log_e("GSH_FP_GENERAL_INIT_STSMSG") +end sub + + +sub GSH_FP_STSMSG_ONCHANGE(dataScriptObj, stsMsgComboObj, stsMsgOffNormalObj, point, parameter) + + if stsMsgComboObj.selectedIndex <> -1 then + dataScriptObj.DataValue(point & "." ¶meter) = stsMsgComboObj.selectedIndex + + if stsMsgComboObj.selectedIndex <> 0 then + stsMsgOffNormalObj.style.visibility = GSH_VISIBLE + else + stsMsgOffNormalObj.style.visibility = GSH_HIDDEN + end if + + end if + +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_GENERAL_ONPAGEUNLOAD +'Function: clears timers +'08/14/2007 - add GSH_PageUnload function to clear WshShell object +' when faceplates are unloaded. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_GENERAL_ONPAGEUNLOAD +'gsh_log_s "GSH_FP_GENERAL_ONPAGEUNLOAD" + window.clearInterval(GSH_FP_ShowNamesBtnTimerId) + window.clearInterval(GSH_DetailTrendUpdateTimerId) + GSH_PageUnload +'gsh_log_e "GSH_FP_GENERAL_ONPAGEUNLOAD" +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_ANALOG_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Alarm Limits, Detail Trend +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_ANALOG_ONPAGECOMPLETE +'gsh_log_s "GSH_FP_ANALOG_ONPAGECOMPLETE" + call GSH_FP_GENERAL_ONPAGECOMPLETE + dim nPVFormat + nPVFormat = right(GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1) + txt_euhi.value = FORMATNUMBER(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & GSH_EUHI),nPVFormat,-2, 0, 0) + txt_eulo.value = FORMATNUMBER(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & GSH_EULO),nPVFormat,-2, 0, 0) + call GSH_FP_SCADA_ShowAlarmLimits 'Setup Alarm Limits +'gsh_log_e "GSH_FP_ANALOG_ONPAGECOMPLETE" +end sub + + +sub GSH_FP_DIGITALOUTPUT_ONPAGECOMPLETE +'gsh_log_s "GSH_FP_DIGITALOUTPUT_ONPAGECOMPLETE" + call GSH_FP_GENERAL_ONPAGECOMPLETE + for i = 0 to 3 '(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".NumberOfInputStates")-1) + page.all("txt_OPState"&i).value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".State" & i & "Descriptor") + + if strcomp(page.all("txt_OPState"&i).value,"",vbtextcompare)<>0 then + page.all("TxtOP"&i).style.visibility = GSH_VISIBLE + page.all("ShpStateOP"&i).style.visibility = GSH_VISIBLE + page.all("txt_OPState"&i).style.visibility = GSH_VISIBLE + end if + next +' call GSH_FP_DIGITAL_SHOWALARMSTATES 'Setup Alarm Limits +'gsh_log_e "GSH_FP_DIGITALOUTPUT_ONPAGECOMPLETE" +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_DIGITAL_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Alarm Limits, Detail Trend +' 06/28/07 having the FP_Digital to handle 4 PV states +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_DIGITAL_ONPAGECOMPLETE +'gsh_log_s "GSH_FP_DIGITAL_ONPAGECOMPLETE" + call GSH_FP_GENERAL_ONPAGECOMPLETE + for i = 0 to 3 '(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".NumberOfInputStates")-1) + page.all("txt_PVState"&i).value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".State" & i & "Descriptor") + + if strcomp(page.all("txt_PVState"&i).value,"",vbtextcompare)<>0 then + page.all("TxtPV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStatePV"&i).style.visibility = GSH_VISIBLE + page.all("txt_PVState"&i).style.visibility = GSH_VISIBLE + end if + next +' call GSH_FP_DIGITAL_SHOWALARMSTATES 'Setup Alarm Limits +'gsh_log_e "GSH_FP_DIGITAL_ONPAGECOMPLETE" +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_TPS_DIGITAL_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Detail Trend +' 09/23/09 +' n is number of states +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_TPS_DIGITAL_ONPAGECOMPLETE(n) +'gsh_log_s "GSH_FP_TPS_DIGITAL_ONPAGECOMPLETE" + call GSH_FP_GENERAL_ONPAGECOMPLETE + for i = 0 to (n-1) '(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".NumberOfInputStates")-1) + 'page.all("txt_PVState"&i).value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".Statetxt(" &i & ")") + page.all("txt_PVState"&i).value = GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, "STATETXT(" &i &")", GSH_NONE) + if strcomp(page.all("txt_PVState"&i).value,"",vbtextcompare)<>0 then + page.all("TxtPV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStatePV"&i).style.visibility = GSH_VISIBLE + page.all("txt_PVState"&i).style.visibility = GSH_VISIBLE + end if + next +'gsh_log_e "GSH_FP_TPS_DIGITAL_ONPAGECOMPLETE" +end sub + +'GSH_FP_TPS_DIGITALOUTPUT_ONPAGECOMPLETE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_TPS_DIGITAL_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Detail Trend +' 09/23/09 +' n is number of states +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_TPS_DIGITALOUTPUT_ONPAGECOMPLETE(n) +'gsh_log_s "GSH_FP_TPS_DIGITALOUTPUT_ONPAGECOMPLETE" + call GSH_FP_GENERAL_ONPAGECOMPLETE + for i = 0 to (n-1) '(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".NumberOfInputStates")-1) + page.all("txt_OPState"&i).value = GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, "STATETXT(" &i &")", GSH_NONE) + if strcomp(page.all("txt_OPState"&i).value,"",vbtextcompare)<>0 then + page.all("TxtOP"&i).style.visibility = GSH_VISIBLE + page.all("ShpStateOP"&i).style.visibility = GSH_VISIBLE + page.all("txt_OPState"&i).style.visibility = GSH_VISIBLE + end if + next +'gsh_log_e "GSH_FP_TPS_DIGITALOUTPUT_ONPAGECOMPLETE" +end sub + + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_TPS_DIGITALCOMPOSITE_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Detail Trend +' 09/23/09 +' n is number of states +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_TPS_DIGITALCOMPOSITE_ONPAGECOMPLETE(n) +'gsh_log_s "GSH_FP_TPS_DIGITAL_ONPAGECOMPLETE" + call GSH_FP_GENERAL_ONPAGECOMPLETE +' for i = 0 to (ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".NOSTATES")-1) + for i = 0 to (n-1) + page.all("txt_PVState"&i).value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".Statetxt(" &i & ")") + if strcomp(page.all("txt_PVState"&i).value,"",vbtextcompare)<>0 then + page.all("TxtPV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStatePV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStateOP"&i).style.visibility = GSH_VISIBLE + page.all("txt_PVState"&i).style.visibility = GSH_VISIBLE + end if + next +'gsh_log_e "GSH_FP_TPS_DIGITALCOMPOSITE_ONPAGECOMPLETE" +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_TPS_DIGITALCOMPOSITE_HG_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Detail Trend +' 09/23/09 +' n is number of states +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_TPS_DIGITALCOMPOSITE_HG_ONPAGECOMPLETE(n) +'gsh_log_s "GSH_FP_TPS_DIGITAL_ONPAGECOMPLETE" + call GSH_FP_GENERAL_ONPAGECOMPLETE +' for i = 0 to (ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".NOSTATES")-1) + for i = 0 to (n-1) + page.all("txt_PVState"&i).value = GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, "STATETXT("&i&")", "") + if strcomp(page.all("txt_PVState"&i).value,"",vbtextcompare)<>0 then + page.all("TxtPV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStatePV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStateOP"&i).style.visibility = GSH_VISIBLE + page.all("txt_PVState"&i).style.visibility = GSH_VISIBLE + end if + next +'gsh_log_e "GSH_FP_TPS_DIGITALCOMPOSITE_HG_ONPAGECOMPLETE" +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_TPS_DIGITAL_HG_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Detail Trend +' 09/23/09 +' n is number of states +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_TPS_DIGITAL_HG_ONPAGECOMPLETE(n) +'gsh_log_s "GSH_FP_TPS_DIGITAL_HG_ONPAGECOMPLETE" + call GSH_FP_GENERAL_ONPAGECOMPLETE + for i = 0 to (n-1) '(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".NumberOfInputStates")-1) +' j = i+1 +'Option1 (prefer): Jamie to replace the parameters .StateiDescriptor by the correct TPS parameters +' page.all("txt_PVState"&i).value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".Statetxt(" & j & ")") + +'Option2: use states from the registry. Comment this out if we use option1 + page.all("txt_PVState"&i).value = GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, "STATETXT("&i&")", "") + + if strcomp(page.all("txt_PVState"&i).value,"",vbtextcompare)<>0 then + page.all("TxtPV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStatePV"&i).style.visibility = GSH_VISIBLE + page.all("txt_PVState"&i).style.visibility = GSH_VISIBLE + end if + next +'gsh_log_e "GSH_FP_TPS_DIGITAL_HG_ONPAGECOMPLETE" +end sub + + +sub GSH_FP_SCADA_DIGITALCOMPOSITE_ONPAGECOMPLETE +'gsh_log_s "GSH_FP_SCADA_DIGITALCOMPOSITE_ONPAGECOMPLETE" + call GSH_FP_GENERAL_ONPAGECOMPLETE + for i = 0 to 3 '(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".NumberOfInputStates")-1) + page.all("txt_PVState"&i).value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".State" & i & "Descriptor") + + + if strcomp(page.all("txt_PVState"&i).value,"",vbtextcompare)<>0 then + page.all("TxtPV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStatePV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStateOP"&i).style.visibility = GSH_VISIBLE + page.all("txt_PVState"&i).style.visibility = GSH_VISIBLE + end if + next +'gsh_log_e "GSH_FP_SCADA_DIGITALCOMPOSITE_ONPAGECOMPLETE" +end sub + +sub GSH_FP_DIGITAL_SHOWALARMSTATES +'gsh_log_s("GSH_FP_DIGITAL_SHOWALARMSTATES") +dim alarmEnabled, alarmPri + for i = 0 to 1 + alarmEnabled = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".State"&i&"AlarmEnabled") + alarmPri = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".State"&i&"AlarmPriority") + call GSH_FP_DIGITAL_SHOWALARMLINE(page.all("TxtPV"&i), page.all("ShpState"&i),page.all("LinAlm"&i), alarmEnabled, alarmPri) + next +'gsh_log_e("GSH_FP_DIGITAL_SHOWALARMSTATES") +end sub + +sub GSH_FP_DIGITAL_SHOWALARMLINE(oLabel, oState, oLine, alarmEnabled, alarmPri) +'gsh_log_s("GSH_FP_DIGITAL_SHOWALARMLINE oLine=" & oLine.id & ", alarmEnabled=" & alarmEnabled & ", alarmPri=" & alarmPri) +On error resume next +If alarmPri>0 then + if alarmEnabled>0 then + select case alarmPri + case 1 oLine.styleClass="AlarmLowColor" + case 2 oLine.styleClass="AlarmHighColor" + case 3 oLine.styleClass="AlarmEmergColor" + end select + oLine.style.visibility = GSH_VISIBLE + end if + oLabel.style.visibility = GSH_VISIBLE + oState.style.visibility = GSH_VISIBLE +end if +'gsh_log_e("GSH_FP_DIGITAL_SHOWALARMLINE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' GSH_FP_DIGITAL_SHOWALARMBAR +' give the bar line correct color based on the given alarm code. +' +' 08/10/2007 - Add this function to show a bar beside +' state that has alarm. +' Do not check if a state has alarm enabled as it required additional +' parameter. +' Reference: issue #722 (Cuong Ly) +' +sub GSH_FP_DIGITAL_SHOWALARMBAR(numOfStates) + +'gsh_log_s("GSH_FP_DIGITAL_SHOWALARMBAR numOfStates = " &numOfStates) + + dim n, alarmPri + n = numOfStates-1 + for i = 0 to n + alarmPri = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".State"&i&"AlarmPriority") + alarmEnabled = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".State"&i&"AlarmEnabled") + + if alarmEnabled>0 then + if alarmPri > 0 then + select case alarmPri + case 1 page.all("ln_AlmBar"&i).styleClass=GSH_CSSALARMLOWACK + case 2 page.all("ln_AlmBar"&i).styleClass=GSH_CSSALARMHIGHACK + case 3 page.all("ln_AlmBar"&i).styleClass=GSH_CSSALARMEMERGENCYACK + end select + page.all("ln_AlmBar"&i).style.visibility = GSH_VISIBLE + else + page.all("ln_AlmBar"&i).style.visibility = GSH_HIDDEN + end if + else + page.all("ln_AlmBar"&i).style.visibility = GSH_HIDDEN + end if + next + +'gsh_log_e("GSH_FP_DIGITAL_SHOWALARMBAR ") + +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_C200_DIGITAL_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Alarm Limits, Detail Trend +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_C200_DIGITAL_ONPAGECOMPLETE(sFunctionBlock) +'gsh_log_s("GSH_FP_C200_DIGITAL_ONPAGECOMPLETE >>>> sFunctionBlock = " & sFunctionBlock) + call GSH_FP_GENERAL_ONPAGECOMPLETE + for i = 0 to 1 + page.all("txt_PVState"&i).value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sFunctionBlock & "." & "StateText(" & i+4 & ")") + next +'gsh_log_e "GSH_FP_C200_DIGITAL_ONPAGECOMPLETE" +end sub + +sub GSH_FP_C200_DIGITALCOMPOSITE_ONPAGECOMPLETE(sFunctionBlock) +'gsh_log_s ("GSH_FP_C200_DIGITALCOMPOSITE_ONPAGECOMPLETE>>>> sFunctionBlock = " & sFunctionBlock) + call GSH_FP_GENERAL_ONPAGECOMPLETE + for i = 0 to (ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sFunctionBlock & "." & "NUMSTATES")-1) + if strcomp(page.all("txt_PVState"&i).value,"",vbtextcompare)<>0 then + page.all("txt_PVState"&i).value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sFunctionBlock & "." & "StateText(" & i+4 & ")") + page.all("TxtPV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStatePV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStateOP"&i).style.visibility = GSH_VISIBLE + page.all("txt_PVState"&i).style.visibility = GSH_VISIBLE + end if + next +'gsh_log_e "GSH_FP_C200_DIGITALCOMPOSITE_ONPAGECOMPLETE" +end sub + +sub GSH_FP_C200_DIGITALCOMPOSITE_NOOP_ONPAGECOMPLETE(sFunctionBlock) +' +'Added this subroutine for the No Output Faceplate - 04Jan2008 - JE +' +'gsh_log_s ("GSH_FP_C200_DIGITALCOMPOSITE_NOOP_ONPAGECOMPLETE>>>> sFunctionBlock = " & sFunctionBlock) + call GSH_FP_GENERAL_ONPAGECOMPLETE + for i = 0 to (ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sFunctionBlock & "." & "NUMSTATES")-1) + if strcomp(page.all("txt_PVState"&i).value,"",vbtextcompare)<>0 then + page.all("txt_PVState"&i).value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sFunctionBlock & "." & "StateText(" & i+4 & ")") + page.all("TxtPV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStatePV"&i).style.visibility = GSH_VISIBLE +' page.all("ShpStateOP"&i).style.visibility = GSH_VISIBLE + page.all("txt_PVState"&i).style.visibility = GSH_VISIBLE + end if + next +'gsh_log_e "GSH_FP_C200_DIGITALCOMPOSITE_NOOP_ONPAGECOMPLETE" +end sub + +sub GSH_FP_C200_DIGITALCOMPOSITE_NOPV_ONPAGECOMPLETE(sFunctionBlock) +'gsh_log_s ("GSH_FP_C200_DIGITALCOMPOSITE_NOPV_ONPAGECOMPLETE>>>> sFunctionBlock = " & sFunctionBlock) + call GSH_FP_GENERAL_ONPAGECOMPLETE + for i = 0 to (ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sFunctionBlock & "." & "NUMSTATES")-1) + if strcomp(page.all("txt_PVState"&i).value,"",vbtextcompare)<>0 then + page.all("txt_PVState"&i).value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sFunctionBlock & "." & "StateText(" & i+4 & ")") + page.all("TxtPV"&i).style.visibility = GSH_VISIBLE + page.all("ShpStateOP"&i).style.visibility = GSH_VISIBLE + page.all("txt_PVState"&i).style.visibility = GSH_VISIBLE + end if + next +'gsh_log_e "GSH_FP_C200_DIGITALCOMPOSITE_NOPV_ONPAGECOMPLETE" +end sub + +sub GSH_FP_C200_DIGITALOUTPUT_ONPAGECOMPLETE(sFunctionBlock) +'gsh_log_s ("GSH_FP_C200_DIGITALOUTPUT_ONPAGECOMPLETE>>>> sFunctionBlock = " & sFunctionBlock) + call GSH_FP_GENERAL_ONPAGECOMPLETE + for i = 0 to (ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sFunctionBlock & "." & "NUMSTATES")-1) + if strcomp(page.all("txt_OPState"&i).value,"",vbtextcompare)<>0 then + page.all("txt_OPState"&i).value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sFunctionBlock & "." & "StateText(" & i+4 & ")") + page.all("TxtOP"&i).style.visibility = GSH_VISIBLE + page.all("ShpStateOP"&i).style.visibility = GSH_VISIBLE + page.all("txt_OPState"&i).style.visibility = GSH_VISIBLE + end if + next +'gsh_log_e "GSH_FP_C200_DIGITALOUTPUT_ONPAGECOMPLETE" +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_C200_DIGITAL_FLAGA_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Alarm Limits, Detail Trend +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_C200_DIGITAL_FLAGA_ONPAGECOMPLETE(sFunctionBlock) +'gsh_log_s("GSH_FP_C200_DIGITAL_FLAGA_ONPAGECOMPLETE >>>> sFunctionBlock = " & sFunctionBlock) + call GSH_FP_GENERAL_ONPAGECOMPLETE + for i = 0 to 1 + page.all("txt_PVState"&i).value = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sFunctionBlock & "." & "StateText(" & i & ")") + next +'gsh_log_e "GSH_FP_C200_DIGITAL_FLAGA_ONPAGECOMPLETE" +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_C200_SELO_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Alarm Limits, Detail Trend +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_C200_SELO_ONPAGECOMPLETE +'gsh_log_s "GSH_FP_C200_SELO_ONPAGECOMPLETE" + call GSH_FP_GENERAL_ONPAGECOMPLETE + For i = 3 to 4 + if not(ConAlpTagname.isNan(GSH_SDR_CURRENTPOINT &"."&CTLBLK&".X("&i&")")) then + page.all("TxtBypassX00"&i).style.visibility = GSH_VISIBLE + page.all("ConCboBypass"&i).style.visibility = GSH_VISIBLE + end if + Next +'gsh_log_e "GSH_FP_C200_SELO_ONPAGECOMPLETE" +end sub + +sub GSH_FP_C200_SHOWWINDUPSTATUS(sWindupCode) +'gsh_log_s("GSH_FP_C200_SHOWWINDUPSTATUS " & "sWindupCode=" & sWindupCode) +'dim tempReturn: tempReturn = true + + page.all("plg_OpLow").style.visibility = GSH_HIDDEN + page.all("plg_OpHigh").style.visibility = GSH_HIDDEN + page.all("txt_Initialization").style.visibility = GSH_HIDDEN + page.all("TxtInitialization").style.visibility = GSH_HIDDEN + + Select Case sWindupCode + Case GSH_WINDUP_LO + page.all("plg_OpLow").style.visibility = GSH_VISIBLE + Case GSH_WINDUP_HI + page.all("plg_OpHigh").style.visibility = GSH_VISIBLE + Case GSH_WINDUP_HILO + page.all("txt_Initialization").style.visibility = GSH_VISIBLE + page.all("TxtInitialization").style.visibility = GSH_VISIBLE + Case else + + end Select +'gsh_log_e("GSH_FP_C200_SHOWWINDUPSTATUS returns >>>>>>>>> "&tempReturn) +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_C200_ANALOG_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Alarm Limits, Detail Trend +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_C200_ANALOG_ONPAGECOMPLETE(sInputFunctionBlock, sControlFunctionBlock) +'gsh_log_s "GSH_FP_C200_ANALOG_ONPAGECOMPLETE sFunctionBlock "& sFunctionBlock + dim nPVFormat + call GSH_FP_GENERAL_ONPAGECOMPLETE + nPVFormat = right(GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1) + txt_euhi.value = formatnumber(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sControlFunctionBlock & ".PVEUHI"), nPVFormat) + txt_eulo.value = Formatnumber(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sControlFunctionBlock & ".PVEULO"), nPVFormat) + call GSH_FP_C200_ShowAlarmLimits (sInputFunctionBlock) 'Setup Alarm Limits +'gsh_log_e "GSH_FP_C200_ANALOG_ONPAGECOMPLETE" +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_C200_ShowAlarmLimits +'function: Sets the style and position of the 4 alarm limits on the PV Bar graph +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_C200_ShowAlarmLimits (sInputFunctionBlock) +dim alarmlim, alarmPri 'to do: handle null return from the limit and priority values + 'Alarm 1 + if ConAlpTagname.IsNan(GSH_SDR_CURRENTPOINT & "." & sInputFunctionBlock & ".pvllalm.tp") then + txt_alarmlim1.value = "---" + RecAlarm1.style.visibility = GSH_HIDDEN + else + alarmlim = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sInputFunctionBlock & ".pvllalm.tp") + alarmPri = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sInputFunctionBlock & ".pvllalm.pr") + If (alarmPri > 1) then + txt_alarmlim1.value = GSH_FormatPVTextTag(ConAlpTagname.value,alarmlim) + else + txt_alarmlim1.value = "---" + end if + call GSH_FP_C200_ShowAlarmRec(RecAlarm1, alarmlim, alarmPri) + end if + 'Alarm 2 + if ConAlpTagname.IsNan(GSH_SDR_CURRENTPOINT & "." & sInputFunctionBlock & ".pvloalm.tp") then + txt_alarmlim2.value = "---" + RecAlarm2.style.visibility = GSH_HIDDEN + else + alarmlim = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sInputFunctionBlock & ".pvloalm.tp") + alarmPri = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sInputFunctionBlock & ".pvloalm.pr") + If (alarmPri > 1) then + txt_alarmlim2.value = GSH_FormatPVTextTag(ConAlpTagname.value,alarmlim) + else + txt_alarmlim2.value = "---" + end if + call GSH_FP_C200_ShowAlarmRec(RecAlarm2, alarmlim, alarmPri) + end if + 'Alarm 3 + if ConAlpTagname.IsNan(GSH_SDR_CURRENTPOINT & "." & sInputFunctionBlock & ".pvhialm.tp") then + txt_alarmlim3.value = "---" + RecAlarm3.style.visibility = GSH_HIDDEN + else + alarmlim = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sInputFunctionBlock & ".pvhialm.tp") + alarmPri = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sInputFunctionBlock & ".pvhialm.pr") + If (alarmPri > 1) then + txt_alarmlim3.value = GSH_FormatPVTextTag(ConAlpTagname.value,alarmlim) + else + txt_alarmlim3.value = "---" + end if + call GSH_FP_C200_ShowAlarmRec(RecAlarm3, alarmlim, alarmPri) + end if + 'Alarm 4 + if ConAlpTagname.IsNan(GSH_SDR_CURRENTPOINT & "." & sInputFunctionBlock & ".pvhhalm.tp") then + txt_alarmlim4.value = "---" + RecAlarm4.style.visibility = GSH_HIDDEN + else + alarmlim = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sInputFunctionBlock & ".pvhhalm.tp") + alarmPri = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sInputFunctionBlock & ".pvhhalm.pr") + If (alarmPri > 1) then + txt_alarmlim4.value = GSH_FormatPVTextTag(ConAlpTagname.value,alarmlim) + else + txt_alarmlim4.value = "---" + end if + call GSH_FP_C200_ShowAlarmRec(RecAlarm4, alarmlim, alarmPri) + end if +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_C200_UpdateAlarmStatus +'Check alarm status and updates the text value for ConTxtAlmEnabled object +'Parameter: sAlarmStatusParamName = GSH_SCADA_PARAM_ALARMDISABLED or C200 param constant +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_C200_UpdateAlarmStatus (sAlarmStatusParamName) +'gsh_log_s "GSH_FP_C200_UpdateAlarmStatus" +dim sAlarmStatus + sAlarmStatus = "---" + if (ConTxtAlmEnabled.DataValue(GSH_SDR_CURRENTPOINT & "." & sAlarmStatusParamName) = 0) then + sAlarmStatus = "Disabled" + Rec_AlmEnabledOffNorm.style.visibility = GSH_VISIBLE + else + sAlarmStatus = "Enabled" + Rec_AlmEnabledOffNorm.style.visibility = GSH_HIDDEN + end if + ConTxtAlmEnabled.value = sAlarmStatus +'gsh_log_e "GSH_FP_C200_UpdateAlarmStatus" +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_TPS_UpdateAlarmStatus +'Check alarm status and updates the text value for ConTxtAlmEnabled object +'Parameter: sAlarmStatusParamName = GSH_TPS_PARAM_ALARMDISABLED +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_TPS_UpdateAlarmStatus (sAlarmStatusParamName) +'gsh_log_s "GSH_FP_TPS_UpdateAlarmStatus" +dim sAlarmStatus + sAlarmStatus = "---" + iAlarmStatus = ConTxtAlmEnabled.DataValue(GSH_SDR_CURRENTPOINT & "." & sAlarmStatusParamName) + if (iAlarmStatus = 0) then + sAlarmStatus = "Enabled" + Rec_AlmEnabledOffNorm.style.visibility = GSH_HIDDEN + elseif(iAlarmStatus = 1) then + sAlarmStatus = "Disabled" + Rec_AlmEnabledOffNorm.style.visibility = GSH_VISIBLE + else + sAlarmStatus = "Inhibit" + Rec_AlmEnabledOffNorm.style.visibility = GSH_VISIBLE + end if + ConTxtAlmEnabled.value = sAlarmStatus +'gsh_log_e "GSH_FP_TPS_UpdateAlarmStatus" +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_C200_NUMERICA_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Alarm Limits, Detail Trend +' Added JE 14Jan08 +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_C200_NUMERICA_ONPAGECOMPLETE(sInputFunctionBlock, sControlFunctionBlock) +'gsh_log_s "GSH_FP_C200_NUMERICA_ONPAGECOMPLETE sFunctionBlock "& sFunctionBlock + dim nPVFormat + call GSH_FP_GENERAL_ONPAGECOMPLETE + nPVFormat = right(GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1) + txt_euhi.value = formatnumber(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sControlFunctionBlock & ".PVHILM"), nPVFormat) '.PVEUHI? + txt_eulo.value = Formatnumber(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & sControlFunctionBlock & ".PVLOLM"), nPVFormat) '.PVEULO? +'gsh_log_e "GSH_FP_C200_NUMERICA_ONPAGECOMPLETE" +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_HORIZONTALPVBAR_ONUPDATE +'Update function for the shape SCADA_HORIZONTALPVBAR +'Parameter: Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 06/15/07 Initialize alarm state with GSH_SHOWALARMS_WOOUTLINE +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_HORIZONTALPVBAR_ONUPDATE(oShape, flag) +'gsh_log_s "GSH_SCADA_HORIZONTALPVBAR_ONUPDATE" + If flag = 0 then + call GSH_SHOWALARMS_WOOUTLINE(GSH_NOALARMCODE,oShape) 'show normal + dim nPVValue, iPVValue, iRangeHi, iRangeLo + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_DISABLED + else + call GSH_SHOWALARMS_WOOUTLINE(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY), oShape) + End If + if GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true, false, false) then + oShape.objects("ind_PVBar").value = 0 + oShape.objects("txtBadPV").style.visibility = GSH_VISIBLE + else + oShape.objects("txtBadPV").style.visibility = GSH_HIDDEN + nPVValue = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + ' gsh_log "PV="& nPVValue + iRangeHi = CInt(oShape.GetCustomProperty("Value", "txtHighLimit")) + iRangeLo = CInt(oShape.GetCustomProperty("Value", "txtLowLimit")) + if (nPVValue >= iRangeHi) then + iPVValue = 100 + ElseIf (nPVValue <= iRangeLo) then + iPVValue = 0 + else + iPVValue = Cint(((nPVValue-iRangeLo)* 100 )/ (iRangeHi - iRangeLo)) + end if + oShape.objects("ind_PVBar").value = iPVValue + ' gsh_log "PV - iRangeLo ="& nPVValue - iRangeLo & ", iRangeHi - iRangeLo="&iRangeHi - iRangeLo + end if + End If + + If flag <= 1 then + call GSH_SETSHAPEFOCUS(oShape) + End If +'gsh_log_e "GSH_SCADA_HORIZONTALPVBAR_ONUPDATE" +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_HORIZONTALPVBAR_ONUPDATE +'Update function for the shape C200_HORIZONTALPVBAR +'Parameter: Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 06/15/07 Initialize alarm state with GSH_SHOWALARMS_WOOUTLINE +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_HORIZONTALPVBAR_ONUPDATE(oShape, flag) +'gsh_log_s "GSH_C200_HORIZONTALPVBAR_ONUPDATE" + If flag = 0 then + call GSH_SHOWALARMS_WOOUTLINE(GSH_NOALARMCODE,oShape) 'show normal + dim nPVValue, iPVValue, iRangeHi, iRangeLo + + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_DISABLED + else + call GSH_SHOWALARMS_WOOUTLINE(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY), oShape) + End If + + if GSH_C200_REGCTL_ISDATABAD(oShape.objects("rec_DataScript"),true, false, false) then + oShape.objects("ind_PVBar").value = 0 + oShape.objects("txtBadPV").style.visibility = GSH_VISIBLE +' gsh_log "bad data" + else + oShape.objects("txtBadPV").style.visibility = GSH_HIDDEN + nPVValue = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + iRangeHi = CInt(oShape.GetCustomProperty("Value", "txtHighLimit")) + iRangeLo = CInt(oShape.GetCustomProperty("Value", "txtLowLimit")) + if (nPVValue >= iRangeHi) then + iPVValue = 100 + ElseIf (nPVValue <= iRangeLo) then + iPVValue = 0 + else + iPVValue = Cint(((nPVValue-iRangeLo)* 100 )/ (iRangeHi - iRangeLo)) + end if + oShape.objects("ind_PVBar").value = iPVValue +' gsh_log "PV - iRangeLo ="& nPVValue - iRangeLo & ", iRangeHi - iRangeLo="&iRangeHi - iRangeLo + end if + End If + + If flag <= 1 then +' gsh_log "into focus" + call GSH_SETSHAPEFOCUS(oShape) + End If +'gsh_log_e "GSH_C200_HORIZONTALPVBAR_ONUPDATE" +end sub + + + + +'-------------------------------------START COMMON FUNCTIONS ------------------------------------------' +'.oPYo. +'8 8 +'8 .oPYo. ooYoYo. ooYoYo. .oPYo. odYo. +'8 8 8 8' 8 8 8' 8 8 8 8 8' `8 +'8 8 8 8 8 8 8 8 8 8 8 8 8 8 +'`YooP' `YooP' 8 8 8 8 8 8 `YooP' 8 8 +'------------------------------------------------------------------------------------------------------- + +' +' +' +sub GSH_SETSHAPEOFFNROMAL(oShape,isOffNormal) +'gsh_log_s("GSH_SETSHAPEOFFNROMAL oShape="&oShape.id &"isOffNormal=" &isOffNormal) + + if CBool(isOffNormal) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + elseif (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + +'gsh_log_e("GSH_SETSHAPEOFFNROMAL") +end sub + + +sub GSH_LevelIndicatorShowSALimits(oShape, iSAHigh, iSALow) +'gsh_log_s("GSH_LevelIndicatorShowSALimits oShape=" & oShape.id &"iSAHi = " &iSAHigh &"iSALo = " &iSALow) + Dim iNumPixels, iBottom + Dim iRangeHi, iRangeLo, iSAHi, iSALo + + iRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + iRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) + iSAHi = CDbl(iSAHigh) + iSALo = CDbl(iSALow) + + iNumPixels = 0 + if (iSAHi >= iRangeHi) then + iNumPixels = 0 + oShape.objects("rec_SAHigh").style.visibility = GSH_HIDDEN + ElseIf (iSAHi < iRangeLo) then + iNumPixels = oShape.objects("linePVRange").style.pixelheight + else + iNumPixels = (oShape.objects("linePVRange").style.pixelheight * ((iRangeHi - iSAHi) / (iRangeHi - iRangeLo))) + end if + + oShape.objects("rec_SAHigh").style.pixeltop = oShape.objects("linePVRange").style.pixeltop + oShape.objects("rec_SAHigh").style.pixelheight = iNumPixels + + iNumPixels = 0 + if (iSALo > iRangeHi) then + iNumPixels = oShape.objects("linePVRange").style.pixelheight + ElseIf (iSALo <= iRangeLo) then + oShape.objects("rec_SALow").style.visibility = GSH_HIDDEN + else + iNumPixels = (oShape.objects("linePVRange").style.pixelheight * ((iSALo - iRangeLo) / (iRangeHi - iRangeLo))) + end if + + iBottom = (oShape.objects("linePVRange").style.pixelheight + oShape.objects("linePVRange").style.pixeltop) + + oShape.objects("rec_SALow").style.pixeltop = iBottom - iNumPixels + oShape.objects("rec_SALow").style.pixelheight = iNumPixels + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_LevelIndicatorShowSALimits",oShape) + end if + +'gsh_log_e("GSH_LevelIndicatorShowSALimits") +end sub + + +sub GSH_LevelRegCtl_SAGauge_SetFocus(oShape, isOffNormal) +'gsh_log_s("GSH_LevelRegCtl_SAGauge_SetFocus oShape="&oShape.id &"isOffNormal=" &isOffNormal) + + call GSH_SETSHAPEFOCUS(oShape) + + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show analog value and outline + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("rec_IndicatorRange").fillstyle = GSH_FILLTRANSPARENT + end if + + call GSH_SETSHAPEOFFNROMAL(oShape, isOffNormal) + + +'gsh_log_e("GSH_LevelRegCtl_SAGauge_SetFocus") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_LevelRegCtl_SAGauge_SetFocus",oShape) + end if + +end sub + +sub GSH_LevelRegCtl_SAGauge_ShowHideComponents(oShape, sAlarmCode, bInSA, isOffNormal) + + dim sHidePV + sHidePV = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPHIDEPV, GSH_CPVALUE) + if ((StrComp(sHidePV, GSH_ON,vbtextcompare) = 0) AND (StrComp(sAlarmCode, GSH_NONE,vbtextcompare) = 0) AND not(bInSA) AND (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + + oShape.objects("txt_PVvalue").style.visibility = GSH_HIDDEN + oShape.objects("outline").style.visibility = GSH_HIDDEN + oShape.objects("txt_Mode").style.visibility = GSH_HIDDEN + oShape.objects("outline_static").style.visibility = GSH_HIDDEN + else + 'Setting these two shapes as transparent get the outlines to show correctly, but does not work when in SA + if (not(bInSA) OR isOffNormal) then + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("rec_IndicatorRange").fillstyle = GSH_FILLTRANSPARENT + end if + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("outline_static").style.visibility = GSH_VISIBLE + oShape.objects("txt_Mode").style.visibility = GSH_VISIBLE + end if + + +end sub + +sub GSH_LevelAnalog_SAGauge_ShowHideComponents(oShape, sAlarmCode, bInSA, isOffNormal) +'gsh_log_s("GSH_LevelAnalog_SAGauge_ShowHideComponents oShape = " &oShape.id &" sAlarmCode=" &sAlarmCode &" bInSA=" &bInSA &" isOffNormal=" &isOffNormal) + dim sHidePV + sHidePV = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPHIDEPV, GSH_CPVALUE) + + + if ((StrComp(sHidePV, GSH_ON,vbtextcompare) = 0) AND (StrComp(sAlarmCode, GSH_NONE,vbtextcompare) = 0) AND not(bInSA) AND (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + + oShape.objects("txt_PVvalue").style.visibility = GSH_HIDDEN + oShape.objects("outline").style.visibility = GSH_HIDDEN + oShape.objects("outline_static").style.visibility = GSH_HIDDEN + else + 'Setting these two shapes as transparent get the outlines to show correctly, but does not work when in SA + if (not(bInSA) OR isOffNormal) then + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("rec_IndicatorRange").fillstyle = GSH_FILLTRANSPARENT + end if + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("outline_static").style.visibility = GSH_VISIBLE + end if + +'gsh_log_e("GSH_LevelAnalog_SAGauge_ShowHideComponents") +end sub + +sub GSH_QualityAnalog_SAGauge_ShowHideComponents(oShape, sAlarmCode, bInSA, isOffNormal) + + dim sHidePV + sHidePV = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPHIDEPV, GSH_CPVALUE) + if ((StrComp(sHidePV, GSH_ON,vbtextcompare) = 0) AND (StrComp(sAlarmCode, GSH_NONE,vbtextcompare) = 0) AND not(bInSA) AND (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + + oShape.objects("txt_PVvalue").style.visibility = GSH_HIDDEN + oShape.objects("outline").style.visibility = GSH_HIDDEN + oShape.objects("outline_static").style.visibility = GSH_HIDDEN + else + 'Setting these two shapes as transparent get the outlines to show correctly, but does not work when in SA + if (not(bInSA) OR isOffNormal) then + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("rec_IndicatorRange").fillstyle = GSH_FILLTRANSPARENT + end if + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("outline_static").style.visibility = GSH_VISIBLE + end if + + +end sub + +sub GSH_OPDeviation_L1_ShowHideComponents(oShape, bInSA, isOffNormal) +'gsh_log_s("GSH_OPDeviation_L1_ShowHideComponents oShape = " &oShape.id & " bInSA = " &bInSA &" isOffNormal = " &isOffNormal) + dim sHidePV + sHidePV = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPHIDEPV, GSH_CPVALUE) + if ((StrComp(sHidePV, GSH_ON,vbtextcompare) = 0) AND not(bInSA) AND (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + + oShape.objects("txt_OPvalue").style.visibility = GSH_HIDDEN + oShape.objects("outline").style.visibility = GSH_HIDDEN + oShape.objects("txt_mode").style.visibility = GSH_HIDDEN + else + 'Setting these two shapes as transparent get the outlines to show correctly, but does not work when in SA + if (not(bInSA) OR isOffNormal) then + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("rec_IndicatorRange").fillstyle = GSH_FILLTRANSPARENT + end if + oShape.objects("txt_OPvalue").style.visibility = GSH_VISIBLE + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("txt_mode").style.visibility = GSH_VISIBLE + end if + +'gsh_log_e("GSH_OPDeviation_L1_ShowHideComponents") +end sub + + +' +'GSH_SetObjectLocation_Vertical +'Calculate and set the location of the moving object in within the range object, in the vertical direction +' +'rangeObject: the range indicator object +'movingObject: is the shape whom location need to be set. +'value (double): the value need to determine where the moving object needed to be located +'rangeHi (double): max value of the range +'rangeLo (double): min value of the range +sub GSH_SetObjectLocation_Vertical(rangeObject, movingObject, value, rangeHi, rangeLo) +'gsh_log_s("GSH_SetObjectLocation_Vertical rangeObject = " &rangeObject.id &" movingObject = " &movingObject.id &" value = " &value &"rangeHi = " &rangeHi &"rangeLo = " &rangeLo) +On Error Resume Next + + Dim iNumPixels, iBottom + + iNumPixels = 0 + if (value > rangeHi) then + iNumPixels = rangeObject.style.pixelheight + ElseIf (value < rangeLo) then + iNumPixels = 0 + else + iNumPixels = (rangeObject.style.pixelheight * ((value - rangeLo) / (rangeHi - rangeLo))) + end if + iBottom = rangeObject.style.pixelheight + rangeObject.style.pixeltop + movingObject.style.pixeltop = iBottom - iNumPixels - (movingObject.style.pixelheight / 2) + + +' gsh_log_e("GSH_SetObjectLocation_Vertical movingObject.style.pixeltop = " &movingObject.style.pixeltop) + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_SetObjectLocation_Vertical", movingObject) + end if +end sub + + +' +'GSH_SetObjectLocation_Horizontal +'Calculate and set the location of the moving object in within the range object, in the horizontal direction +' +'rangeObject: the range indicator object +'movingObject: is the shape which location need to be set. +'value (double): the value need to determine where the moving object needed to be located +'rangeHi (double): max value of the range +'rangeLo (double): min value of the range +sub GSH_SetObjectLocation_Horizontal(rangeObject, movingObject, value, rangeHi, rangeLo) +'gsh_log_s("GSH_SetObjectLocation_Horizontal rangeObject = " &rangeObject.id &" movingObject = " &movingObject.id &" value = " &value &"rangeHi = " &rangeHi &"rangeLo = " &rangeLo) +On Error Resume Next + + Dim iNumPixels + + iNumPixels = 0 + if (value > rangeHi) then + iNumPixels = rangeObject.style.pixelwidth + ElseIf (value < rangeLo) then + iNumPixels = 0 + else + iNumPixels = (rangeObject.style.pixelwidth * ((value - rangeLo) / (rangeHi - rangeLo))) + end if + + movingObject.style.pixelleft = rangeObject.style.pixelleft + iNumPixels - (movingObject.style.pixelwidth / 2) + + +' gsh_log_e("GSH_SetObjectLocation_Horizontal movingObject.style.pixelleft = " &movingObject.style.pixelleft) + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_SetObjectLocation_Horizontal", movingObject) + end if +end sub + + + +' +'calculate and set location and width of the moving object within the range object (both location and width can variate). +'rMaxValue, rMinValue, rRangeHi, rRangeLo are doubles. +' +sub GSH_SetObjectLocationAndWidth_Horizontal(rangeObject, movingObject, rMaxValue, rMinValue, rRangeHi, rRangeLo) +On Error Resume Next +'gsh_log_s("GSH_SetObjectLocationAndWidth_Horizontal rangeObject = " &rangeObject.id &" movingObject = " &movingObject.id &" rMinValue = " &rMinValue &" rMaxValue = " &rMaxValue &"rRangeLo = " &rRangeLo &"rRangeHi = " &rRangeHi) + + Dim iWidth, iLeft, rRange + + if (rMaxValue > rRangeHi) then + rMaxValue = rRangeHi + end if + + if (rMinValue < rRangeLo) then + rMinValue = rRangeLo + end if + + rRange = rRangeHi - rRangeLo + + iWidth = rangeObject.style.pixelwidth * ((rMaxValue - rMinValue) / rRange) + + iLeft = rangeObject.style.pixelleft + rangeObject.style.pixelwidth * ((rMinValue - rRangeLo) / rRange) + + + movingObject.style.pixelwidth = iWidth + movingObject.style.pixelleft = iLeft + +'gsh_log_e("GSH_SetObjectLocationAndWidth_Horizontal") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_SetObjectLocationAndWidth_Horizontal", movingObject) + end if + +end sub + + +function GSH_IsShapeInSA(iPV, iSAHi, iSALo) +' gsh_log_s("GSH_IsShapeInSA iPV = " &iPV &" iSAHi = " &iSAHi &" iSALo = " &iSALo) + + dim rPV, rSALo, rSAHi, bRetVal + rPV = CDbl(iPV) + rSALo = CDbl(iSALo) + rSAHi = CDbl(iSAHi) + bRetVal = false + + If ((rPV > rSAHi) Or (rPV < rSALo)) Then + bRetVal = true + End If + + +' gsh_log_e("GSH_IsShapeInSA bRetVal = " &bRetVal) + GSH_IsShapeInSA = bRetVal + +end function + +sub GSH_LevelRegCtl_SAGauge_InSA(oShape, iPV, iSAHi, iSALo) +' gsh_log_s("GSH_LevelRegCtl_SAGauge_InSA oShape="&oShape.id & " iPV = " &iPV &" iSAHi = " &iSAHi &" iSALo = " &iSALo) + + dim rPV, rSALo, rSAHi + rPV = CDbl(iPV) + rSALo = CDbl(iSALo) + rSAHi = CDbl(iSAHi) + + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + If ((rPV > rSAHi) Or (rPV < rSALo)) Then + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("txt_Mode").style.visibility = GSH_VISIBLE + End If + + +' gsh_log_e("GSH_LevelRegCtl_SAGauge_InSA") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_LevelRegCtl_SAGauge_SetFocus",oShape) + end if + +end sub + +sub GSH_OPDeviation_SAGauge_InSA(oShape, iOP, iSAHi, iSALo) +' gsh_log_s("GSH_OPDeviation_SAGauge_InSA oShape="&oShape.id & " iOP = " &iOP &" iSAHi = " &iSAHi &" iSALo = " &iSALo) + + dim rOP, rSALo, rSAHi + rOP = CDbl(iOP) + rSALo = CDbl(iSALo) + rSAHi = CDbl(iSAHi) + + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + If ((rPV > rSAHi) Or (rPV < rSALo)) Then + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("plg_RightCover").styleClass = GSH_CSSSAFILL + oShape.objects("plg_LeftCover").styleClass = GSH_CSSSAFILL + oShape.objects("line007").styleClass = GSH_CSSSAFILL + oShape.objects("line009").styleClass = GSH_CSSSAFILL + End If + + + +' gsh_log_e("GSH_OPDeviation_SAGauge_InSA") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_OPDeviation_SAGauge_InSA",oShape) + end if + +end sub + + +sub GSH_LevelRegCtl_SAGauge_RedrawPVRangeBar(oShape, recentPVMax, recentPVMin) +'gsh_log_s("GSH_LevelRegCtl_SAGauge_RedrawPVRangeBar oShape=" & oShape.id &" recentPVMax = " &recentPVMax &" recentPVMin = " &recentPVMin) + Dim iNumPixels, iBottom, iPVRangeBarHeight + Dim iRangeHi, iRangeLo, recentPVHi, recentPVLo + + iRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + iRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) + recentPVHi = CDbl(recentPVMax) + recentPVLo = CDbl(recentPVMin) + + If(recentPVHi > iRangeHi) Then + recentPVHi = iRangeHi + End If + + If(recentPVLo < iRangeLo) Then + recentPVLo = iRangeLo + End If + + iPVRangeBarHeight = (oShape.objects("linePVRange").style.pixelheight * ((recentPVHi - recentPVLo) / (iRangeHi - iRangeLo))) + + If(iPVRangeBarHeight < 0.5) Then + oShape.objects("rec_RecentPVRangeBar").style.visibility = GSH_HIDDEN + Else + oShape.objects("rec_RecentPVRangeBar").style.visibility = GSH_VISIBLE + End If + + oShape.objects("rec_RecentPVRangeBar").style.pixelheight = iPVRangeBarHeight + + iNumPixels = (oShape.objects("linePVRange").style.pixelheight * ((iRangeHi - recentPVHi) / (iRangeHi - iRangeLo))) + + + oShape.objects("rec_RecentPVRangeBar").style.pixeltop = oShape.objects("linePVRange").style.pixeltop + iNumPixels + + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_LevelRegCtl_SAGauge_RedrawPVRangeBar",oShape) + end if + +'gsh_log_e("GSH_LevelRegCtl_SAGauge_RedrawPVRangeBar") +end sub + + +sub GSH_OPDeviation_SAGauge_RedrawOPRangeBar(oShape, recentOPMax, recentOPMin) +'gsh_log_s("GSH_OPDeviation_SAGauge_RedrawOPRangeBar oShape=" & oShape.id &" recentOPMax = " &recentOPMax &" recentOPMin = " &recentOPMin) + Dim iNumPixels, iBottom, iPVRangeBarHeight + Dim iRangeHi, iRangeLo, recentPVHi, recentPVLo + + iRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + iRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) + recentOPHi = CDbl(recentOPMax) + recentOPLo = CDbl(recentOPMin) + + If(recentOPHi > iRangeHi) Then + recentOPHi = iRangeHi + End If + + If(recentOPLo < iRangeLo) Then + recentOPLo = iRangeLo + End If + + iRangeBarWidth = (oShape.objects("lineOPRange").style.pixelwidth * ((recentOPHi - recentOPLo) / (iRangeHi - iRangeLo))) + + If(iRangeBarWidth < 0.5) Then + oShape.objects("rec_RecentOPRangeBar").style.visibility = GSH_HIDDEN + Else + oShape.objects("rec_RecentOPRangeBar").style.visibility = GSH_VISIBLE + End If + + oShape.objects("rec_RecentOPRangeBar").style.pixelwidth = iRangeBarWidth + + iNumPixels = (oShape.objects("lineOPRange").style.pixelwidth * ((recentOPLo - iRangeLo) / (iRangeHi - iRangeLo))) + + + oShape.objects("rec_RecentOPRangeBar").style.pixelleft = oShape.objects("lineOPRange").style.pixelleft + iNumPixels + + 'oShape.objects("lineOPRange").style.pixelleft + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_OPDeviation_SAGauge_RedrawOPRangeBar",oShape) + end if + +'gsh_log_e("GSH_OPDeviation_SAGauge_RedrawOPRangeBar") +end sub + + + +sub GSH_LevelRegCtl_SAGauge_SetPVRangeBar(oShape, iPV) +'gsh_log_s("GSH_LevelRegCtl_SAGauge_RedrawPVRangeBar oShape=" & oShape.id &" iPV = " &iPV) + + 'Update recent PV values and reference time on the shape + 'We do not want shape to reload it self when Value changes, the changes will affect in next update + oShape.autoReloadContent=false + Dim lastRefTime, refTime + lastRefTime = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,"LastRefTime", GSH_CPVALUE) + refTime = GSH_READREGISTRY(GSH_REGISTRY_BASE & GSH_REGISTRY_OPDEVMONITOR & GSH_REGKEY_OPDEVMON_RESETTIME, GSH_EMPTYSTRING) + + If(IsDate(lastRefTime) AND IsDate(refTime)) Then + 'reference time is reset + If(CDate(refTime) > CDate(lastRefTime)) Then + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "RecentPVMax", GSH_CPVALUE, iPV) + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "RecentPVMin", GSH_CPVALUE, iPV) + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "LastRefTime", GSH_CPVALUE, refTime) + oShape.objects("rec_RecentPVRangeBar").style.visibility = GSH_HIDDEN + Else + Dim recentPVMax, recentPVMin + recentPVMax = FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,"RecentPVMax", GSH_CPVALUE)) + recentPVMin = FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,"RecentPVMin", GSH_CPVALUE)) + + If(CDbl(recentPVMax) < CDbl(iPV)) Then + recentPVMax = iPV + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "RecentPVMax", GSH_CPVALUE, iPV) + ElseIf(CDbl(recentPVMin) > CDbl(iPV)) Then + + recentPVMin = iPV + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "RecentPVMin", GSH_CPVALUE, iPV) + End If + + 'redraw Recent PV Range bar + call GSH_LevelRegCtl_SAGauge_RedrawPVRangeBar(oShape, recentPVMax, recentPVMin) + End If + + Else + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "RecentPVMax", GSH_CPVALUE, iPV) + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "RecentPVMin", GSH_CPVALUE, iPV) + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "LastRefTime", GSH_CPVALUE, now) + oShape.objects("rec_RecentPVRangeBar").style.visibility = GSH_HIDDEN + End If + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_LevelRegCtl_SAGauge_SetPVRangeBar",oShape) + end if + +'gsh_log_e("GSH_LevelRegCtl_SAGauge_SetPVRangeBar") +end sub + + +sub GSH_OPDeviation_SAGauge_SetPVRangeBar(oShape, iOP) +'gsh_log_s("GSH_OPDeviation_SAGauge_SetPVRangeBar oShape=" & oShape.id &" iOP = " &iOP) +on Error resume next + 'Update recent PV values and reference time on the shape + 'We do not want shape to reload it self when Value changes, the changes will affect in next update + oShape.autoReloadContent=false + Dim lastRefTime, refTime + lastRefTime = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,"LastRefTime", GSH_CPVALUE) + refTime = GSH_READREGISTRY(GSH_REGISTRY_BASE & GSH_REGISTRY_OPDEVMONITOR & GSH_REGKEY_OPDEVMON_RESETTIME, GSH_EMPTYSTRING) + + If(IsDate(lastRefTime) AND IsDate(refTime)) Then + 'reference time is reset + If(CDate(refTime) > CDate(lastRefTime)) Then + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "RecentOPMax", GSH_CPVALUE, iOP) + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "RecentOPMin", GSH_CPVALUE, iOP) + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "LastRefTime", GSH_CPVALUE, refTime) + oShape.objects("rec_RecentPVRangeBar").style.visibility = GSH_HIDDEN + Else + Dim recentMax, recentMin + recentMax = FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,"RecentOPMax", GSH_CPVALUE)) + recentMin = FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,"RecentOPMin", GSH_CPVALUE)) + + If(CDbl(recentMax) < CDbl(iOP)) Then + recentMax = iOP + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "RecentOPMax", GSH_CPVALUE, iOP) + ElseIf(CDbl(recentMin) > CDbl(iOP)) Then + + recentMin = iOP + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "RecentOPMin", GSH_CPVALUE, iOP) + End If + + 'redraw Recent PV Range bar + call GSH_OPDeviation_SAGauge_RedrawOPRangeBar(oShape, recentMax, recentMin) + End If + + Else + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "RecentOPMax", GSH_CPVALUE, iOP) + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "RecentOPMin", GSH_CPVALUE, iOP) + call GSH_SETSHAPE_CUSTOM_PROPERTY(oShape, "LastRefTime", GSH_CPVALUE, now) + oShape.objects("rec_RecentOPRangeBar").style.visibility = GSH_HIDDEN + End If + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_OPDeviation_SAGauge_SetPVRangeBar",oShape) + end if + +'gsh_log_e("GSH_OPDeviation_SAGauge_SetPVRangeBar") +end sub + + +sub GSH_LevelRegCtl_QualitySAGauge_SetFocus(oShape) +'gsh_log_s("GSH_LevelRegCtl_QualitySAGauge_SetFocus oShape="&oShape.id) + + call GSH_SETSHAPEFOCUS(oShape) + + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show analog value and outline + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("rec_IndicatorRange").fillstyle = GSH_FILLTRANSPARENT +' oShape.objects("rec_IndicatorRange").style.visibility = GSH_VISIBLE + end if +' oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE +' oShape.objects("outline").style.visibility = GSH_VISIBLE + +'gsh_log_e("GSH_LevelRegCtl_QualitySAGauge_SetFocus") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_LevelRegCtl_SAGauge_SetFocus",oShape) + end if + +end sub + + + + + +sub GSH_QualitySAGauge_ShowSALimits(oShape, iSAHigh, iSALow) +'gsh_log_s("GSH_QualitySAGauge_ShowSALimits oShape=" & oShape.id &"iSAHi = " &iSAHigh &"iSALo = " &iSALow) + Dim iNumPixels, iLeft + Dim iRangeHi, iRangeLo, iSAHi, iSALo + + iRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + iRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) + iSAHi = CDbl(iSAHigh) + iSALo = CDbl(iSALow) + + iNumPixels = 0 + if (iSAHi >= iRangeHi) then + iNumPixels = 0 + oShape.objects("rec_SAHigh").style.visibility = GSH_HIDDEN + ElseIf (iSAHi < iRangeLo) then + iNumPixels = oShape.objects("linePVRange").style.pixelwidth + else + iNumPixels = (oShape.objects("linePVRange").style.pixelwidth * ((iRangeHi - iSAHi) / (iRangeHi - iRangeLo))) + end if + + oShape.objects("rec_SAHigh").style.pixelleft = oShape.objects("linePVRange").style.pixelleft + oShape.objects("rec_SAHigh").style.pixelwidth = iNumPixels + iLeft = (oShape.objects("linePVRange").style.pixelwidth + oShape.objects("linePVRange").style.pixelleft) + oShape.objects("rec_SAHigh").style.pixelleft = iLeft - iNumPixels + + iNumPixels = 0 + if (iSALo > iRangeHi) then + iNumPixels = oShape.objects("linePVRange").style.pixelwidth + ElseIf (iSALo <= iRangeLo) then + oShape.objects("rec_SALow").style.visibility = GSH_HIDDEN + else + iNumPixels = (oShape.objects("linePVRange").style.pixelwidth * ((iSALo - iRangeLo) / (iRangeHi - iRangeLo))) + end if + + oShape.objects("rec_SALow").style.pixelwidth = iNumPixels + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_LevelIndicatorShowSALimits",oShape) + end if + +'gsh_log_e("GSH_QualitySAGauge_ShowSALimits") +end sub + + +' +'oShape: the HCS shape +'n: total number of alarm limit lines to show +sub GSH_SetAlarmLinesHorizontal(oShape, iRangeHi, iRangeLo, n) + + + dim alarmlim, alarmPri + alarmlim = 0: alarmPri = 0 + + for i = 1 to n + alarmPri = CDbl(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "ALARM" & i & "PRIORITY")) + + if (alarmPri > 0) and (alarmPri <=3) then + oShape.objects("LineAlarm"&i).style.visibility = GSH_VISIBLE + alarmlim = CDbl(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "AlarmLimit"&i)) + call GSH_SetObjectLocation_Horizontal(oShape.objects("linePVRange"), oShape.objects("LineAlarm"&i), alarmlim, iRangeHi, iRangeLo) + else + oShape.objects("LineAlarm"&i).style.visibility = GSH_HIDDEN + end if + + next + +end sub + +' +'oShape: the HCS shape +'n: total number of alarm limit lines to show +sub GSH_SetAlarmLinesVertical(oShape, iRangeHi, iRangeLo, n) + + dim alarmlim, alarmPri + alarmlim = 0: alarmPri = 0 + + for i = 1 to n + alarmPri = CDbl(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "ALARM" & i & "PRIORITY")) + + if (alarmPri > 0) and (alarmPri <=3) then + + if not(oShape.objects("rec_DataScript").IsNan(GSH_CPENTITY & ".AlarmLimit" & i)) then + oShape.objects("LineAlarm"&i).style.visibility = GSH_VISIBLE + alarmlim = CDbl(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "AlarmLimit"&i)) + call GSH_SetObjectLocation_Vertical(oShape.objects("linePVRange"), oShape.objects("LineAlarm"&i), alarmlim, iRangeHi, iRangeLo) + else + oShape.objects("LineAlarm"&i).style.visibility = GSH_HIDDEN + end if + + else + oShape.objects("LineAlarm"&i).style.visibility = GSH_HIDDEN + end if + + next + +end sub + + +sub GSH_QualitySAGauge_ShowPVFloat(oShape) +'gsh_log_s("GSH_QualitySAGauge_ShowPVFloat oShape=" & oShape.id) + Dim iNumPixels, iLeft + Dim iRangeHi, iRangeLo, iPV + 'Calculate pv value + iRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + iRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) + iPV = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + iNumPixels = 0 + if (iPV > iRangeHi) then + iNumPixels = oShape.objects("linePVRange").style.pixelwidth + ElseIf (iPV < iRangeLo) then + iNumPixels = 0 + else + iNumPixels = (oShape.objects("linePVRange").style.pixelwidth * ((iPV - iRangeLo) / (iRangeHi - iRangeLo))) + end if + + oShape.objects("rec_IndicatorFloat").style.pixelleft = oShape.objects("linePVRange").style.pixelleft + iNumPixels - (oShape.objects("rec_IndicatorFloat").style.pixelwidth / 2) + +'gsh_log_e("GSH_QualitySAGauge_ShowPVFloat") +end sub + + + +'-------------------------------------START SCADA SPECIFIC ----------------------------------------------' +' .oooooo..o .oooooo. .o. oooooooooo. .o. +'d8P' `Y8 d8P' `Y8b .888. `888' `Y8b .888. +'Y88bo. 888 .8"888. 888 888 .8"888. +' `"Y8888o. 888 .8' `888. 888 888 .8' `888. +' `"Y88b 888 .88ooo8888. 888 888 .88ooo8888. +'oo .d8P `88b ooo .8' `888. 888 d88' .8' `888. +'8""88888P' `Y8bood8P' o88o o8888o o888bood8P' o88o o8888o +'------------------------------------------------------------------------------------------------------- + + + + + + + + +'------------------------------------------------------------------ +'SCADA L1 Shapes +'------------------------------------------------------------------ +sub GSH_SCADA_QualTrend_OnUpdate(oShape, flag) +'gsh_log_s("GSH_SCADA_QualTrend_OnUpdate oShape="&oShape.id) +On Error Resume Next + + dim isDataBad + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + call GSH_QualTrend_OnUpdate(oShape, flag, isDataBad) + +'gsh_log_e("GSH_SCADA_QualTrend_OnUpdate") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_SCADA_QualTrend_OnUpdate",oShape) + end if + +end sub + +sub GSH_SCADA_Quality_L1Deviation_FR_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_SCADA_Quality_L1Deviation_FR_ONUPDATE oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad, pvRefVal + isAlmEnabled = not(GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_datascript"))) + isOffNormal = false + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + pvRefVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"PVRefVal") + + call GSH_Quality_L1Deviation_FR_ONUPDATE(oShape, flag, isAlmEnabled, GSH_CPPARAM_PV, isOffNormal, isDataBad, pvRefVal) + + +'gsh_log_e("GSH_SCADA_Quality_L1Deviation_FR_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_SCADA_Quality_L1Deviation_FR_ONUPDATE",oShape) + end if + +end sub + +sub GSH_SCADA_Quality_L1Deviation_Lo_ONUPDATE(oShape, flag) +'sh_log_s("GSH_SCADA_Quality_L1Deviation_Lo_ONUPDATE oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad, pvRefVal + isAlmEnabled = not(GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_datascript"))) + isOffNormal = false + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + pvRefVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"PVRefVal") + + call GSH_Quality_L1Deviation_Lo_ONUPDATE(oShape, flag, isAlmEnabled, GSH_CPPARAM_PV, isOffNormal, isDataBad, pvRefVal) + +'gsh_log_e("GSH_SCADA_Quality_L1Deviation_Lo_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_SCADA_Quality_L1Deviation_Lo_ONUPDATE",oShape) + end if +end sub + +sub GSH_SCADA_Quality_L1Deviation_Hi_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_SCADA_Quality_L1Deviation_Hi_ONUPDATE oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad, pvRefVal + isAlmEnabled = not(GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_datascript"))) + isOffNormal = false + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + pvRefVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"PVRefVal") + + call GSH_Quality_L1Deviation_Hi_ONUPDATE(oShape, flag, isAlmEnabled, GSH_CPPARAM_PV, isOffNormal, isDataBad, pvRefVal) + + +'gsh_log_e("GSH_SCADA_Quality_L1Deviation_Hi_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_SCADA_Quality_L1Deviation_Hi_ONUPDATE",oShape) + end if +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_QualityAnalog_L1Gauge_FR_OnUpdate Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_QualityAnalog_L1Gauge_FR_OnUpdate(oShape, flag) +'gsh_log_s("GSH_SCADA_QualityAnalog_L1Gauge_FR_OnUpdate oShape="&oShape.id) +On Error Resume Next + + + dim isAlmEnabled, isOffNormal, isDataBad + isAlmEnabled = not(GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_datascript"))) + isOffNormal = false + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + + call GSH_QualityAnalog_L1Gauge_FR_OnUpdate(oShape, flag, isAlmEnabled, GSH_CPPARAM_PV, isOffNormal, isDataBad) + +'gsh_log_e("GSH_SCADA_QualityAnalog_L1Gauge_FR_OnUpdate") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_SCADA_QualityAnalog_L1Gauge_FR_OnUpdate",oShape) + end if + +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_LevelAnalog_SAGauge_FR_SCADA Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_LevelAnalog_L1Gauge_FR_OnUpdate(oShape, flag) +'gsh_log_s("GSH_SCADA_LevelAnalog_L1Gauge_FR_OnUpdate oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad + isAlmEnabled = not(GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_datascript"))) + isOffNormal = false + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + + call GSH_LevelAnalog_L1Gauge_FR_OnUpdate(oShape, flag, isAlmEnabled, GSH_CPPARAM_PV, isOffNormal, isDataBad) + +'gsh_log_e("GSH_SCADA_LevelAnalog_L1Gauge_FR_OnUpdate") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_SCADA_LevelAnalog_L1Gauge_FR_OnUpdate",oShape) + end if + + +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'LEVEL RegCtl GAUGE FULL RANGE Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_LevelRegCtl_L1Gauge_FR_OnUpdate(oShape, flag) +'gsh_log_s("GSH_SCADA_LevelRegCtl_L1Gauge_FR_OnUpdate oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad + isAlmEnabled = not(GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_datascript"))) + isOffNormal = GSH_REGCTL_SCADA_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_CPPARAM_PV) + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + + call GSH_LevelRegCtl_L1Gauge_FR_OnUpdate(oShape, flag, isAlmEnabled, GSH_CPPARAM_PV, isOffNormal, isDataBad) + +'gsh_log_e("GSH_SCADA_LevelRegCtl_L1Gauge_FR_OnUpdate") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_SCADA_LevelRegCtl_L1Gauge_FR_OnUpdate",oShape) + end if + + +end sub + +sub GSH_SALevelIndicatorRegulatoryControlShowNormal(oShape) +'gsh_log_s("GSH_SALevelIndicatorRegulatoryControlShowNormal") + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("rec_IndicatorRange").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("rec_IndicatorRange").style.visibility = GSH_VISIBLE + oShape.objects("txt_PVvalue").style.visibility = GSH_VISIBLE + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("txt_mode").style.visibility = GSH_VISIBLE + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN +' call GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) +'gsh_log_e("GSH_SALevelIndicatorRegulatoryControlShowNormal") +end sub + +sub GSH_SALevelIndicatorRegulatoryControlShowOffNormal(oShape) + oShape.objects("txt_mode").style.visibility = GSH_VISIBLE + call GSH_LevelIndicatorRegulatoryControlShowOffNormal(oShape) +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_ANALOGINDICATOR_SA_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_ANALOGINDICATOR_SA_SCADA_ONUPDATE (oShape, flag) +on error resume next + + call GSH_ANALOGINDICATOR_SCADA_ONUPDATE (oShape, flag) + + dim sAlarmCode, bInSA + bInSA = false + sAlarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_CPPARAM_PV) + + 'Check SA Bars Limit + rSAHi = CDbl(FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSAUPPERLIMIT, GSH_CPVALUE))) + rSALo = CDbl(FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSALOWERLIMIT, GSH_CPVALUE))) + rPV = CDbl(FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV))) + + + If ((rPV > rSAHi) Or (rPV < rSALo)) Then + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + bInSA = true + Else + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + End If + + if(not(bInSA) AND StrComp(sAlarmCode,GSH_NONE,vbtextcompare) <> 0) then + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + else + oShape.objects("outline").style.visibility = GSH_VISIBLE + end if + +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_REGULATORYCONTROLINDICATOR_SA_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_REGULATORYCONTROLINDICATOR_SA_SCADA_ONUPDATE (oShape, flag) +on error resume next + + call GSH_REGULATORYCONTROLINDICATOR_SCADA_ONUPDATE (oShape, flag) + + dim sAlarmCode, bInSA + bInSA = false + sAlarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_CPPARAM_PV) + + 'Check SA Bars Limit + Dim rSAHi, rSALo, rPV + rSAHi = CDbl(FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSAUPPERLIMIT, GSH_CPVALUE))) + rSALo = CDbl(FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSALOWERLIMIT, GSH_CPVALUE))) + rPV = CDbl(FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV))) + + If ((rPV > rSAHi) Or (rPV < rSALo)) Then + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + bInSA = true + Else + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + End If + + if(not(bInSA) AND StrComp(sAlarmCode,GSH_NONE,vbtextcompare) <> 0) then + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + else + oShape.objects("outline").style.visibility = GSH_VISIBLE + end if + +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DIGITALINDICATOR_L1_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DIGITALINDICATOR_L1_SCADA_ONUPDATE (oShape, flag) +on error resume next +'gsh_log_s("GSH_DIGITALINDICATOR_L1_SCADA_ONUPDATE oShape = " &oShape.id) + + call GSH_DIGITALINDICATOR_SCADA_ONUPDATE (oShape, flag) + + dim sPVState, sSAState + 'Check SA Condition + + sPVState = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + + Dim sTagname + sTagname = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPENTITY, GSH_CPPOINT) + + 'gsh_log("sTagname = " &sTagname) + + sSAState = GSH_READTAGINFORMATIONKEYVALUE(sTagname, GSH_REGKEY_SA_STATE, GSH_NONE) + + 'gsh_log("sPVState " & sPVState & " sSAState = " &sSAState) + + If (StrComp(sPVState, sSAState, vbTextCompare) <> 0) Then + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + Else + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + End If + +' gsh_log_e("GSH_C200_DIGITALINDICATOR_L1_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_DIGITALINDICATOR_L1_SCADA_ONUPDATE",oShape) + end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_OPDEVIATION_L1_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_OPDEVIATION_L1_ONUPDATE (oShape, flag) +'gsh_log_s("GSH_SCADA_OPDEVIATION_L1_ONUPDATE oShape=" & oShape.id) +on error resume next + + dim isOffNormal + isOffNormal = GSH_SCADA_POINT_MODE_ISOFFNORMAL(oShape.objects("OPDevMonitor_Script")) + call GSH_OPDEVIATION_L1_ONUPDATE(oShape, flag, isOffNormal) + +'gsh_log_e("GSH_SCADA_OPDEVIATION_L1_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_SCADA_OPDEVIATION_L1_ONUPDATE",oShape) + end if +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_FIRSTOUT_ONUPDATE +'Update function for the shape SCADA_FIRSTOUT +'Parameter: Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_FIRSTOUT_ONUPDATE(oShape, flag) + If flag = 0 then + if GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) = 0 then + oShape.objects("lin_FirstOut").StyleClass = GSH_CSSFIRSTOUT_OFF + else + oShape.objects("lin_FirstOut").StyleClass = GSH_CSSFIRSTOUT_ON + end if + End If + If flag <= 1 then + call GSH_SETSHAPEFOCUS(oShape) + End If +end sub +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'SCADA_SPPVOPBAR Shape Specific Code +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SETSPINDICATOR_HORIZONTAL +'Determine the location of the SP float on a horizontal bar graph +'Parameter: Shape object, low limit, high limit. +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SETSPINDICATOR_HORIZONTAL(oShape, iRangeLo, iRangeHi) +'gsh_log_s("GSH_SETSPINDICATOR_HORIZONTAL oShape=" & oShape.id) + Dim iNumPixels, iXvalue, iSP + 'Calculate pv value +' gsh_log("iRangeHi=" & iRangeHi & ", iRangeLo=" & iRangeLo) + iSP = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SP) + if (iSP >= iRangeHi) then + iNumPixels = oShape.objects("ind_PVBar").style.pixelwidth + ElseIf (iSP <= iRangeLo) then + iNumPixels = 0 + else + iNumPixels = cint(oShape.objects("ind_PVBar").style.pixelwidth * ((iSP - iRangeLo) / (iRangeHi - iRangeLo))) + end if +' gsh_log("iNumPixels=" & iNumPixels) + iXvalue = oShape.objects("ind_PVBar").style.pixelLeft + oShape.objects("plg_SPIndicator").style.pixelLeft = iXvalue + iNumPixels - (oShape.objects("plg_SPIndicator").style.pixelwidth / 2) +' gsh_log(oShape.objects("plg_SPIndicator").id & " pixelLeft=" & oShape.objects("plg_SPIndicator").style.pixelLeft) +'gsh_log_e("GSH_SETSPINDICATOR_HORIZONTAL") +end sub +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +''''' Test if the SCADA_SPPVOPBAR is offnormal +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_SCADA_SPPVOPBAR_ISOFFNORMAL(oScriptDataObject) + + dim offNormalTest + offNormalTest = false + offNormalTest = GSH_SCADA_POINT_MODE_ISOFFNORMAL(oScriptDataObject) + + GSH_SCADA_SPPVOPBAR_ISOFFNORMAL = offNormalTest + +end function +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SCADA_SPPVOPBAR_ONUPDATE +'Update function for the shape SCADA_SPPVOPBAR +'Parameter: Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 06/15/07 Initialize alarm state with GSH_SHOWALARMS_WOOUTLINE +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SCADA_SPPVOPBAR_ONUPDATE(oShape, flag) + + If flag = 0 then + call GSH_SHOWALARMS_WOOUTLINE(GSH_NOALARMCODE,oShape) 'show normal + 'check if PV is bad then + if GSH_SCADA_ISDATABAD(oShape.objects("rec_DataScript"),true, false, false) or oShape.objects("rec_DataScript").IsNan(GSH_CPENTITY&"."&GSH_CPPARAM_PV) then + oShape.objects("ind_PVBar").value = 0 + oShape.objects("txtBadPV").style.visibility = GSH_VISIBLE + else + Dim iRangeHi, iRangeLo + iRangeHi = cint(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & ".EUHI")) + iRangeLo = cint(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & ".EULO")) + oShape.objects("ind_PVBar").value = Cint((GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)/(iRangeHi-iRangeLo))*100) + oShape.objects("txtBadPV").style.visibility = GSH_HIDDEN + end if + call GSH_SETSPINDICATOR_HORIZONTAL(oShape,iRangeLo,iRangeHi) + 'Alarming + if GSH_SCADA_IsAlarmingDisabled(oShape.objects("rec_DataScript")) Then + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_DISABLED + else + call GSH_SHOWALARMS_WOOUTLINE(GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY), oShape) + End If + End If + + If flag <= 1 then + call GSH_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_SCADA_SPPVOPBAR_ISOFFNORMAL(oShape.objects("rec_DataScript")) then + + 'alert("off normal") + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If +end sub +'-------------------------------------START C200 SHAPE SPECIFIC----------------------------------------------' +' a88888b. d8888b. a8888a a8888a +'d8' `88 `88 d8' ..8b d8' ..8b +'88 .aaadP' 88 .P 88 88 .P 88 +'88 88' 88 d' 88 88 d' 88 +'Y8. .88 88. Y8'' .8P Y8'' .8P +' Y88888P' Y88888P Y8888P Y8888P +'------------------------------------------------------------------------------------------------------- + + + +'--------------------------------------------------------------------------- +'C200 L1 Shapes +'--------------------------------------------------------------------------- + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_LevelRegCtl_SAGauge_FR_OnUpdate Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_LevelRegCtl_SAGauge_FR_OnUpdate(oShape, flag) +'gsh_log_s("GSH_C200_LevelRegCtl_SAGauge_FR_OnUpdate oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad + isAlmEnabled = not(GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY)) + isOffNormal = GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + + call GSH_LevelRegCtl_L1Gauge_FR_OnUpdate(oShape, flag, isAlmEnabled, GSH_EXPERION_PARAM_ALARMPRIORITY, isOffNormal, isDataBad) + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + + +'gsh_log_e("GSH_C200_LevelRegCtl_SAGauge_FR_OnUpdate") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_C200_LevelRegCtl_SAGauge_FR_OnUpdate",oShape) + end if +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_LevelAnalog_L1Gauge_FR_OnUpdate Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_LevelAnalog_L1Gauge_FR_OnUpdate(oShape, flag) +'gsh_log_s("GSH_C200_LevelAnalog_L1Gauge_FR_OnUpdate oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad + isAlmEnabled = not(GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY)) + isOffNormal = GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + + call GSH_LevelAnalog_L1Gauge_FR_OnUpdate(oShape, flag, isAlmEnabled, GSH_EXPERION_PARAM_ALARMPRIORITY, isOffNormal, isDataBad) + +' gsh_log_e("GSH_C200_LevelAnalog_L1Gauge_FR_OnUpdate") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_C200_LevelAnalog_L1Gauge_FR_OnUpdate",oShape) + end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_QualityAnalog_L1Gauge_FR_OnUpdate Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_QualityAnalog_L1Gauge_FR_OnUpdate(oShape, flag) +'gsh_log_s("GSH_C200_QualityAnalog_L1Gauge_FR_OnUpdate oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad + isAlmEnabled = not(GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY)) + isOffNormal = GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + + + call GSH_QualityAnalog_L1Gauge_FR_OnUpdate(oShape, flag, isAlmEnabled, GSH_EXPERION_PARAM_ALARMPRIORITY, isOffNormal, isDataBad) + +'gsh_log_e("GSH_C200_QualityAnalog_L1Gauge_FR_OnUpdate") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_C200_QualityAnalog_L1Gauge_FR_OnUpdate",oShape) + end if + +end sub + + + +sub GSH_C200_Quality_L1Deviation_FR_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_Quality_L1Deviation_FR_ONUPDATE oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad + isAlmEnabled = not(GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY)) + isOffNormal = GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + pvRefVal = oShape.objects("rec_DataScript").DataValue("TargetEntity.PVRefVal") + + call GSH_Quality_L1Deviation_FR_ONUPDATE(oShape, flag, isAlmEnabled, GSH_EXPERION_PARAM_ALARMPRIORITY, isOffNormal, isDataBad, pvRefVal) + + +'gsh_log_e("GSH_C200_Quality_L1Deviation_FR_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_C200_Quality_L1Deviation_FR_ONUPDATE",oShape) + end if + +end sub + + +sub GSH_C200_Quality_L1Deviation_Hi_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_C200_Quality_L1Deviation_Hi_ONUPDATE oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad, pvRefVal + isAlmEnabled = not(GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY)) + isOffNormal = GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + pvRefVal = oShape.objects("rec_DataScript").DataValue("TargetEntity.PVRefVal") + + call GSH_Quality_L1Deviation_Hi_ONUPDATE(oShape, flag, isAlmEnabled, GSH_EXPERION_PARAM_ALARMPRIORITY, isOffNormal, isDataBad, pvRefVal) + +'gsh_log_e("GSH_C200_Quality_L1Deviation_Hi_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_C200_Quality_L1Deviation_Hi_ONUPDATE",oShape) + end if +end sub + + + +sub GSH_C200_Quality_L1Deviation_Lo_ONUPDATE(oShape, flag) +'sh_log_s("GSH_C200_Quality_L1Deviation_Lo_ONUPDATE oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad, pvRefVal + isAlmEnabled = not(GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY)) + isOffNormal = GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + isDataBad = GSH_SCADA_ISDATABAD(oShape.objects("rec_datascript"),true,false,false) + pvRefVal = oShape.objects("rec_DataScript").DataValue("TargetEntity.PVRefVal") + + call GSH_Quality_L1Deviation_Lo_ONUPDATE(oShape, flag, isAlmEnabled, GSH_EXPERION_PARAM_ALARMPRIORITY, isOffNormal, isDataBad, pvRefVal) + +'gsh_log_e("GSH_C200_Quality_L1Deviation_Lo_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_C200_Quality_L1Deviation_Lo_ONUPDATE",oShape) + end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_ANALOGINDICATOR_L1_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +' TODO: Need to refactor the code to make it efficient +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_ANALOGINDICATOR_L1_ONUPDATE (oShape, flag) +on error resume next + + call GSH_C200_ANALOGINDICATOR_ONUPDATE (oShape, flag) + + dim sAlarmCode, bInSA, bInOffnormal + bInSA = false + sAlarmCode = GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY) + bInOffnormal = GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + + 'Check SA Bars Limit + rSAHi = CDbl(FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSAUPPERLIMIT, GSH_CPVALUE))) + rSALo = CDbl(FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSALOWERLIMIT, GSH_CPVALUE))) + rPV = CDbl(FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV))) + + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + If ((rPV > rSAHi) Or (rPV < rSALo)) Then + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + bInSA = true + End If + + + if(StrComp(sAlarmCode,GSH_NONE,vbtextcompare) <> 0 AND (bInOffnormal OR not(bInSA))) then + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + else + oShape.objects("outline").style.visibility = GSH_VISIBLE + end if + +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_DIGITALINDICATOR_L1_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_DIGITALINDICATOR_L1_ONUPDATE (oShape, flag) +on error resume next +'gsh_log_s("GSH_C200_DIGITALINDICATOR_L1_ONUPDATE oShape = " &oShape.id) + + call GSH_C200_DIGITALINDICATOR_ONUPDATE (oShape, flag) + + dim sAlarmCode, bInSA, bInOffnormal + bInSA = false + sAlarmCode = GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")) + bInOffnormal = GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, oShape.objects("txt_PVvalue").value) + + dim sPVState, sSAState + 'Check SA Condition + sPVState = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + + Dim sTagname + sTagname = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPENTITY, GSH_CPPOINT) + +' gsh_log("sTagname = " &sTagname) + + sSAState = GSH_READTAGINFORMATIONKEYVALUE(sTagname, GSH_REGKEY_SA_STATE, GSH_NONE) + +' gsh_log("sPVState " & sPVState & " sSAState = " &sSAState) + + If (StrComp(sPVState, sSAState, vbTextCompare) <> 0) Then + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + Else + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + bInSA = true + End If + + if(StrComp(sAlarmCode,GSH_NONE,vbtextcompare) <> 0 AND (bInOffnormal OR not(bInSA))) then + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + else + oShape.objects("outline").style.visibility = GSH_VISIBLE + end if + +' gsh_log_e("GSH_C200_DIGITALINDICATOR_L1_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_C200_DIGITALINDICATOR_L1_ONUPDATE",oShape) + end if +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_OPDEVIATION_L1_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_OPDEVIATION_L1_ONUPDATE (oShape, flag) +'gsh_log_s("GSH_C200_OPDEVIATION_L1_ONUPDATE oShape=" & oShape.id) +on error resume next + + dim isOffNormal + isOffNormal = GSH_C200_ANALOG_MODE_ISOFFNORMAL(oShape.objects("OPDevMonitor_Script"), GSH_CPENTITY) + + call GSH_OPDEVIATION_L1_ONUPDATE (oShape, flag, isOffNormal) + +'gsh_log_e("GSH_C200_OPDEVIATION_L1_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_C200_OPDEVIATION_L1_ONUPDATE",oShape) + end if +end sub +' +'oShape: the HCS shape +'n: total number of alarm limit lines to show +sub GSH_C200_SetAlarmLinesHorizontal(oShape, iRangeHi, iRangeLo, n) + dim alarmlim, alarmPri + alarmlim = 0: alarmPri = 0 + for i = 1 to n + alarmPri = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"CP_AlarmPriority" & i)) + if (alarmPri > 0) and (alarmPri <=4) then + if not(oShape.objects("rec_DataScript").IsNan(GSH_CPENTITY & ".CP_AlarmLimit" & i)) then + alarmlim = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"CP_AlarmLimit" & i)) + oShape.objects("LineAlarm"&i).style.visibility = GSH_VISIBLE + call GSH_SetObjectLocation_Horizontal(oShape.objects("linePVRange"), oShape.objects("LineAlarm"&i), alarmlim, iRangeHi, iRangeLo) + else + oShape.objects("LineAlarm"&i).style.visibility = GSH_HIDDEN + end if + else + oShape.objects("LineAlarm"&i).style.visibility = GSH_HIDDEN + end if + next +end sub + +sub GSH_C200_SetAlarmLinesVertical(oShape, rRangeHi, rRangeLo, n) +On Error Resume Next +'gsh_log_s("GSH_C200_SetAlarmLinesVertical oShape="&oShape.id) + dim alarmlim, alarmPri + alarmlim = 0: alarmPri = 0 + for i = 1 to n + alarmPri = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"CP_AlarmPriority" & i)) + if (alarmPri > 0) and (alarmPri <=4) then + if not(oShape.objects("rec_DataScript").IsNan(GSH_CPENTITY & ".CP_AlarmLimit" & i)) then + oShape.objects("LineAlarm"&i).style.visibility = GSH_VISIBLE + alarmlim = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"CP_AlarmLimit" & i)) + call GSH_SetObjectLocation_Vertical(oShape.objects("linePVRange"), oShape.objects("LineAlarm"&i), alarmlim, rRangeHi, rRangeLo) + else + oShape.objects("LineAlarm"&i).style.visibility = GSH_HIDDEN + end if + else + oShape.objects("LineAlarm"&i).style.visibility = GSH_HIDDEN + end if + next +'gsh_log_e("GSH_C200_SetAlarmLinesVertical") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_C200_SetAlarmLinesVertical",oShape) + end if +end sub + + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_SPPVOPBAR_ONUPDATE +'Update function for the shape SCADA_SPPVOPBAR +'Parameter: Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 07/31/2007 - Create this new shape & Add code to handle it (Cuong Ly) +' 09/03/2007 - Changed cint function to use int function as cint function +' can not handle large number (example 150000) (CL) +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_SPPVOPBAR_ONUPDATE(oShape, flag) + +'gsh_log_s("GSH_C200_SPPVOPBAR_ONUPDATE ") + + If flag = 0 then + call GSH_SHOWALARMS_WOOUTLINE(GSH_NOALARMCODE,oShape) 'show normal + 'check if PV is bad then + If GSH_C200_REGCTL_ISDATABAD(oShape.objects("rec_DataScript"),true,false,false) Then + oShape.objects("ind_PVBar").value = 0 + oShape.objects("txtBadPV").style.visibility = GSH_VISIBLE + else + Dim iRangeHi, iRangeLo + + iRangeHi = int(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & ".DACA.PVEUHI")) + iRangeLo = int(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & ".DACA.PVEULO")) + oShape.objects("ind_PVBar").value = int((GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)/(iRangeHi-iRangeLo))*100) + oShape.objects("txtBadPV").style.visibility = GSH_HIDDEN +' gsh_log "iRangeHi="&iRangeHi-iRangeLo&", iRangeLo="&iRangeLo& ", PV="& GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) &", PVBar="& Cint((GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)/(iRangeHi-iRangeLo))*100) + End if + + call GSH_SETSPINDICATOR_HORIZONTAL(oShape,iRangeLo,iRangeHi) + End If + + If flag <= 1 then + + 'Alarming + if GSH_C200_ISALARMINGDISABLEDPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) Then + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_DISABLED + else + call GSH_SHOWALARMS_WOOUTLINE(GSH_C200_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY), oShape) + End If + + call GSH_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + + 'TODO: Need to be tested + 'Check the point ramping + Select Case GSH_GET_POINT_RAMPING_VALUE(oShape.objects("rec_DataScript")) + Case GSH_RAMPING_RUN + call GSH_REGULATORYCONTROLINDICATORSHOW_RAMP(oShape,Left(GSH_RAMPING_RUN,1)) + Case GSH_RAMPING_PRESET + call GSH_REGULATORYCONTROLINDICATORSHOW_RAMP(oShape,Left(GSH_RAMPING_PRESET,1)) + Case else + oShape.objects("txt_ramp").style.visibility = GSH_HIDDEN + end Select + + End If +'gsh_log_e("GSH_C200_SPPVOPBAR_ONUPDATE ") +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_OPDEVMONITOR_ONUPDATE +'Update function for the shape GSH_C200_OPDEVIATION +'05/16/2008 - Create this new shape & Add code to handle it (Cuong Ly) +' +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_OPDEVMONITOR_ONUPDATE(oShape, flag) +' gsh_log_s("GSH_C200_OPDEVMONITOR_ONUPDATE oShapeId =" &oShape.id) + + call GSH_C200_OPDEVMONITOR_SHOWNORMAL(oShape) + ' No alarm checking (OK by Jamie) + + If flag <=1 then + + 'Do focus and offnormal checking here. It is important that all shape generic functionalities are + 'done before shape specific ones + call GSH_SETSHAPEFOCUS(oShape) + + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show analog value and outline +' oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("plg_LeftCover001").styleClass = GSH_CSSFOCUSASSOCIATED + oShape.objects("plg_LeftCover002").styleClass = GSH_CSSFOCUSASSOCIATED + oShape.objects("line007").styleClass = GSH_CSSFOCUSASSOCIATED + oShape.objects("line009").styleClass = GSH_CSSFOCUSASSOCIATED + end if + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_ANALOG_MODE_ISOFFNORMAL(oShape.objects("OPDevMonitor_Script"), GSH_CPENTITY) then + + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End if + + If flag = 0 then + + 'We do not want shape to reload it self when Value changes, the changes will affect in next update + oShape.autoReloadContent=false + + 'Get OP value + dim opRefVal, deadBand, filterVal, lastRefTime, diff_old + + 'Get the Deadband, filter, OPRefVal and the lastRefTime + + opRefVal = Cdbl(oShape.GetCustomProperty("Value","OPRefVal")) + deadBand = Cdbl(oShape.GetCustomProperty("Value","DeadBand")) + filterVal = oShape.GetCustomProperty("Value","Filter") + lastRefTime = oShape.GetCustomProperty("Value","LastRefTime") + diff_old = oShape.GetCustomProperty("Value","Diff_Old") + + dim diff_cur, deviation, opVal, diff_prev + opVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("OPDevMonitor_Script"),GSH_CPPARAM_OP) + + if(StrComp(opVal,GSH_BADPV_TEXT, vbtextcompare)=0) then + exit sub + end if + + 'Reference OP value is not set, + if(opRefVal < -99.0) then + opRefVal = opVal + oShape.SetCustomProperty "Value","OPRefVal",opVal + oShape.SetCustomProperty "Value","LastRefTime",now + oShape.objects("plg_OPRefValue").style.pixelleft = GSH_GET_OPREFPOSITION(oShape,opRefVal) + exit sub + end if + + 'Get the RefTime from Registry. + dim opDevMonRegistryBase, refTime + opDevMonRegistryBase = GSH_REGISTRY_BASE & GSH_REGISTRY_OPDEVMONITOR + refTime = GSH_READREGISTRY(opDevMonRegistryBase & GSH_REGKEY_OPDEVMON_RESETTIME, GSH_EMPTYSTRING) + + 'If the RefTime > lastRefTime then update OPRefVal to current OPVal & update lastRefTime to RefTime + 'Need to give it a time buffer (i.e within 10s)? + if((StrComp(refTime,GSH_EMPTYSTRING)<>0) AND (CDate(refTime) > CDate(lastRefTime))) then + oShape.SetCustomProperty "Value","OPRefVal",opVal + opRefVal = opVal + oShape.SetCustomProperty "Value","LastRefTime",refTime + oShape.SetCustomProperty "Value","Diff_Old",0 + diff_old = 0 + oShape.objects("plg_OPRefValue").style.pixelleft = GSH_GET_OPREFPOSITION(oShape,opRefVal) + end if + + 'Calculate OPDeviation + diff_prev = diff_old + diff_cur = opVal - opRefVal + diff_old = (diff_cur + diff_old)*filterVal + oShape.SetCustomProperty "Value","Diff_Old", diff_old + +' gsh_log("diff_cur = " &diff_cur &" diff_old = " &diff_old &" diff_prev = " &diff_prev) + + 'Set ButterFlies + if diff_cur > 0 then + oShape.objects("ind_OPDevBarRight").value = diff_cur + oShape.objects("ind_OPDevBarLeft").value = 0 + elseif diff_cur < 0 then + oShape.objects("ind_OPDevBarRight").value = 0 + oShape.objects("ind_OPDevBarLeft").value = diff_cur + else + oShape.objects("ind_OPDevBarRight").value = 0 + oShape.objects("ind_OPDevBarLeft").value = 0 + end if + + 'Set arrows - TODO: should this compare absolute value? + if ((diff_cur-diff_prev) > deadBand) then + 'set arrow to right + oShape.objects("grp_RightArrow").style.visibility = GSH_VISIBLE + oShape.objects("grp_LeftArrow").style.visibility = GSH_HIDDEN + elseif ((diff_prev - diff_cur) > deadBand) then + 'set arrow to the left + oShape.objects("grp_RightArrow").style.visibility = GSH_HIDDEN + oShape.objects("grp_LeftArrow").style.visibility = GSH_VISIBLE + else + 'hide arrows + oShape.objects("grp_RightArrow").style.visibility = GSH_HIDDEN + oShape.objects("grp_LeftArrow").style.visibility = GSH_HIDDEN + end if + + End If + +' gsh_log_e("GSH_C200_OPDEVMONITOR_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_C200_OPDEVMONITOR_ONUPDATE",oShape) + end if + +end sub + + +function GSH_GET_OPREFPOSITION(oShape, opRefVal) + + dim newPosition + dim opBarLeftPixel, opBarWidthPixel + opBarLeftPixel = oShape.objects("ind_OPBar").style.pixelleft + opBarWidthPixel = oShape.objects("ind_OPBar").style.pixelwidth + + if opRefVal <= 0 then + newPosition = opBarLeftPixel - 2 'There is a little offset + elseif opRefVal >= 100 then + newPosition = opBarWidthPixel + 2 'There is a little offset + else + newPosition = cint(opBarLeftPixel + (opBarWidthPixel - opBarLeftPixel)*(CInt(opRefVal))/100) + end if + + GSH_GET_OPREFPOSITION = newPosition + +end function + + +sub GSH_C200_OPDEVMONITOR_SHOWNORMAL(oShape) +'gsh_log_s("GSH_C200_OPDEVMONITOR_SHOWNORMAL oShapeID = " &oShape.id) + + oShape.objects("focus").style.visibility = GSH_HIDDEN + oShape.objects("grp_RightArrow").style.visibility = GSH_HIDDEN + oShape.objects("grp_LeftArrow").style.visibility = GSH_HIDDEN + oShape.objects("plg_LeftCover001").styleClass = GSH_CSSBACKGROUND_GRAY + oShape.objects("plg_LeftCover002").styleClass = GSH_CSSBACKGROUND_GRAY + oShape.objects("line007").styleClass = GSH_CSSBACKGROUND_GRAY + oShape.objects("line009").styleClass = GSH_CSSBACKGROUND_GRAY +' oShape.objects("ind_OPDevBarRight").value = 10 +' oShape.objects("ind_OPDevBarLeft").value = -10 +' call GSH_SHOWNOALARM(oShape) +'gsh_log_s("GSH_C200_OPDEVMONITOR_SHOWNORMAL") + +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_OPDEVIATIONRESET +'Update function for the shape GSH_C200_OPDEVIATIONRESET +'05/14/2008 - Create this new shape & Add code to handle it (Cuong Ly) +' +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_OPDEVIATIONRESET_ONLOAD(oShape) +' gsh_log_s("GSH_C200_OPDEVIATIONRESET_ONLOAD oShapeId =" &oShape.id) + + dim opDevMonRegistryBase + opDevMonRegistryBase = GSH_REGISTRY_BASE & GSH_REGISTRY_OPDEVMONITOR + + 'Set ResetTime and ResetDate to current time + GSH_WRITETOREGISTRY opDevMonRegistryBase & GSH_REGKEY_OPDEVMON_RESETTIME, Now,"REG_SZ" + oShape.objects("RefTime").value = FormatDateTime(now,vbShortDate) & " " &FormatDateTime(now,vbShortTime) + +' gsh_log_e("GSH_C200_OPDEVIATIONRESET_ONLOAD RefDate = " &Date &" RefTime = " &Time) + +end sub + + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_C200_OPDEVIATIONRESET_ONCLICK +'Update function for the shape GSH_C200_OPDEVIATIONRESET +'05/14/2008 - Create this new shape & Add code to handle it (Cuong Ly) +' +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_C200_OPDEVIATIONRESET_ONCLICK(oShape) +' gsh_log_s("GSH_C200_OPDEVIATIONRESET_ONCLICK oShapeId =" &oShape.id) + + dim opDevMonRegistryBase + opDevMonRegistryBase = GSH_REGISTRY_BASE & GSH_REGISTRY_OPDEVMONITOR + + 'Set ResetTime and ResetDate to current time + GSH_WRITETOREGISTRY opDevMonRegistryBase & GSH_REGKEY_OPDEVMON_RESETTIME, Now,"REG_SZ" + oShape.objects("RefTime").value = FormatDateTime(now,vbShortDate) & " " &FormatDateTime(now,vbShortTime) + + 'Ask all the OPDevMonitor shapes to update themselves + GSH_UPDATE_OPDEVMON_ONDISPLAY("") + 'and other shapes as well + GSH_UPDATESHAPESONDISPLAY("") +' gsh_log_e("GSH_C200_OPDEVIATIONRESET_ONCLICK RefDate = " &Date &" RefTime = " &Time) + +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TRENDTARGET_CLICK +'06/01/07 Remove sPathPrefix because its not being used. +'06/01/07 Added sTagNameHDA from the TagInformation because the Historian names do not match the tagname +'06/01/07 parse out the function block for storing the itemAlias +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TRENDTARGET_CLICK(oShape) + Dim nCount, i, istrLen, iPosition, nNoOfTrends + Dim asTraceNames(9), asTrendParams(9), arAutoscale(9), anLower(9), anUpper(9) + Dim asStepped(9), asTrace(9), asTraceParams(9), asTraceNameAlias(9), asPVFormat(9), asTrendParamShort(9) + + Dim sOPC1_PathPrefix,sOPC2_PathPrefix, sTagNameHDA + sOPC1_PathPrefix = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_OPCKEY1PREFIX,"") + sOPC2_PathPrefix = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_OPCKEY2PREFIX,"") + bUseShortNameForHDA = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_USESHORTNAME_FOR_HDAPATH,"") + + nNoOfTrends = 8 + for i = 1 to nNoOfTrends + asTraceNames(i) = ucase(oShape.GetCustomProperty("Value","TrendTag"&i)) + asTrendParams(i) = oShape.GetCustomProperty("Value","TrendTag"&i&"Param") + arAutoscale(i) = oShape.GetCustomProperty("Value","Autoscale"& i) + anLower(i) = oShape.GetCustomProperty("Value","Lower"&i) + anUpper(i) = oShape.GetCustomProperty("Value","Upper"&i) + Next + + For nCount=1 To nNoOfTrends + If Left(asTraceNames(nCount),1) <> "" Then + asTraceParams(nCount) = ucase(GSH_READTAGINFORMATIONKEYVALUE(asTraceNames(nCount),GSH_REGKEY_TRENDPARAM & asTrendParams(nCount), "1")) + 'msgbox ("asTraceParams(nCount) = " & nCount & ", " & asTraceParams(nCount) ) + istrLen = len(cstr(asTraceParams(nCount))) + iPosition= Instr(1, asTraceParams(nCount) , ".",vbtextcompare) + asTrendParamShort(nCount) = right(asTraceParams(nCount), istrLen - iPosition) + + 'msgbox ("asTrendParamShort(nCount) = " & nCount & ", " & asTrendParamShort(nCount) ) + + asStepped(nCount) = GSH_READTAGINFORMATIONKEYVALUE(asTraceNames(nCount),GSH_REGKEY_TRENDSTEPPED & asTrendParams(nCount), "OFF") + asPVFormat(nCount) = GSH_READTAGINFORMATIONKEYVALUE(asTraceNames(nCount),GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT) + asTraceNameAlias(nCount) = GSH_READTAGINFORMATIONKEYVALUE(asTraceNames(nCount), GSH_REGKEY_TAGNAME_ALIAS, asTraceNames(nCount)) + sTagNameHDA = GSH_READTAGINFORMATIONKEYVALUE(asTraceNames(nCount),GSH_REGKEY_TAGNAMEHDA, asTraceNames(nCount)) + + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ITEMALIAS, asTraceNameAlias(nCount) & "." & asTrendParamShort(nCount) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPCITEMPATH, sOPC1_PathPrefix& asTraceNames(nCount) & "." & asTraceParams(nCount) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPC2ITEMPATH, sOPC2_PathPrefix &asTraceNames(nCount) & "." & asTraceParams(nCount) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, GSH_ON + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TRENDSTEPPED, asStepped(nCount) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_PVFORMATKEY, asPVFormat(nCount) + + 'Added 09/09/2008 (JE) to work with Sasol PHD historian interface + 'Issue#21: http://wss-edm-1/clients/hcs/services/ISE-HCS8227/ClientProjectAccess/Lists/Issue%20Tracker/DispForm.aspx?ID=21 + If(UCASE(bUseShortNameForHDA) = "ON") then + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, sTagNameHDA & "." & asTrendParamShort(nCount) + Else + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, sTagNameHDA & "." & asTraceParams(nCount) + End If + + If arAutoscale(nCount) <> 1 Then + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_AUTOSCALE, "OFF" + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMAX, anUpper(nCount) + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMIN, anLower(nCount) + Else + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_AUTOSCALE, "ON" + End If + Else + GSH_SETDEMANDTREND GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, GSH_OFF + End If + Next +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TRENDTARGET_VARIN_CLICK +' Feb. 27, 2008 Created to handle OVTrends as wells DemandTrend configuration - JE +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TRENDTARGET_VARIN_CLICK(oShape) + Dim nCount, i, istrLen, iPosition, nNoOfTrends + Dim asTraceNames(9), asTrendParams(9), arAutoscale(9), anLower(9), anUpper(9) + Dim asStepped(9), asTrace(9), asTraceParams(9), asTraceNameAlias(9), asPVFormat(9), asTrendParamShort(9) + Dim aTrendApp + + Dim sOPC1_PathPrefix,sOPC2_PathPrefix, sTagNameHDA, bUseShortNameForHDA + sOPC1_PathPrefix = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_OPCKEY1PREFIX,"") + sOPC2_PathPrefix = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_OPCKEY2PREFIX,"") + bUseShortNameForHDA = GSH_READREGISTRY(GSH_REGISTRY_TRENDCONFIG&GSH_REGKEY_USESHORTNAME_FOR_HDAPATH,"") + aTrendApp = ucase(oShape.GetCustomProperty("Value","TrendApp")) + + nNoOfTrends = 8 + for i = 1 to nNoOfTrends + asTraceNames(i) = ucase(oShape.GetCustomProperty("Value","TrendTag"&i)) + asTrendParams(i) = oShape.GetCustomProperty("Value","TrendTag"&i&"Param") + arAutoscale(i) = oShape.GetCustomProperty("Value","Autoscale"&i) + anLower(i) = oShape.GetCustomProperty("Value","Lower"&i) + anUpper(i) = oShape.GetCustomProperty("Value","Upper"&i) + Next + + For nCount=1 To nNoOfTrends + If Left(asTraceNames(nCount),1) <> "" Then + asTraceParams(nCount) = ucase(GSH_READTAGINFORMATIONKEYVALUE(asTraceNames(nCount),GSH_REGKEY_TRENDPARAM & asTrendParams(nCount), "1")) + istrLen = len(cstr(asTraceParams(nCount))) + iPosition= Instr(1, asTraceParams(nCount) , ".",vbtextcompare) + asTrendParamShort(nCount) = right(asTraceParams(nCount), istrLen - iPosition) + asStepped(nCount) = GSH_READTAGINFORMATIONKEYVALUE(asTraceNames(nCount),GSH_REGKEY_TRENDSTEPPED & asTrendParams(nCount), "OFF") + asPVFormat(nCount) = GSH_READTAGINFORMATIONKEYVALUE(asTraceNames(nCount),GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT) + asTraceNameAlias(nCount) = GSH_READTAGINFORMATIONKEYVALUE(asTraceNames(nCount), GSH_REGKEY_TAGNAME_ALIAS, asTraceNames(nCount)) + sTagNameHDA = GSH_READTAGINFORMATIONKEYVALUE(asTraceNames(nCount),GSH_REGKEY_TAGNAMEHDA, asTraceNames(nCount)) + + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ITEMALIAS, asTraceNameAlias(nCount) & "." & asTrendParamShort(nCount) + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPCITEMPATH, sOPC1_PathPrefix& asTraceNames(nCount) & "." & asTraceParams(nCount) + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_OPC2ITEMPATH, sOPC2_PathPrefix &asTraceNames(nCount) & "." & asTraceParams(nCount) + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, GSH_ON + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TRENDSTEPPED, asStepped(nCount) + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_PVFORMATKEY, asPVFormat(nCount) + + 'Added 09/09/2008 (JE) to work with Sasol PHD historian interface + 'Issue#21: http://wss-edm-1/clients/hcs/services/ISE-HCS8227/ClientProjectAccess/Lists/Issue%20Tracker/DispForm.aspx?ID=21 + If(UCASE(bUseShortNameForHDA) = "ON") then + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, sTagNameHDA & "." & asTrendParamShort(nCount) + Else + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_HDAPATH, sTagNameHDA & "." & asTraceParams(nCount) + End If + + If arAutoscale(nCount) <> 1 Then + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_AUTOSCALE, "OFF" + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMAX, anUpper(nCount) + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_TREND_YMIN, anLower(nCount) + Else + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_AUTOSCALE, "ON" + End If + Else + GSH_SETANYTREND aTrendApp,GSH_REGKEY_TRENDTRACE & nCount,GSH_REGKEY_ACTIVE, GSH_OFF + End If + Next +end sub + + + +Sub GSH_SV_RESET_LCLICK (oShape) +'gsh_log_s("GSH_SV_RESET_LCLICK oShape = "& oShape.id) + + Dim sT2DisplayName, sT3DisplayName, sT4DisplayName, sDispLocation, sDisplayName + sDispLocation = GSH_READDISPLAYNAMES("") + sT2DisplayName = oShape.GetCustomProperty("Value","L2_DisplayName") + sT3DisplayName = oShape.GetCustomProperty("Value","L3_DisplayName") + sT4DisplayName = oShape.GetCustomProperty("Value","L4_DisplayName") + + + sTemp = sDispLocation & sT2DisplayName & ".htm" + If sT2DisplayName <> "" Then + window.navigate(sTemp) + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T2FN,sT2DisplayName) + End if + sTemp = sDispLocation & sT3DisplayName & ".htm" + If sT3DisplayName <> "" Then + window.navigate(sTemp) + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T3FN,sT3DisplayName) + End if + sTemp = sDispLocation & sT4DisplayName & ".htm" + if sT4DisplayName <> "" Then + window.navigate(sTemp) + call GSH_WRITEDISPLAYCOMMUNICATIONKEYVALUE (GSH_REGKEY_T4FN,sT4DisplayName) + End if +'gsh_log_e("GSH_GSH_SV_RESET_LCLICK") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_CVINDICATOR_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'11July2008 Created shape for SASOL RMPCT +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_CVINDICATOR_SCADA_ONUPDATE (oShape, flag) +on error resume next + + call GSH_ANALOGINDICATORSHOWNORMAL(oShape) + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'cv Status + Dim Status + Status = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "Status") + + HighLimit = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "HighLimit")) + LowLimit = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "LowLimit")) + ReadValue = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "READVALUE")) + + dim sEntityPoint + sEntityPoint = UCASE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY)) + if strcomp(sEntityPoint, "", vbtextcompare) <> 0 then + EUHigh = csng(GSH_READTAGINFORMATIONKEYVALUE(sEntityPoint, "EUHigh", 100.0)) + EULow = csng(GSH_READTAGINFORMATIONKEYVALUE(sEntityPoint, "EULow", 0.0)) + end if + + 'ReadValue Data Check + If GSH_C200_ANALOG_ISDATABAD(ReadValue,true,false,false) Then + oShape.objects("txt_ReadValue").value = GSH_FormatPVText(oShape,ReadValue) + else + oShape.objects("txt_ReadValue").value = "---" + End If + + If HighLimit > EUHigh then ' not active - no constraint + HighLimit = EUHigh + oShape.objects("plg_opHigh").style.visibility = GSH_HIDDEN + else + if ReadValue > HighLimit then + oShape.objects("plg_opHigh").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_opHigh").style.visibility = GSH_HIDDEN + end if + end if + + If LowLimit < EULow then ' not active + LowLimit = EULow + oShape.objects("plg_opLow").style.visibility = GSH_HIDDEN + else + if ReadValue < LowLimit then + oShape.objects("plg_opLow").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_opLow").style.visibility = GSH_HIDDEN + end if + end if + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) and strComp(Status,"GOOD",vbtextCompare)<> 0 then + call GSH_GROUPREGULATORYCONTROLSHOWOFFNORMAL(oShape) + end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_CVLABEL_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'18July2008 Created shape for SASOL RMPCT +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_CVLABEL_SCADA_ONUPDATE (oShape, flag) +on error resume next + + 'Focus + call GSH_ValveRegulatoryControlSetFocus(oShape) + call GSH_ANALOGINDICATORSHOWNORMAL(oShape) + + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'cv Status + Dim Status + Status = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "Status") + + HighLimit = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "HighLimit")) + LowLimit = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "LowLimit")) + ReadValue = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "READVALUE")) + + dim sEntityPoint + sEntityPoint = UCASE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY)) + if strcomp(sEntityPoint, "", vbtextcompare) <> 0 then + EUHigh = csng(GSH_READTAGINFORMATIONKEYVALUE(sEntityPoint, "EUHigh", 100.0)) + EULow = csng(GSH_READTAGINFORMATIONKEYVALUE(sEntityPoint, "EULow", 0.0)) + end if + + If HighLimit > EUHigh then ' not active - no constraint + HighLimit = EUHigh + oShape.objects("plg_opHigh").style.visibility = GSH_HIDDEN + else + if ReadValue > HighLimit then + oShape.objects("plg_opHigh").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_opHigh").style.visibility = GSH_HIDDEN + end if + end if + + If LowLimit < EULow then ' not active + LowLimit = EULow + oShape.objects("plg_opHigh").style.visibility = GSH_HIDDEN + else + if ReadtValue < LowLimit then + oShape.objects("plg_opLow").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_opLow").style.visibility = GSH_HIDDEN + end if + end if + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) and strComp(Status,"GOOD",vbtextCompare)<> 0 then + call GSH_GROUPREGULATORYCONTROLSHOWOFFNORMAL(oShape) + end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MVINDICATOR_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'11July2008 Created shape for SASOL RMPCT +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MVINDICATOR_SCADA_ONUPDATE (oShape, flag) +on error resume next + + call GSH_ANALOGINDICATORSHOWNORMAL(oShape) + call GSH_GEN_SETSHAPEFOCUS(oShape) + + Dim Status + Status = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "Status") + + HighLimit = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "HighLimit")) + LowLimit = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "LowLimit")) + SentValue = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "SentValue")) + + 'SentValue Data Check + If GSH_C200_ANALOG_ISDATABAD(SentValue,true,false,false) Then + oShape.objects("txt_SentValue").value = GSH_FormatPVText(oShape,SentValue) + else + oShape.objects("txt_SentValue").value = "---" + End If + + dim sEntityPoint + sEntityPoint = UCASE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY)) + if strcomp(sEntityPoint, "", vbtextcompare) <> 0 then + EUHigh = csng(GSH_READTAGINFORMATIONKEYVALUE(sEntityPoint, "EUHigh", 100.0)) + EULow = csng(GSH_READTAGINFORMATIONKEYVALUE(sEntityPoint, "EULow", 0.0)) + end if + + Range = EUHigh - EULow + + If HighLimit > EUHigh then ' not active - no constraint + HighLimit = EUHigh + oShape.objects("plg_opHigh").style.visibility = GSH_HIDDEN + else + if ((abs(HighLimit - SentValue)/Range) < 0.03) or (tempSentValue > tempHighLimit) then + oShape.objects("plg_opHigh").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_opHigh").style.visibility = GSH_HIDDEN + end if + end if + + If LowLimit < EULow then ' not active + LowLimit = EULow + oShape.objects("plg_opHigh").style.visibility = GSH_HIDDEN + else + if ((abs(LowLimit - SentValue)/Range) < 0.03) or (tempSentValue < tempLowLimit) then + oShape.objects("plg_opLow").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_opLow").style.visibility = GSH_HIDDEN + end if + end if + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL)then + If strComp(Status, "ON",vbtextCompare)<> 0 then + call GSH_GROUPREGULATORYCONTROLSHOWOFFNORMAL(oShape) + end if + end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_MVLABEL_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'18July2008 Created shape for SASOL RMPCT +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_MVLABEL_SCADA_ONUPDATE (oShape, flag) +on error resume next + + call GSH_ANALOGINDICATORSHOWNORMAL(oShape) + + call GSH_GEN_SETSHAPEFOCUS(oShape) + + Dim Status + Status = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "Status") + + HighLimit = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "HighLimit")) + LowLimit = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "LowLimit")) + SentValue = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "SentValue")) + + dim sEntityPoint + sEntityPoint = UCASE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY)) + if strcomp(sEntityPoint, "", vbtextcompare) <> 0 then + EUHigh = csng(GSH_READTAGINFORMATIONKEYVALUE(sEntityPoint, "EUHigh", 100.0)) + EULow = csng(GSH_READTAGINFORMATIONKEYVALUE(sEntityPoint, "EULow", 0.0)) + end if + + Range = EUHigh - EULow + + If HighLimit > EUHigh then ' not active - no constraint + HighLimit = EUHigh + oShape.objects("plg_opHigh").style.visibility = GSH_HIDDEN + else + if ((abs(HighLimit - SentValue)/Range) < 0.03) or (tempSentValue > tempHighLimit) then + oShape.objects("plg_opHigh").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_opHigh").style.visibility = GSH_HIDDEN + end if + end if + + If LowLimit < EULow then ' not active + LowLimit = EULow + oShape.objects("plg_opHigh").style.visibility = GSH_HIDDEN + else + if ((abs(LowLimit - SentValue)/Range) < 0.03) or (tempSentValue < tempLowLimit) then + oShape.objects("plg_opLow").style.visibility = GSH_VISIBLE + else + oShape.objects("plg_opLow").style.visibility = GSH_HIDDEN + end if + end if + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) and strComp(Status, "GOOD",vbtextCompare)<> 0 then + call GSH_GROUPREGULATORYCONTROLSHOWOFFNORMAL(oShape) + end if +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DVINDICATOR_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'11July2008 Created shape for SASOL RMPCT +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DVINDICATOR_SCADA_ONUPDATE (oShape, flag) +on error resume next + + call GSH_ANALOGINDICATORSHOWNORMAL(oShape) + + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'cv Status + Dim Status + Status = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "Status") + + 'ReadValue Data Check + ReadValue = csng(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "READVALUE")) + If GSH_C200_ANALOG_ISDATABAD(ReadValue,true,false,false) Then + oShape.objects("txt_ReadValue").value = GSH_FormatPVText(oShape,ReadValue) + else + oShape.objects("txt_ReadValue").value = "---" + End If + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) and strComp(tempStatus, "GOOD",vbtextCompare)<> 0 then + call GSH_GROUPREGULATORYCONTROLSHOWOFFNORMAL(oShape) + end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_DVLABEL_SCADA_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'18July2008 Created shape for SASOL RMPCT +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_DVLABEL_SCADA_ONUPDATE (oShape, flag) +on error resume next + + call GSH_ANALOGINDICATORSHOWNORMAL(oShape) + + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'cv Status + Dim Status + Status = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & "Status") + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) and strComp(tempStatus, "GOOD",vbtextCompare)<> 0 then + call GSH_GROUPREGULATORYCONTROLSHOWOFFNORMAL(oShape) + end if +end sub + +'--------------------------------------------START SHAPE COMMON------------------------------ + +'---------------------------------------------------------------------------------------------- + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_ALARM_SHOWSTATUS'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape object +'TODO: REMOVE GSH_TPS_ALARM_SHOWSTATUS when all TPS are switched to AlarmNum +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_ALARM_SHOWSTATUS (oShape, alarmPriorityParameter, alarmEnabledParameter, cssDisabledAlarmStyle) +on error resume next + 'Alarming + + 'if GSH_ISALARMINGENABLED(oShape.objects("rec_DataScript") ,GSH_CPENTITY, alarmEnabledParameter) Then + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript") ,GSH_CPENTITY, alarmEnabledParameter) Then + call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,alarmPriorityParameter),oShape) + else + oShape.objects("outline").styleClass = cssDisabledAlarmStyle + End If +End sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_ALARM_SHOWSTATUS_ALARMNUM ''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape object +'TODO: REMOVE GSH_TPS_ALARM_SHOWSTATUS when all TPS are switched to AlarmNum +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_ALARM_SHOWSTATUS_ALARMNUM (oShape, alarmEnabledParameter, cssDisabledAlarmStyle) +on error resume next + 'Alarming + + 'if GSH_ISALARMINGENABLED(oShape.objects("rec_DataScript") ,GSH_CPENTITY, alarmEnabledParameter) Then + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript") ,GSH_CPENTITY, alarmEnabledParameter) Then + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + oShape.objects("outline").styleClass = cssDisabledAlarmStyle + End If +End sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape object +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +''jan.25''' + +sub GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, parameterToCheck) +on error resume next + + dim sStateTxt + sStateTxt = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),parameterToCheck) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape object +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_DIGITALOUTPUT_OFFNORMAL_SHOWSTATUS (oShape, parameterToCheck) +on error resume next + + dim sStateTxt + sStateTxt = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),parameterToCheck) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_DIGITAL_POINT_OP_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, sStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End sub + + +' +' +' +sub GSH_COMMON_LOCALMAN_INTERLOCK_SHOWSTATUS(scriptObj, txt_LocalMan_Interlock) + 'Check for Localman and Interlock status + dim bLocalMan, bInterlock + bInterlock = GSH_GETENTITYPARAMETERVALUE(scriptObj,GSH_CPPARAM_INTERLOCK) + + if(bInterlock) then + txt_LocalMan_Interlock.value = GSH_INTERLOCK_TXT + txt_LocalMan_Interlock.style.visibility = GSH_VISIBLE + else + bLocalMan = GSH_GETENTITYPARAMETERVALUE(scriptObj,GSH_CPPARAM_LOCALMAN) + if(bLocalMan) then + txt_LocalMan_Interlock.value = GSH_LOCALMAN_TXT + txt_LocalMan_Interlock.style.visibility = GSH_VISIBLE + else + txt_LocalMan_Interlock.style.visibility = GSH_HIDDEN + end if + end if +end sub + +'------------------------------------------------------------ +'GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT +' This function required for TPS digital shapes b/c: +' TPS digital points allow force states +' which are unpreditable so we have to make PV references as State Description in stead of numeric +' In that case, we need this function to find the numeric state based on the statetext in order +' to find out which statestyle to use +' +' Sept 24,2009 - CL +'---------------------------------------------------------------- +function GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT(oShape, sStateTxt) +on error resume next +'gsh_log_s("GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT oShape=" & oShape.id & " sStateTxt = " &sStateTxt) + dim i, nNumericState, sTemp + + nNumericState = -1 + + 'Not sure if we need up to 5, but this is to get it work with demo points + for i=0 to 5 + sTemp = GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), "STATETXT("&i&")", GSH_NONE) + if strcomp(sStateTxt,sTemp,vbtextcompare)=0 then + nNumericState = i + end if + Next + GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT = nNumericState +'gsh_log_e("GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT nNumericState = " &nNumericState) +end function + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_COMMON_ANALOGOUTPUTINDICATOR_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_COMMON_ANALOGOUTPUTINDICATOR_ONUPDATE (oShape, flag) +on error resume next + If flag = 0 then + oShape.objects("outline").styleClass = GSH_CSSANALOGOUTPUTINDICATORNORMAL + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) + end if + If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) + end if +End sub + + +''''''''''''''''''''''''''''''''''''''''''''' +'Show Safe Operating Limit status +'''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_COMMON_SHOW_SOL_STATUS(oShape) +on error resume next +'gsh_log_s("GSH_COMMON_SHOW_SOL_STATUS oShape=" & oShape.id) + + 'Compare solHi and solLo with pvVal and change plg_SOL color accordingly + oShape.objects("plg_SOL").styleClass = GSH_CSSSSOLINLIMIT + oShape.objects("txt_SOL").style.visibility = GSH_HIDDEN + + If (not GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false)) Then + + Dim pvVal, solHi, solLo, sTagname + 'Check if PV is in SOL limit + pvVal = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV) + + sTagname = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPENTITY, GSH_CPPOINT) + solHi = GSH_READTAGINFORMATIONKEYVALUE(sTagname, GSH_REGKEY_SOL_HI, GSH_NONE) + solLo = GSH_READTAGINFORMATIONKEYVALUE(sTagname, GSH_REGKEY_SOL_LO, GSH_NONE) + + 'Note: this nested condition ((solHi <> GSH_NONE) and (CDbl(solHi) < CDbl(pvVal))) + 'somehow does not work when solHi (or solLo) = GSH_NONE + 'So have to break them down + If (solHi <> GSH_NONE) Then + If (CDbl(solHi) < CDbl(pvVal)) Then + oShape.objects("plg_SOL").styleClass = GSH_CSSSSOLOUTOFLIMIT + oShape.objects("txt_SOL").style.visibility = GSH_VISIBLE + End If + End If + + If (solLo <> GSH_NONE) Then + If (CDbl(solLo) > CDbl(pvVal)) Then + oShape.objects("plg_SOL").styleClass = GSH_CSSSSOLOUTOFLIMIT + oShape.objects("txt_SOL").style.visibility = GSH_VISIBLE + End If + End If + + End If + +'gsh_log_e("GSH_COMMON_SHOW_SOL_STATUS oShape") + +End sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'*****Added by Jamie - Sept. 22 **** +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_ANALOG_POINT_IS_OFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_TPS_ANALOG_POINT_IS_OFFNORMAL(oDataBoundObject,sPointName,sOffNormalParam) +'gsh_log_s("GSH_TPS_ANALOG_POINT_IS_OFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName & ",sOffNormalParam=" & sOffNormalParam ) +on error resume next +Dim tempReturn + tempReturn = false + if strComp(GSH_GETPARAMETERVALUE(oDataBoundObject, sPointName, sOffNormalParam),GSH_MAN,vbTextCompare) = 0 then + tempReturn = true + end if +GSH_TPS_ANALOG_POINT_IS_OFFNORMAL = tempReturn +'gsh_log_e("GSH_TPS_ANALOG_POINT_IS_OFFNORMAL returning >>>" & tempReturn & "<<<") +end function + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_REGCTL_POINT_ISOFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +' In addition to Analog point off normal check, checks other RegCtl offnormal conditions +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' sTagName = TagName, eg. Entity or other literal tagname +' sParamName = Name of the param to check isNAN +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_TPS_REGCTL_POINT_ISOFFNORMAL(oDataBoundObject,sPointName,sOffNormalParam) +'gsh_log_s("GSH_TPS_REGCTL_POINT_ISOFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName & ",sOffNormalParam=" & sOffNormalParam ) +on error resume next +Dim tempReturn,shapePoint, bOffNormalTest1,bOffNormalTest2, bOffNormalTest3 +Dim sNModAttr, sNMode + shapePoint = GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + bOffNormalTest1 = false + bOffNormalTest2 = false + bOffNormalTest3 = false + tempReturn = false 'default + +' gsh_log("offNormalParam = "&GSH_GETPARAMETERVALUE(oDataBoundObject, sPointName, sOffNormalParam)) + + if (strcomp(GSH_GETPARAMETERVALUE(oDataBoundObject, sPointName, sOffNormalParam),GSH_MAN,vbtextcompare) = 0) then + bOffNormalTest1 = true + end if + sNModAttr = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODATTR, GSH_NONE) + dim modAttr + modAttr = GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODATTR) + +' gsh_log("modAttr = "&modAttr &"sNModAttr = " &sNModAttr) + + if (strComp(sNModAttr,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NModAttr is None + if (strComp(GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODATTR),sNModAttr,vbTextCompare) <> 0) then + bOffNormalTest2 = true + end if + end if + sNMode = GSH_READTAGINFORMATIONKEYVALUE(shapePoint, GSH_REGKEY_NMODE, GSH_NONE) +' gsh_log("sNMode = "&sNMode) +' gsh_log("GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODE) = " &GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODE)) + if (strComp(sNMode,GSH_NONE,vbTextCompare) <> 0) then 'if Registry NMode key is "None" + if (strComp(GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODE),sNMode,vbTextCompare) <> 0) then + bOffNormalTest3 = true + end if + end if + tempReturn = ( ( bOffNormalTest1 ) or ( bOffNormalTest2) or (bOffNormalTest3) ) + GSH_TPS_REGCTL_POINT_ISOFFNORMAL = tempReturn +'gsh_log_e("GSH_TPS_REGCTL_POINT_ISOFFNORMAL returning >>>"&bOffNormalTest1& " " & bOffNormalTest2 & " " & bOffNormalTest3 & cstr(tempReturn) & "<<<") +end function + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL'''''''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'Returns true or false +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +function GSH_TPS_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL(oDataBoundObject,sPointName,sOffNormalParam, sDigitalStateText) +'gsh_log_s("GSH_TPS_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL oDataBoundObject=" & oDataBoundObject.id & ",sPointName = " & sPointName & ",sOffNormalParam=" & sOffNormalParam & ",sDigitalStateText=" & sDigitalStateText) +on error resume next + Dim tempReturn,sTagname, bOffNormalTest1,bOffNormalTest2, bOffNormalTest4, bOffNormalTest3, sPVNormalState,sNModAttr + sTagname = GSH_GETSHAPE_CUSTOM_PROPERTY(oDataBoundObject.parentelement.parentelement,sPointName, GSH_CPPOINT) + tempReturn = false: bOffNormalTest1 = false: bOffNormalTest2 = false: bOffNormalTest3 = false: bOffNormalTest4 = false + +''''jan. 25 '''' + temp = GSH_GETPARAMETERVALUE(oDataBoundObject, sPointName, sOffNormalParam) + if strComp(temp,GSH_NODATA,vbTextCompare)<> 0 then + if strComp(temp,GSH_AUTO,vbTextCompare) <> 0 then + bOffNormalTest1 = true + end if + end if +' if (strcomp(GSH_GETPARAMETERVALUE(oDataBoundObject, sPointName, sOffNormalParam),GSH_MAN,vbTextCompare) = 0) then +' bOffNormalTest1 = true +' end if + bOffNormalTest2 = GSH_DIGITAL_GETOFFNORMALSTATUS(sTagname, GSH_REGKEY_PVNORMAL_STATE, sDigitalStateText) + bOffNormalTest3 = GSH_DIGITAL_GETOFFNORMALSTATUS(sTagname, GSH_REGKEY_NMODATTR, GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODATTR)) + bOffNormalTest4 = GSH_DIGITAL_GETOFFNORMALSTATUS(sTagname, GSH_REGKEY_NMODE, GSH_GETENTITYPARAMETERVALUE(oDataBoundObject,GSH_CPPARAM_MODE)) + 'gsh_log("bOffNormalTest1="& bOffNormalTest1 &",bOffNormalTest2="&bOffNormalTest2& ",bOffNormalTest3="&bOffNormalTest3) + tempReturn = (bOffNormalTest1 or bOffNormalTest2 or bOffNormalTest3 or bOffNormalTest4) +GSH_TPS_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL = tempReturn +'gsh_log_e("GSH_TPS_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL returning >>>" & tempReturn & "<<<") +end function + +'---------------------------------------------END SHAPE COMMON ------------------------------- + +'--------------------------------------------START TPS SPECIFIC------------------------------ +'ooooooooooooo ooooooooo. .oooooo..o +'8' 888 `8 `888 `Y88. d8P' `Y8 +' 888 888 .d88' Y88bo. +' 888 888ooo88P' `"Y8888o. +' 888 888 `"Y88b +' 888 888 oo .d8P +' o888o o888o 8""88888P' +' sub routines +'---------------------------------------------------------------------------------------------- + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_ANALOGINDICATOR_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 01/29/2010: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_ANALOGINDICATOR_ALARMNUM_ONUPDATE (oShape, flag) +'GSH_LOG_S ("GSH_TPS_ANALOGINDICATOR_ALARMNUM_ONUPDATE oShape" & oShape.id) +on error resume next + + If flag = 0 then + call GSH_ANALOGINDICATORSHOWNORMAL(oShape) + 'Alarming + call GSH_TPS_ALARM_SHOWSTATUS_ALARMNUM(oShape, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + End If + + If flag <=1 then + 'Set the focus + 'call GSH_ANALOGINDICATORSETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + +'*****Changed by Jamie - Sept. 22 **** + if GSH_TPS_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + + If flag = 0 then + 'Bad Data Check + If GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + oShape.objects("txt_PVvalue").value = "---" + Else + oShape.objects("txt_PVvalue").value = GSH_FormatPVText(oShape,oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV)) + + End If + End If +' GSH_LOG_E ("GSH_TPS_ANALOGINDICATOR_ALARMNUM_ONUPDATE") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_ANALOGINDICATOR_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 09/26/2008: Created by CL +' 01/29/2010: Updated alarm handling +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_ANALOGINDICATOR_ONUPDATE (oShape, flag) +'GSH_LOG_S ("GSH_TPS_ANALOGINDICATOR_ONUPDATE oShape" & oShape.id) +on error resume next + + If flag = 0 then + call GSH_ANALOGINDICATORSHOWNORMAL(oShape) + 'Alarming + call GSH_TPS_ALARM_SHOWSTATUS_ALARMNUM(oShape, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + End If + + If flag <=1 then + 'Set the focus + 'call GSH_ANALOGINDICATORSETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + +'*****Changed by Jamie - Sept. 22 **** + if GSH_TPS_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + + If flag = 0 then + 'Bad Data Check + If GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + oShape.objects("txt_PVvalue").value = "---" + Else + oShape.objects("txt_PVvalue").value = GSH_FormatPVText(oShape,oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV)) + + End If + End If +' GSH_LOG_E ("GSH_TPS_ANALOGINDICATOR_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_ANALOGINDICATOR_SOL_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 09/26/2008: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_ANALOGINDICATOR_SOL_ONUPDATE (oShape, flag) +'GSH_LOG_S ("GSH_TPS_ANALOGINDICATOR_SOL_ONUPDATE oShape" & oShape.id) +on error resume next + + call GSH_TPS_ANALOGINDICATOR_ONUPDATE(oShape, flag) + + if flag = 0 then + call GSH_COMMON_SHOW_SOL_STATUS(oShape) + end if + +'GSH_LOG_E ("GSH_TPS_ANALOGINDICATOR_SOL_ONUPDATE oShape" & oShape.id) + +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_SOL_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 09/26/2008: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_SOL_ONUPDATE (oShape, flag) +'GSH_LOG_S ("GSH_TPS_SOL_ONUPDATE oShape" & oShape.id) +on error resume next + + If flag = 0 then + 'if the tag is in alarm - then SOL is outside of limits + oShape.objects("plg_SOL").styleClass = GSH_CSSSSOLINLIMIT + oShape.objects("txt_SOL").style.visibility = GSH_HIDDEN + If (strcomp(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")), GSH_NOALARMCODE, vbtextcompare) <> 0)then + oShape.objects("plg_SOL").styleClass = GSH_CSSSSOLOUTOFLIMIT + oShape.objects("txt_SOL").style.visibility = GSH_VISIBLE + End If + End If + + If flag <=1 then +' 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + End If + +'GSH_LOG_E ("GSH_TPS_SOL_ONUPDATE oShape" & oShape.id) +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_ANALOGOUTPUTINDICATORALARMS_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_ANALOGOUTPUTINDICATORALARMS_ONUPDATE (oShape, flag) +'GSH_LOG_S ("GSH_COMMON_ANALOGOUTPUTINDICATORALARMS_ONUPDATE oShape" & oShape.id) +on error resume next + + If flag = 0 then + oShape.objects("outline").styleClass = GSH_CSSANALOGOUTPUTINDICATORNORMAL + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) + end if + + call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + + If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) + end if + +'GSH_LOG_E ("GSH_TPS_ANALOGOUTPUTINDICATORALARMS_ONUPDATE") +end sub + +sub GSH_TPS_ANALOGOUTPUTINDICATORALARMS_W_OFFNORMAL_ONUPDATE (oShape, flag) +'GSH_LOG_S ("GSH_TPS_ANALOGOUTPUTINDICATORALARMS_W_OFFNORMAL_ONUPDATE oShape" & oShape.id) +on error resume next + + If flag = 0 then + oShape.objects("outline").styleClass = GSH_CSSANALOGOUTPUTINDICATORNORMAL + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) + end if + + call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + + If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_ANALOG_MODE_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + end if + + + + +'GSH_LOG_E ("GSH_TPS_ANALOGOUTPUTINDICATORALARMS_W_OFFNORMAL_ONUPDATE") + +end sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_DIGITALINDICATOR_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +'09/26/2008: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_DIGITALINDICATOR_ONUPDATE (oShape, flag) +on error resume next + If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + + 'Alarming + call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + 'No Bad Data Check + oShape.objects("txt_PVvalue").value = GSH_TPS_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + + End If + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + End If +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_DIGITALINDICATOR_NOALARMS_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +'09/21/2009: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_DIGITALINDICATOR_NOALARMS_ONUPDATE (oShape, flag) 'This version displays the StateTxt from the Registry +on error resume next + If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + + 'No Bad Data Check + oShape.objects("txt_PVvalue").value = GSH_TPS_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + + End If + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_DIGITALINDICATORSHORT_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_DIGITALINDICATORSHORT_ONUPDATE (oShape, flag) +on error resume next + + If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + 'Alarming + call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + + End If + + If flag <= 1 then + 'Set the focus + 'call GSH_DIGITALINDICATORSETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + + End If +'Bad Data Check not needed +'Shape's Label is automatically assign to the Shape Custom property "Label" +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_DIGITALOUTPUTINDICATORALARMS_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_DIGITALOUTPUTINDICATORALARMS_ONUPDATE (oShape, flag) 'This version displays the StateTxt from the Registry +on error resume next + If flag = 0 then + call GSH_DIGITALINDICATORSHOWNORMAL(oShape) + 'Alarming + + call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + + oShape.objects("txt_OPvalue").value = GSH_TPS_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_OP, oShape.objects("rec_DataScript")) + + 'gsh_log "GSH_C200_DIGITALINDICATOR_ONUPDATE alarmpriority"&GSH_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY) + End If + If flag <= 1 then + 'Set the focus + 'call GSH_DIGITALINDICATORSETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITALOUTPUT_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_OP) + End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_REGCTLINDICATOR_ONUPDATE''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_REGCTLINDICATOR_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_REGCTLINDICATOR_ONUPDATE oShape=" & oShape.id) + +On Error Resume Next + + If flag = 0 then + call GSH_REGULATORYCONTROLINDICATORSHOWNORMAL(oShape) + call GSH_SETREGULATORYCONTROLINDICATORMODE(oShape.objects("rec_DataScript")) + + 'Check the points alarming + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + 'This call is for testing alarm in edmonton using simulation point + 'call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + ''call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + call GSH_TPS_ALARM_SHOWSTATUS_ALARMNUM(oShape, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + + else + 'Alarm is Disabled + call GSH_REGULATORYCONTROLINDICATORSHOWDISABLEDALARM(oShape) + + End If + End If + + 'TODO: need to test on site + If flag <= 1 then + + 'Check Focus + call GSH_SETREGULATORYCONTROLINDICATORFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_TPS_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + + If flag = 0 then + + 'PV Data Check + 'TODO: need to test on site + If GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + call GSH_GROUPREGULATORYCONTROLSHOWBADPV(oShape) + else + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + End If + + 'Set Mode + oShape.objects("txt_mode").value = Left(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE), 1) + + 'Check the point ramping + Select Case GSH_GET_POINT_RAMPING_VALUE(oShape.objects("rec_DataScript")) + Case GSH_RAMPING_RUN + call GSH_REGULATORYCONTROLINDICATORSHOW_RAMP(oShape,Left(GSH_RAMPING_RUN,1)) + Case GSH_RAMPING_PRESET + call GSH_REGULATORYCONTROLINDICATORSHOW_RAMP(oShape,Left(GSH_RAMPING_PRESET,1)) + Case else + 'do nothing because visibility is hidden by default and in Show Normal + end Select + 'Check the point Windup + dim sWindupStatus + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")),oShape) + + End If +'gsh_log_e("GSH_TPS_REGCTLINDICATOR_ONUPDATE") +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_REGCTLINDICATOR_SOL_ONUPDATE''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_REGCTLINDICATOR_SOL_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_REGCTLINDICATOR_SOL_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + call GSH_TPS_REGCTLINDICATOR_ONUPDATE(oShape, flag) + + if flag = 0 then + call GSH_COMMON_SHOW_SOL_STATUS(oShape) + end if + +'gsh_log_e("GSH_TPS_REGCTLINDICATOR_SOL_ONUPDATE") +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_GROUPANALOG_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/03/2009: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_GROUPANALOG_ONUPDATE(oShape,flag) +on error resume next +if flag = 0 then + call GSH_GROUPANALOGSHOWNORMAL(oShape) + + 'call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + call GSH_TPS_ALARM_SHOWSTATUS_ALARMNUM(oShape, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) +End If +If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) 'Set the focus + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_TPS_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_GROUPANALOGSHOWOFFNORMAL(oShape) + end if + end if + +End If +If flag = 0 then + 'PV Data Check + If not(GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false)) Then + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + Else + call GSH_GROUPANALOGSHOWBADPV(oShape) + End If +End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_GROUPNUMERIC_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 03/18/2010: Created by JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_GROUPNUMERIC_ONUPDATE(oShape,flag) +on error resume next +if flag = 0 then + call GSH_GROUPANALOGSHOWNORMAL(oShape) +End If +If flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) 'Set the focus +End If +If flag = 0 then + 'Numeric - no PV Data Check + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) +End If +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_GROUPDIGITALCOMPOSITE_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 09/26/2008: Created by CL +' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_GROUPDIGITALCOMPOSITE_ONUPDATE(oShape, flag) +on error resume next + + If flag = 0 then + GSH_GROUPDIGITALCOMPOSITESHOWNORMAL(oShape) + oShape.objects("txt_statusmessage").style.visibility = GSH_HIDDEN 'Hide RedTag + + 'Alarming + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")),oShape) + else + 'Alarm is Disabled + call GSH_GROUPDIGITALCOMPOSITESHOWSUPPRESSEDALARM(oShape) + End If + + 'PV Data Check + If GSH_C200_DIGITALCOMPOSITE_ISDATABAD(oShape.objects("rec_DataScript")) Then + call GSH_GROUPDIGITALCOMPOSITESHOWBADPV(oShape) + else + oShape.objects("txt_DigitalValue").value = GSH_TPS_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + End If + End If + + If flag <= 1 then + 'Set the focus + 'call GSH_GROUPDIGITALCOMPOSITESETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + 'hide OP combobox if it was opened + oShape.objects("cmb_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_MODEValue").style.visibility = GSH_HIDDEN + + if GSH_TPS_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL, oShape.objects("txt_DigitalValue").value) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + + End If + + If flag = 0 then + 'Status message + dim val_redTag + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + else + 'Check status Message + dim val_stsMsg + val_stsMsg = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG) + call GSH_Show_StatusMessageFlag(oShape, val_stsMsg) + end if + + 'Display OP Value +' sOPStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_OP, oShape.objects("rec_DataScript")) + oShape.objects("txt_OPValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP) + oShape.objects("txt_MODEValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + End If +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_GROUPDIGITALINPUT_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape - Shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 06/03/09 - Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_GROUPDIGITALINPUT_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_GROUPDIGITALINPUT_ONUPDATE oShape = " & oShape.id) +on error resume next + + If flag = 0 then + GSH_GROUPDIGITALINPUTSHOWNORMAL(oShape) + + 'Alarming + call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + + oShape.objects("txt_DigitalValue").value = GSH_TPS_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + + End If + + If flag <= 1 then + 'Set the focus + 'call GSH_GROUPDIGITALINPUTSETFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + + End If + +'gsh_log_e("GSH_TPS_GROUPDIGITALINPUT_ONUPDATE") +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_MF_DIGITALOUTPUT_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus (b/c digital values are not changed often) +' Aug 27, 2009 - Added new +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_MF_DIGITALOUTPUT_ONUPDATE(oShape, flag) +on error resume next +'gsh_log_s("GSH_TPS_MF_DIGITALOUTPUT_ONUPDATE shapeID = "& oShape.id) + + GSH_GROUPDIGITALCOMPOSITESHOWNORMAL(oShape) + call GSH_GEN_SETSHAPEFOCUS(oShape) + + call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + + 'Display OP Value + dim sOPStateTxt + sOPStateTxt = GSH_SCADA_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_OP, oShape.objects("rec_DataScript")) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("cmb_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_SCADA_DIGITAL_POINT_OP_ISOFFNORMAL(oShape.objects("rec_DataScript"),GSH_CPENTITY, sOPStateTxt) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + + + oShape.objects("txt_OPValue").value = sOPStateTxt + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_SELECTOROUTPUT_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +'09/29/2008: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_SELECTOROUTPUT_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_SELECTOROUTPUT_ONUPDATE oShape=" & oShape.id) + +On Error Resume Next + + If flag = 0 then + call GSH_SELECTOROUTPUTSHOWNORMAL(oShape) + call GSH_SELECTOROUTPUTSHOWSELECTOR(oShape, GSH_CPPARAM_SELINPUT) + 'Alarming + call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_SELECTOROUTPUT_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + +'gsh_log_e("GSH_TPS_SELECTOROUTPUT_ONUPDATE") + +End Sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_SELECTOROUTPUTFLAG_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +'11/18/2009: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_SELECTOROUTPUTFLAG_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_SELECTOROUTPUTFLAG_ONUPDATE oShape=" & oShape.id) + +On Error Resume Next + + If flag = 0 then + call GSH_SELECTOROUTPUTSHOWNORMAL(oShape) + call GSH_SELECTOROUTPUTFLAGSHOWSELECTOR(oShape, GSH_CPPARAM_PV) + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + End If + +'gsh_log_e("GSH_TPS_SELECTOROUTPUTFLAG_ONUPDATE") + +End Sub +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_SELECTOROUTPUTSHOWSELECTOR'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape = shape +' paramSelector = custom parameter +'11/18/2009: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_SELECTOROUTPUTFLAGSHOWSELECTOR(oShape, paramSelector) +'gsh_log_s("GSH_SELECTOROUTPUTFLAGSHOWSELECTOR oShape=" & oShape.id & ", paramSelector=" & paramSelector) +on error resume next + dim xinput, selOrientation + 'xinput = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),paramSelector) + xinput = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & paramSelector) + 'xinput is expected to be 0 ,1 or 2 + xinput = xinput + 1 + + + ' Determine selector orientation (LEFT, RIGHT, CENTER) + selOrientation = GSH_NONE + select case xinput + case GSH_SELX1 + ' Retrive custom parameter X1 + selOrientation = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPX1, GSH_CPVALUE) + case GSH_SELX2 + ' Retrive custom parameter X2 + selOrientation = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPX2, GSH_CPVALUE) + case GSH_SELX3 + ' Retrive custom parameter X3 + selOrientation = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape, GSH_CPX3, GSH_CPVALUE) + end select + 'Set Orientation + call GSH_SELECTOROUTPUTSETORIENTATION(oShape, selOrientation) +'gsh_log_e("GSH_SELECTOROUTPUTFLAGSHOWSELECTOR orientation set = " &selOrientation) + +end sub + + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_SELXDESC_ONUPDATE'''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 06/04/2009 Created shape by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_SELXDESC_ONUPDATE (oShape, flag) 'This version displays the SELXDESC parameter +on error resume next + If flag = 0 then + call GSH_REGULATORYCONTROLINDICATORSHOWNORMAL(oShape) + 'Alarming + call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + + 'No Bad Data Check + oShape.objects("txt_PVvalue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"CP_SELXDESC") + oShape.objects("txt_mode").value = Left(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE), 1) + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")),oShape) + End If + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_AUTOMAN_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_AUTOMAN_ONUPDATE''''''''''''''''''''''''' +'Parameters: oShape: Shape +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 09/29/2008: Created by CL. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_AUTOMAN_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_AUTOMAN_ONUPDATE oShape=" & oShape.id) +On Error Resume Next +If flag = 0 then + call GSH_REGULATORYCONTROLINDICATORSHOWNORMAL(oShape) + 'Check the points alarming + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + 'This call is for testing alarm in edmonton using simulation point + 'call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_EXPERION_PARAM_ALARMPRIORITY),oShape) + call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + else + 'Alarm is Disabled + call GSH_REGULATORYCONTROLINDICATORSHOWDISABLEDALARM(oShape) + End If +End If +If flag <= 1 then + 'call GSH_SETREGULATORYCONTROLINDICATORFOCUS(oShape) replaced by + call GSH_GEN_SETSHAPEFOCUS (oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_AUTOMAN_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If +If flag = 0 then + oShape.objects("txt_OPValue").value = formatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) + oShape.objects("txt_mode").value = Left(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE), 1) + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")),oShape) +End If +'gsh_log_e("GSH_TPS_AUTOMAN_ONUPDATE") +End Sub + + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_HORIZONTALPVBAR_ONUPDATE +'Update function for the shape C200_HORIZONTALPVBAR +'Parameter: Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 09/29/2008: Created by CL +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_HORIZONTALPVBAR_ONUPDATE(oShape, flag) +'gsh_log_s "GSH_TPS_HORIZONTALPVBAR_ONUPDATE" + If flag = 0 then + call GSH_SHOWALARMS_WOOUTLINE(GSH_NOALARMCODE,oShape) 'show normal + dim nPVValue, iPVValue, iRangeHi, iRangeLo + + 'Alarming + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + 'call GSH_SHOWALARMS_WOOUTLINE(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + call GSH_SHOWALARMS_WOOUTLINE(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_DISABLED + End If + + if GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + oShape.objects("ind_PVBar").value = 0 + oShape.objects("txtBadPV").style.visibility = GSH_VISIBLE + else + oShape.objects("txtBadPV").style.visibility = GSH_HIDDEN + nPVValue = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + iRangeHi = CInt(oShape.GetCustomProperty("Value", "txtHighLimit")) + iRangeLo = CInt(oShape.GetCustomProperty("Value", "txtLowLimit")) + if (nPVValue >= iRangeHi) then + iPVValue = 100 + ElseIf (nPVValue <= iRangeLo) then + iPVValue = 0 + else + iPVValue = Cint(((nPVValue-iRangeLo)* 100 )/ (iRangeHi - iRangeLo)) + end if + oShape.objects("ind_PVBar").value = iPVValue + end if + End If + + If flag <= 1 then + call GSH_SETSHAPEFOCUS(oShape) + End If +'gsh_log_e "GSH_TPS_HORIZONTALPVBAR_ONUPDATE" +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_HORIZONTALPVBAR_NUMERIC_ONUPDATE +'Update function for the shape C200_HORIZONTALPVBAR +'Parameter: Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 09/29/2008: Created by CL +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_HORIZONTALPVBAR_NUMERIC_ONUPDATE(oShape, flag) +'gsh_log_s "GSH_TPS_HORIZONTALPVBAR_NUMERIC_ONUPDATE" + If flag = 0 then + dim nPVValue, iPVValue, iRangeHi, iRangeLo + + 'No Alarming + if GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + oShape.objects("ind_PVBar").value = 0 + oShape.objects("txtBadPV").style.visibility = GSH_VISIBLE + else + oShape.objects("txtBadPV").style.visibility = GSH_HIDDEN + nPVValue = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + iRangeHi = CInt(oShape.GetCustomProperty("Value", "txtHighLimit")) + iRangeLo = CInt(oShape.GetCustomProperty("Value", "txtLowLimit")) + if (nPVValue >= iRangeHi) then + iPVValue = 100 + ElseIf (nPVValue <= iRangeLo) then + iPVValue = 0 + else + iPVValue = Cint(((nPVValue-iRangeLo)* 100 )/ (iRangeHi - iRangeLo)) + end if + oShape.objects("ind_PVBar").value = iPVValue + end if + End If + + If flag <= 1 then + call GSH_SETSHAPEFOCUS(oShape) + End If +'gsh_log_e "GSH_TPS_HORIZONTALPVBAR_NUMERIC_ONUPDATE" +end sub + + + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_SPPVOPBAR_ONUPDATE +'Update function for the shape TPS_SPPVOPBAR +'Parameter: Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +' 07/04/2009 - Created (Cuong Ly) +' Note - use int function as cint function +' can not handle large number (example 150000) (CL) +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_SPPVOPBAR_ONUPDATE(oShape, flag) +On Error Resume Next +'gsh_log_s("GSH_TPS_SPPVOPBAR_ONUPDATE ") + + If flag = 0 then + call GSH_SHOWALARMS_WOOUTLINE(GSH_NOALARMCODE,oShape) 'show normal + 'check if PV is bad then + if GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + oShape.objects("ind_PVBar").value = 0 + oShape.objects("txtBadPV").style.visibility = GSH_VISIBLE + else + Dim iRangeHi, iRangeLo + + iRangeHi = int(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & ".PVEUHI")) + iRangeLo = int(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & ".PVEULO")) + + oShape.objects("ind_PVBar").value = int((GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)/(iRangeHi-iRangeLo))*100) + oShape.objects("txtBadPV").style.visibility = GSH_HIDDEN +' gsh_log "iRangeHi="&iRangeHi-iRangeLo&", iRangeLo="&iRangeLo& ", PV="& GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) &", PVBar="& Cint((GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)/(iRangeHi-iRangeLo))*100) + End if + + call GSH_SETSPINDICATOR_HORIZONTAL(oShape,iRangeLo,iRangeHi) + End If + + If flag <= 1 then + + 'Alarming + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + 'call GSH_SHOWALARMS_WOOUTLINE(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY), oShape) + call GSH_SHOWALARMS_WOOUTLINE(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")), oShape) + else + oShape.objects("ind_PVBar").styleClass = GSH_CSSBGALARM_DISABLED + End If + + call GSH_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_TPS_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + + 'Check the point ramping + Select Case GSH_GET_POINT_RAMPING_VALUE(oShape.objects("rec_DataScript")) + Case GSH_RAMPING_RUN + call GSH_REGULATORYCONTROLINDICATORSHOW_RAMP(oShape,Left(GSH_RAMPING_RUN,1)) + Case GSH_RAMPING_PRESET + call GSH_REGULATORYCONTROLINDICATORSHOW_RAMP(oShape,Left(GSH_RAMPING_PRESET,1)) + Case else + oShape.objects("txt_ramp").style.visibility = GSH_HIDDEN + end Select + + End If + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_SPPVOPBAR_ONUPDATE",oShape) + end if +'gsh_log_e("GSH_TPS_SPPVOPBAR_ONUPDATE ") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_LevelIndicator_OnUpdate''''''''''''''''''''''''''''''''''''''' +'Parameters:oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 09/29/2008 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_LevelIndicator_OnUpdate(oShape, flag) +'gsh_log_s("GSH_TPS_LevelIndicator_OnUpdate oShape="&oShape.id & ", flag="&flag) +On Error Resume Next + If flag <= 1 then + call GSH_LevelIndicatorShowNormal(oShape) + 'Check Alarms + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + 'alarming is enabled, get highest priority(if any) and change shape accordingly + 'call GSH_SHOWLEVELALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + call GSH_SHOWLEVELALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + 'Alarm is Disabled + call GSH_LevelIndicatorShowDisbledAlarm(oShape) + End If + + call GSH_LevelIndicatorSetFocus(oShape) + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_TPS_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_LevelIndicatorSHOWOFFNORMAL(oShape) + end if + end if + numOfDecimals = CInt(Right(GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1)) + 'Check for Bad PV + if GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), numOfDecimals) + End If + End If +'gsh_log_e("GSH_TPS_LevelIndicator_OnUpdate") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_LevelIndicator_Wide_ShowPV_OnUpdate''''''''''''''''''''''''''''''''''''''' +'Parameters:oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 09/29/2008 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_LevelIndicator_Wide_ShowPV_OnUpdate(oShape, flag) +'gsh_log_s("GSH_TPS_LevelIndicator_Wide_ShowPV_OnUpdate oShape="&oShape.id & ", flag="&flag) +On Error Resume Next + If flag <= 1 then + call GSH_LevelIndicatorShowNormal(oShape) + 'Check Alarms + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + 'alarming is enabled, get highest priority(if any) and change shape accordingly + 'call GSH_SHOWLEVELALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + call GSH_SHOWLEVELALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + 'Alarm is Disabled + call GSH_LevelIndicatorShowDisbledAlarm(oShape) + End If + + call GSH_LevelIndicatorSetFocus(oShape) + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_TPS_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_LevelIndicatorSHOWOFFNORMAL(oShape) + end if + end if + numOfDecimals = CInt(Right(GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1)) + 'Check for Bad PV + if GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), numOfDecimals) + End If + + oShape.objects("txt_PVValue").style.visibility = GSH_VISIBLE + 'oShape.objects("txt_PVvalue").styleClass = GSH_CSSLEVELINDICATORNORMALPVTEXT + oShape.objects("outline").style.visibility = GSH_VISIBLE + + + End If +'gsh_log_e("GSH_TPS_LevelIndicator_Wide_ShowPV_OnUpdate") +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_LevelIndicator_Small_OnUpdate''''''''''''''''''''''''''''''''''''''' +'Parameters:oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/02/2008 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_LevelIndicator_Small_OnUpdate(oShape, flag) +'gsh_log_s("GSH_TPS_LevelIndicator_OnUpdate oShape="&oShape.id & ", flag="&flag) +On Error Resume Next + If flag <= 1 then + call GSH_LevelIndicatorShowNormal(oShape) + 'Check Alarms + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + 'alarming is enabled, get highest priority(if any) and change shape accordingly + 'call GSH_SHOWLEVELSMALLALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + call GSH_SHOWLEVELSMALLALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + 'Alarm is Disabled + call GSH_LevelIndicatorShowDisbledAlarm(oShape) + End If + + call GSH_LevelIndicatorSetFocus(oShape) + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + if GSH_TPS_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_LevelIndicatorSHOWOFFNORMAL(oShape) + end if + end if + + numOfDecimals = CInt(Right(GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1)) + + 'Check for Bad PV + if GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), numOfDecimals) + End If + End If +'gsh_log_e("GSH_TPS_LevelIndicator_OnUpdate") +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_LEVELREGCTL_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 09/29/2008: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_LEVELREGCTL_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_LEVELREGCTL_ONUPDATE oShape="&oShape.id& ", flag = "&flag) +On Error Resume Next + If flag <= 1 then + GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + 'call GSH_SHOWLEVELALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + call GSH_SHOWLEVELALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + + End If + 'End If + 'If flag <= 1 then + call GSH_LevelIndicatorRegulatoryControlSetFocus(oShape) + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_TPS_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_LevelIndicatorRegulatoryControlShowOffNormal(oShape) + end if + end if + + numOfDecimals = CInt(Right(GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1)) + + 'Check for bad value + If GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + call GSH_LevelIndicatorShowSPFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), numOfDecimals) + End If + End If + If flag = 0 then + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + + End If +'gsh_log_e("GSH_TPS_LEVELREGCTL_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_LEVELREGCTL_Small_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +' 06/02/2009: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_LEVELREGCTL_SMALL_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_LEVELREGCTL_ONUPDATE oShape="&oShape.id& ", flag = "&flag) +On Error Resume Next + If flag <= 1 then + GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + 'call GSH_SHOWLEVELSMALLALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + call GSH_SHOWLEVELSMALLALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + + End If + 'End If + 'If flag <= 1 then + call GSH_LevelIndicatorRegulatoryControlSetFocus(oShape) + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_TPS_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + call GSH_LevelIndicatorRegulatoryControlShowOffNormal(oShape) + end if + end if + + numOfDecimals = CInt(Right(GSH_READTAGINFORMATIONKEYVALUE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY), GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1)) + + 'Check for bad value + If GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + call GSH_LevelIndicatorShowPVFloat(oShape) + call GSH_LevelIndicatorShowSPFloat(oShape) + oShape.objects("txt_PVvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV), numOfDecimals) + End If + End If + If flag = 0 then + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + + End If +'gsh_log_e("GSH_TPS_LEVELREGCTL_ONUPDATE") +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_GROUPAUTOMAN_ONUPDATE''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus +' 09/29/2008: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_GROUPAUTOMAN_ONUPDATE(oShape, flag) +on error resume next + If flag = 0 then + GSH_GROUPAUTOMANSHOWNORMAL(oShape) + 'Alarming + call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_C200_AUTOMAN_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + End If + + If flag = 0 then + 'Display OP Value + oShape.objects("txt_OPValue").value = formatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS,-2,0,0) + 'ModAttr Data Check + If (GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODATTR) = GSH_MODE_PROGRAM) Then + oShape.objects("txt_ModeValue").value = GSH_MODE_PROGRAM_TEXT & GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + Else + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + end if + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + + 'RedTag message + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + else + 'Check status Message + dim val_stsMsg + val_stsMsg = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG) + call GSH_Show_StatusMessageFlag(oShape, val_stsMsg) + end if + End If +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_GROUPREGULATORYCONTROL_ONUPDATE'''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'09/29/2008 - Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_GROUPREGULATORYCONTROL_ONUPDATE(oShape, flag) +on error resume next +if flag = 0 then + GSH_GROUPREGULATORYCONTROLSHOWNORMAL(oShape) + oShape.objects("txt_statusmessage").style.visibility = GSH_HIDDEN 'Hide RedTag + + 'Alarming + If GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + 'call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + call GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM(oShape) + End If +End If + +if flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) 'replaces GSH_GROUPREGULATORYCONTROLSETFOCUS(oShape) + + 'Check for Off Normal and hide text entry and combobox if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + oShape.objects("alp_SPValue").style.visibility = GSH_HIDDEN + oShape.objects("alp_OPValue").style.visibility = GSH_HIDDEN + oShape.objects("cmb_ModeValue").style.visibility = GSH_HIDDEN + + if GSH_TPS_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If + +if flag = 0 then + 'PV Data Check + If GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + call GSH_GROUPREGULATORYCONTROLSHOWBADPV(oShape) + else + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + End If + + 'Display OP Value + 'oShape.objects("txt_OPValue").value = formatNumber(alp_OPValue.value,GSH_OUTPUTINDICATORDECIMALS) + oShape.objects("txt_OPValue").value = FormatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS,-2,0,0) + + 'Display SP Value + 'oShape.objects("txt_SPValue").value = GSH_FormatPVText(oShape,alp_SPValue.value) + oShape.objects("txt_SPValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SP)) + + 'ModAttr Data Check + If (GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODATTR) = GSH_MODE_PROGRAM) Then + oShape.objects("txt_ModeValue").value = GSH_MODE_PROGRAM_TEXT & GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + Else + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + end if + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + + 'Assumption: Reg tag and status message are mutual exclusive + 'Status message + dim val_redTag + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if strcomp(val_redTag,GSH_ON,vbtextcompare) = 0 then + oShape.objects("txt_statusmessage") = GSH_REDTAG_TEXT + oShape.objects("txt_statusmessage").style.visibility = GSH_VISIBLE + else + 'Check status Message + dim val_stsMsg + val_stsMsg = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG) + call GSH_Show_StatusMessageFlag(oShape, val_stsMsg) + end if + + 'Set Ramping + Select case GSH_GET_POINT_RAMPING_VALUE(oShape.objects("rec_DataScript")) + Case GSH_RAMPING_RUN + call GSH_GROUPREGULATORYCONTROLSHOW_RAMP(oShape,Left(GSH_RAMPING_RUN,1)) + Case GSH_RAMPING_PRESET + call GSH_GROUPREGULATORYCONTROLSHOW_RAMP(oShape,Left(GSH_RAMPING_PRESET,1)) + Case else + 'do nothing because visibility is hidden by default and in Show Normal + end select +End If +end sub + +'''Jan. 25 ''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_MOTORINDICATOR_ONUPDATE''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 09/29/2008 - Created by CL +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_MOTORINDICATOR_ONUPDATE(oShape, flag) +On Error Resume Next +'gsh_log_s("GSH_TPS_MOTORINDICATOR_ONUPDATE >>>>> Shape ="& oShape.id) + If flag = 0 then + call GSH_MOTORINDICATORSHOWNORMAL(oShape) + + 'set motor to running or not based on registry + Dim nNumericState, sPVvalue + sPVValue = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + nNumericState = GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT(oShape, sPVValue) + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + + 'Alarming + 'call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + call GSH_TPS_ALARM_SHOWSTATUS_ALARMNUM(oShape, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + End If +'gsh_log_e("GSH_TPS_MOTORINDICATOR_ONUPDATE ") +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_MOTORINDICATOR_LM_ONUPDATE''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/03/2009 - Create the function to handle TPS MotoIndicator_lm shapes with Localman and Interlock indicators +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_MOTORINDICATOR_LM_ONUPDATE(oShape, flag) +On Error Resume Next + + If flag = 0 then + call GSH_MOTORINDICATORSHOWNORMAL(oShape) + + 'set motor to running or not based on registry + Dim nNumericState, sPVvalue + sPVValue = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + nNumericState = GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT(oShape, sPVValue) + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + + 'Alarming + 'call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + call GSH_TPS_ALARM_SHOWSTATUS_ALARMNUM(oShape, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + End If + + + If flag = 0 then + 'Check for Localman and Interlock status + call GSH_COMMON_LOCALMAN_INTERLOCK_SHOWSTATUS(oShape.objects("rec_DataScript"), oShape.objects("txt_Localman")) + + end if + +End Sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_MOTORINDICATORSMALL_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/03/09 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_MOTORINDICATORSMALL_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_MOTORINDICATORSMALL_ONUPDATE >>>>> Shape ="& oShape.id) + On Error Resume Next + + If flag = 0 then + call GSH_MINIMOTORINDICATORSHOWNORMAL(oShape) + 'set motor to running or not based on registry + Dim nNumericState, sPVvalue + sPVValue = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + nNumericState = GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT(oShape, sPVValue) + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + 'Alarming + 'call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSSMINIMOTORINDICATORDISABLEDALARM) + call GSH_TPS_ALARM_SHOWSTATUS_ALARMNUM(oShape, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + End If +'gsh_log_e("GSH_TPS_MOTORINDICATORSMALL_ONUPDATE") +End Sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_MOTORINDICATORSMALL_NOALARMS_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 09/23/09 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_MOTORINDICATORSMALL_NOALARMS_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_MOTORINDICATORSMALL_NOALARMS_ONUPDATE >>>>> Shape ="& oShape.id) + On Error Resume Next + + If flag = 0 then + call GSH_MINIMOTORINDICATORSHOWNORMAL(oShape) + 'set motor to running or not based on registry + Dim nNumericState, sPVvalue + sPVvalue = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + nNumericState = GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT(oShape, sPVvalue) + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + End If +'gsh_log_e("GSH_TPS_MOTORINDICATORSMALL_NOALARMS_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_MOTORINDICATORSMALL_NOALARMS_ONUPDATE",oShape) + end if +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_MOTORINDICATORSMALL_NOALARMS_NOFOCUS_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' 12/9/09 Created by JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_MOTORINDICATORSMALL_NOALARMS_NOFOCUS_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_MOTORINDICATORSMALL_NOALARMS_NOFOCUS_ONUPDATE >>>>> Shape ="& oShape.id) + On Error Resume Next + + 'set motor to running or not based on shape custom property + Dim sPVvalue, sStateTxt_On + sPVvalue = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + + sStateTxt_On = oShape.GetCustomProperty(GSH_CPVALUE,"STATETXT_ON") + + if (StrComp(sPVvalue,sStateTxt_On,vbtextcompare) <> 0) then + oShape.objects("rec_Motor").styleClass = "MOTORINDICATORMOTORNOTRUNNING" + else + oShape.objects("rec_Motor").styleClass = "MOTORINDICATORMOTORRUNNING" + end if + + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE + +'gsh_log_e("GSH_TPS_MOTORINDICATORSMALL_NOALARMS_NOFOCUS_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_MOTORINDICATORSMALL_NOALARMS_NOFOCUS_ONUPDATE",oShape) + end if +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_MOTORINDICATORSMALL_FLAG_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' 18/3/2010 Created by JE +' 24/3/2010 Modified by JE to add check for either On or True +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_MOTORINDICATORSMALL_FLAG_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_MOTORINDICATORSMALL_FLAG_ONUPDATE >>>>> Shape ="& oShape.id) + On Error Resume Next + + 'set motor to running or not based on flag + Dim sPVvalue + sPVvalue = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + + if (StrComp(sPVvalue,"ON",vbtextcompare) = 0) OR (StrComp(sPVvalue,"TRUE",vbtextcompare) = 0) then + oShape.objects("rec_Motor").styleClass = "MOTORINDICATORMOTORRUNNING" + else + oShape.objects("rec_Motor").styleClass = "MOTORINDICATORMOTORNOTRUNNING" + end if + + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE + +'gsh_log_e("GSH_TPS_MOTORINDICATORSMALL_FLAG_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_MOTORINDICATORSMALL_FLAG_ONUPDATE",oShape) + end if +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_MOTORINDICATORSMALL_NUMERIC_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' 19/3/2010 Created by JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_MOTORINDICATORSMALL_NUMERIC_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_MOTORINDICATORSMALL_NUMERIC_ONUPDATE >>>>> Shape ="& oShape.id) + On Error Resume Next + + 'set motor to running or not based on numeric state (1=ON, everything else is OFF) + Dim sPVvalue + nPVvalue = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + + if nPVvalue <> 1 then + oShape.objects("rec_Motor").styleClass = "MOTORINDICATORMOTORNOTRUNNING" + else + oShape.objects("rec_Motor").styleClass = "MOTORINDICATORMOTORRUNNING" + end if + + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE + +'gsh_log_e("GSH_TPS_MOTORINDICATORSMALL_NUMERIC_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_MOTORINDICATORSMALL_NUMERIC_ONUPDATE",oShape) + end if +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_MOTORINDICATORSMALL_LM_ONUPDATE''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/03/2009 - Create the function to handle TPS MotoIndicator_lm shapes with Localman and Interlock indicators +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_MOTORINDICATORSMALL_LM_ONUPDATE(oShape, flag) +On Error Resume Next + + If flag = 0 then + call GSH_MOTORINDICATORSHOWNORMAL(oShape) + + 'set motor to running or not based on registry + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV),GSH_CPPARAM_PV) + + 'Alarming + 'call GSH_TPS_ALARM_SHOWSTATUS(oShape, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSSMINIMOTORINDICATORDISABLEDALARM) + call GSH_TPS_ALARM_SHOWSTATUS_ALARMNUM(oShape, GSH_TPS_PARAM_ALARM_ENABLED, GSH_CSS_ALARMDISABLED) + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + End If + + If flag = 0 then + 'Check for Localman and Interlock status + call GSH_COMMON_LOCALMAN_INTERLOCK_SHOWSTATUS(oShape.objects("rec_DataScript"), oShape.objects("txt_Localman")) + end if + +End Sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_MOTORINDICATORWITHALARMS_ONUPDATE'''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/03/09 - Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_MOTORINDICATORWITHALARMS_ONUPDATE (oShape, flag) +'gsh_log_s("GSH_TPS_MOTORINDICATORWITHALARMS_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + Dim sPVvalue, nNumericState + + If flag = 0 then + call GSH_MOTORINDICATORSHOWNORMAL(oShape) + + 'set motor to running or not based on registry + sPVValue = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + nNumericState = GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT(oShape, sPVValue) + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + + 'Alarming + call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITYALARM,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + End If + + +'gsh_log_e("GSH_TPS_MOTORINDICATORWITHALARMS_ONUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_MOTORINDICATORWITHALARMS_LM_ONUPDATE'''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/03/09 - Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_MOTORINDICATORWITHALARMS_LM_ONUPDATE (oShape, flag) +'gsh_log_s("GSH_TPS_MOTORINDICATORWITHALARMS_LM_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + + If flag = 0 then + call GSH_MOTORINDICATORSHOWNORMAL(oShape) + + 'set motor to running or not based on registry + call GSH_MOTORINDICATORSETNUMERICSTATE(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV),GSH_CPPARAM_PV) + + 'Alarming + call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITYALARM,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + End If + + If flag = 0 then + 'Check for Localman and Interlock status + call GSH_COMMON_LOCALMAN_INTERLOCK_SHOWSTATUS(oShape.objects("rec_DataScript"), oShape.objects("txt_Localman")) + end if + +'gsh_log_e("GSH_TPS_MOTORINDICATORWITHALARMS_LM_ONUPDATE") +End Sub + +' + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_REGCTLBOX_ONUPDATE'''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only +'09/30/2008 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_REGCTLBOX_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_REGCTLBOX_ONUPDATE oShape="&oShape.id& ", flag = "&flag) +on error resume next +if flag = 0 then + + call GSH_REGCTLBOXSHOWNORMAL(oShape) + + 'Alarming + If GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + 'call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + call GSH_GROUPREGULATORYCONTROLSHOWSUPPRESSEDALARM(oShape) + End If +End If + +if flag <= 1 then + call GSH_GEN_SETSHAPEFOCUS(oShape) 'replaces GSH_GROUPREGULATORYCONTROLSETFOCUS(oShape) + + 'Check for Off Normal and hide text entry and combobox if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + if GSH_TPS_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if +End If + +if flag = 0 then + 'PV Data Check + If GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) Then + call GSH_GROUPREGULATORYCONTROLSHOWBADPV(oShape) + else + oShape.objects("txt_AnalogValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + End If + + 'Display OP Value + oShape.objects("txt_OPValue").value = FormatNumber(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS,-2,0,0) + + 'Display SP Value + oShape.objects("txt_SPValue").value = GSH_FormatPVText(oShape,GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_SP)) + + 'Check status Message + dim val_stsMsg + val_stsMsg = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG) + call GSH_Show_StatusMessageFlag(oShape, val_stsMsg) + + + 'ModAttr Data Check + If (GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODATTR) = GSH_MODE_PROGRAM) Then + oShape.objects("txt_ModeValue").value = GSH_MODE_PROGRAM_TEXT & GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + Else + oShape.objects("txt_ModeValue").value = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE) + end if + + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + + 'Set Ramping + Select case GSH_GET_POINT_RAMPING_VALUE(oShape.objects("rec_DataScript")) + Case GSH_RAMPING_RUN + call GSH_GROUPREGULATORYCONTROLSHOW_RAMP(oShape,Left(GSH_RAMPING_RUN,1)) + Case GSH_RAMPING_PRESET + call GSH_GROUPREGULATORYCONTROLSHOW_RAMP(oShape,Left(GSH_RAMPING_PRESET,1)) + Case else + 'do nothing because visibility is hidden by default and in Show Normal + end select +End If +'gsh_log_e("GSH_TPS_REGCTLBOX_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_SENSOR_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 09/30/2008 - Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_SENSOR_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_SENSOR_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + + If flag = 0 then + call GSH_SENSORSHOWNORMAL(oShape) + 'Alarming + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) then + 'alarming is enabled, get highest priority and change shape accordingly + 'Select Case GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY) + Select Case GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")) + Case GSH_UNACKEMERG + call GSH_SENSORSHOWEMERGENCYALARM(oShape,true) + Case GSH_UNACKHIGH + call GSH_SENSORSHOWHIGHALARM(oShape,true) + Case GSH_UNACKLOW + call GSH_SENSORSHOWLOWALARM(oShape,true) + Case GSH_ACKEMERG + call GSH_SENSORSHOWEMERGENCYALARM(oShape,false) + Case GSH_ACKHIGH + call GSH_SENSORSHOWHIGHALARM(oShape,false) + Case GSH_ACKLOW + call GSH_SENSORSHOWLOWALARM(oShape,false) + Case Else + End Select + else + 'Alarm is Disabled + call GSH_SENSORSHOWSUPPRESSEDALARM(oShape) + End If + End If + + If flag <= 1 then + call GSH_SETSHAPEFOCUS(oShape) + End If +' gsh_log_e("GSH_TPS_SENSOR_ONUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_MULTIPLESENSORS_ONUPDATE''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/04/09 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_MULTIPLESENSORS_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_MULTIPLESENSORS_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + If flag = 0 then + call GSH_MULTIPLESENSORSSHOWNORMAL(oShape) + 'Alarming + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) then + 'Get Highest Alarm + iAlarmCode1 = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITYALARM,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY) + iAlarmCode2 = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY) + + iAlarmCode = GSH_COMPAREHIGHESTALARMPRIORITY(iAlarmCode1, iAlarmCode2) + Select Case iAlarmCode + Case GSH_UNACKEMERG + call GSH_MULTIPLESENSORSSHOWEMERGENCYALARM(oShape,true) + Case GSH_UNACKHIGH + call GSH_MULTIPLESENSORSSHOWHIGHALARM(oShape,true) + Case GSH_UNACKLOW + call GSH_MULTIPLESENSORSSHOWLOWALARM(oShape,true) + Case GSH_ACKEMERG + call GSH_MULTIPLESENSORSSHOWEMERGENCYALARM(oShape,false) + Case GSH_ACKHIGH + call GSH_MULTIPLESENSORSSHOWHIGHALARM(oShape,false) + Case GSH_ACKLOW + call GSH_MULTIPLESENSORSSHOWLOWALARM(oShape,false) + Case Else + 'No Alarms + End Select + + else + call GSH_MULTIPLESENSORSSHOWSUPPRESSEDALARM(oShape) + + end if + End If + + If flag <= 1 then + 'Set the focus + call GSH_MULTIPLESENSORSSETFOCUS(oShape) + 'No Offnormal check as this shape could be a digital flag or analog point. + End If + 'gsh_log_e("GSH_TPS_MULTIPLESENSORS_ONUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GEN_MULTIPLESENSORS_ALARMGROUP_ONUPDATE''''''''''''''''''''''''''''''''''''' +'Parameters: +' oShape: Shape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/04/09 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_GEN_MULTIPLESENSORS_ALARMGROUP_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_GEN_MULTIPLESENSORS_ALARMGROUP_ONUPDATE oShape=" & oShape.id) +On Error Resume Next + If flag = 0 then + call GSH_MULTIPLESENSORSSHOWNORMAL(oShape) + 'Alarming + + dim sAlarmPriority, bUnack + sAlarmPriority = GSH_GETALARMGROUPPRIORITYPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITYALARM) + bUnack = GSH_GETALARMGROUPUNACKPARAMETER(oShape.objects("rec_dataScript"),GSH_CPENTITYALARM) +' gsh_log ("sAlarmPriority = " & sAlarmPriority & " bUnack = " & bUnack ) + oShape.Objects("focus").linewidth = 0 + + if(sAlarmPriority > 0) then + call GSH_SHOWALARMS (sAlarmPriority, bUnack, oShape) + else + call GSH_SHOWNOALARM(oShape) + oShape.Objects("outline").styleClass = GSH_CSSTABOUTLINENORMAL + end if + End If + If flag <= 1 then + 'Set the focus + call GSH_MULTIPLESENSORSSETFOCUS(oShape) + 'No Offnormal check as this shape uses an alarm group. + End If +' gsh_log_e("GSH_GEN_MULTIPLESENSORS_ALARMGROUP_ONUPDATE") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_VALVEAUTOMAN_OnUpdate'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 09/30/08 Created shape by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_VALVEAUTOMAN_OnUpdate(oShape, flag) +'gsh_log_s("GSH_TPS_VALVEAUTOMAN_OnUpdate oShape=" & oShape.id) + + If flag <= 1 then + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) + call GSH_ValveRegulatoryControlShowNormal(oShape) + Dim OPValue,stsmsg, val_redTag, initMan + OPValue = oShape.objects("ind_OPStem").value + If (OPValue <= 5) then + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else if ( (OPValue > 5) and (OPValue < 95) ) then + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + end if: end if + + 'Check the points alarming + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + 'call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + 'Alarm is Disabled + call GSH_ValveRegulatoryControlShowDisabledAlarm(oShape) + End If + + 'Red Tag + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + 'red tag + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + end if + + 'If flag <= 1 then + 'Focus + call GSH_ValveRegulatoryControlSetFocus(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_REGCTLSPLIT_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + call GSH_ValveRegulatoryControlShowOffNormal(oShape) + end if + end if + End If + + If flag = 0 then + 'Check the point Windup + dim sWindupStatus + sWindupStatus = GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")) + call GSH_SHOWWINDUPSTATUS(sWindupStatus,oShape) + + 'Make the focus transparent for valves + oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground + End If +'gsh_log_e("GSH_TPS_VALVEAUTOMAN_OnUpdate") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_VALVEANALOG_OnUpdate'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 14/Feb/2010 Created shape by JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_VALVEANALOG_OnUpdate(oShape, flag) +'gsh_log_s("GSH_TPS_VALVEANALOG_OnUpdate oShape=" & oShape.id) + + If flag <= 1 then + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) + call GSH_ValveRegulatoryControlShowNormal(oShape) + Dim OPValue,stsmsg, val_redTag, initMan + OPValue = oShape.objects("ind_OPStem").value + If (OPValue <= 5) then + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else if ( (OPValue > 5) and (OPValue < 95) ) then + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + end if: end if + + 'Red Tag + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + 'red tag + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + end if + + 'If flag <= 1 then + 'Focus + call GSH_ValveRegulatoryControlSetFocus(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if GSH_C200_REGCTLSPLIT_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY) then + call GSH_ValveRegulatoryControlShowOffNormal(oShape) + end if + end if + End If + + If flag = 0 then + 'Check the point Windup + 'Make the focus transparent for valves + oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground + End If +'gsh_log_e("GSH_TPS_VALVEANALOG_OnUpdate") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_VALVEDIGITAL_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape handle +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 06/04/2009 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_VALVEDIGITAL_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_VALVEDIGITAL_ONUPDATE oShape=" & oShape.id) +on error resume next + +Dim nNumericState, sStateTxt + + If flag <= 1 then + + sStateTxt = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + nNumericState = GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT(oShape, sStateTxt) + +' nNumericState = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + call GSH_ValveDigitalShowNormal(oShape) + call GSH_C200_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) then + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")),oShape) + else + 'Alarm is Disabled + call GSH_ValveDigitalShowDisabledAlarm(oShape) + End If + + 'focus + call GSH_ValveDigitalSetFocus(oShape) + 'Check for Off Normal if not in focus + 'dim sStateTxt: sStateTxt = GSH_TPS_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if (GSH_TPS_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL, sStateTxt)) then + call GSH_ValveDigitalShowOffNormal(oShape) + 'oShape.objects("focus").styleClass = GSH_CSSValveOutlineBackground + end if + end if + + End If + 'Make the focus transparent for valves + 'oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground + + If flag = 0 then + 'Bad Data Check + If GSH_C200_DIGITALCOMPOSITE_ISDATABAD(oShape.objects("rec_DataScript")) Then + call GSH_ValveDigitalShowBadPV(oShape) + else + oShape.objects("txt_PVvalue").value = sStateTxt + End If + + + End If +'gsh_log_e("GSH_TPS_VALVEDIGITAL_ONUPDATE oShape") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_VALVEDIGITALOUTPUT_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = shape handle +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 15/02/2010 Created by JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_VALVEDIGITALOUTPUT_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_VALVEDIGITALOUTPUT_ONUPDATE oShape=" & oShape.id) +on error resume next + +Dim nNumericState, sStateTxt + + If flag <= 1 then + + sStateTxt = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + nNumericState = GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT(oShape, sStateTxt) + + call GSH_ValveDigitalShowNormal(oShape) + call GSH_C200_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) then + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("ConAlpAlarmValue")),oShape) + else + 'Alarm is Disabled + call GSH_ValveDigitalShowDisabledAlarm(oShape) + End If + + 'focus + call GSH_ValveDigitalSetFocus(oShape) + 'Check for Off Normal if not in focus + 'dim sStateTxt: sStateTxt = GSH_TPS_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then +' if (GSH_TPS_DIGITALCOMPOSITE_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL, sStateTxt)) then +' call GSH_ValveDigitalShowOffNormal(oShape) +' 'oShape.objects("focus").styleClass = GSH_CSSValveOutlineBackground +' end if + end if + + End If + 'Make the focus transparent for valves + 'oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground + + If flag = 0 then + 'Bad Data Check + If GSH_C200_DIGITALCOMPOSITE_ISDATABAD(oShape.objects("rec_DataScript")) Then + call GSH_ValveDigitalShowBadPV(oShape) + else + oShape.objects("txt_PVvalue").value = sStateTxt + End If + End If +'gsh_log_e("GSH_TPS_VALVEDIGITALOUTPUT_ONUPDATE oShape") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_VALVEDIGITALFLAG_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Functions the same as Valve Digital but the Offnormal check only exists for Normal State +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 06/04/09 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_VALVEDIGITALFLAG_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_VALVEDIGITALFLAG_ONUPDATE oShape=" & oShape.id) +on error resume next + + + dim sStateTxt, nNumericState + + sStateTxt = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + nNumericState = GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT(oShape, sStateTxt) + + call GSH_ValveDigitalShowNormal(oShape) + call GSH_C200_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) then + 'call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + call GSH_ValveDigitalShowDisabledAlarm(oShape) + End If + + 'focus + call GSH_ValveDigitalSetFocus(oShape) + + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + + + 'Make the focus transparent for valves + 'oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground -> should set to be transparent, now done in GSH_ValveDigitalSetFocus + + If flag = 0 then + 'dim sStateTxt + 'sStateTxt = GSH_C200_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + oShape.objects("txt_PVvalue").value = sStateTxt + End If + + +'gsh_log_e("GSH_TPS_VALVEDIGITALFLAG_ONUPDATE oShape") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_VALVEDIGITAL_NOALARMS_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Functions the same as Valve Digital but the Offnormal check only exists for Normal State +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 07/14/09 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_VALVEDIGITAL_NOALARMS_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_VALVEDIGITAL_NOALARMS_ONUPDATE oShape=" & oShape.id) +on error resume next + + + dim sStateTxt, nNumericState + + sStateTxt = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + nNumericState = GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT(oShape, sStateTxt) + + call GSH_ValveDigitalShowNormal(oShape) + call GSH_C200_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + + 'focus + call GSH_ValveDigitalSetFocus(oShape) + + 'Check for Off Normal if not in focus + call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + + If flag = 0 then + oShape.objects("txt_PVvalue").value = sStateTxt + End If + +'gsh_log_e("GSH_TPS_VALVEDIGITAL_NOALARMS_ONUPDATE oShape") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_VALVEDIGITAL_NOALARMS_ONUPDATE",oShape) + end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_VALVEDIGITAL_SO_NOALARMS_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Functions the same as Valve Digital but the SO flag is a binary not a state +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' 14/Feb/2010 Created by JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_VALVEDIGITAL_SO_NOALARMS_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_VALVEDIGITAL_SO_NOALARMS_ONUPDATE oShape=" & oShape.id) +on error resume next + + dim sStateTxt, nNumericState, bState + + bOPNumeric = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + if bOPNumeric then + sStateTxt = "ON" + else + sStateTxt = "OFF" + end if + nNumericState = GSH_GET_DIGITAL_NUMERIC_FROM_STATETEXT(oShape, sStateTxt) + + call GSH_ValveDigitalShowNormal(oShape) + call GSH_C200_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + + 'focus + call GSH_ValveDigitalSetFocus(oShape) + + 'No check for Off Normal on this tag type +' call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + + oShape.objects("txt_PVvalue").value = sStateTxt + +'gsh_log_e("GSH_TPS_VALVEDIGITAL_SO_NOALARMS_ONUPDATE oShape") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_VALVEDIGITAL_SO_NOALARMS_ONUPDATE",oShape) + end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_VALVEREGCTL_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 09/30/2008: Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_VALVEREGCTL_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_VALVEREGCTL_ONUPDATE oShape=" & oShape.id) + + If flag <= 1 then + oShape.objects("txt_OPvalue").value = FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_OP),GSH_OUTPUTINDICATORDECIMALS) + call GSH_ValveRegulatoryControlShowNormal(oShape) + Dim OPValue,stsmsg, val_redTag, initMan + OPValue = oShape.objects("ind_OPStem").value + If (OPValue <= 5) then + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else if ( (OPValue > 5) and (OPValue < 95) ) then + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else + oShape.objects("plg_valveBody").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + end if: end if + 'Check the points alarming + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then +' call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + 'Alarm is Disabled + call GSH_ValveRegulatoryControlShowDisabledAlarm(oShape) + End If + + 'Assumption: Reg tag and status message are mutual exclusive + 'Status message + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + 'red tag + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + else + 'Check status Message + dim val_stsMsg + val_stsMsg = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_STSMSG) + call GSH_Show_StatusMessageFlag(oShape, val_stsMsg) + end if + 'End If + + 'If flag <= 1 then + 'Focus + call GSH_ValveRegulatoryControlSetFocus(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + 'if (GSH_C200_ValveREGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL)) then + if (GSH_TPS_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL)) then + call GSH_ValveRegulatoryControlShowOffNormal(oShape) + 'oShape.objects("focus").styleClass = GSH_CSSValveOutlineBackground + end if + end if + End If + + If flag = 0 then + 'Check the point Windup + dim sWindupStatus + sWindupStatus = GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")) + call GSH_SHOWWINDUPSTATUS(sWindupStatus,oShape) + + 'Make the focus transparent for valves + oShape.objects("outline").styleClass = GSH_CSSValveOutlineBackground + End If +'gsh_log_e("GSH_TPS_VALVEREGCTL_ONUPDATE") +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_VALVEANALOG3WAY_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/04/2009 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_VALVEANALOG3WAY_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_VALVEANALOG3WAY_ONUPDATE oShape=" & oShape.id) + + If flag <= 1 then + call GSH_VALVEANALOG3WAYSHOWNORMAL(oShape) + + Dim OPValue,stsmsg, val_redTag, initMan + OPValue = oShape.objects("ind_OPStem").value + If (OPValue <= 5) then + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else if ( (OPValue > 5) and (OPValue < 95) ) then + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLNORMAL + else + oShape.objects("wgp_valveTop").styleClass = GSH_CSSVALVEREGULATORYCONTROLSATURATED + end if: end if + + call GSH_VALVEANALOG3WAYSHOWPORT(oShape) + + 'Check the points alarming + if GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) Then + call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY),oShape) + else + call GSH_VALVEANALOG3WAYSHOWDISABLEDALARM(oShape) + End If + + 'Assumption: Reg tag and status message are mutual exclusive + val_redTag = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_REDTAG) + if (val_redTag = GSH_ON) then + 'red tag + call GSH_ValveRegulatoryControlShowStatusMessage(oShape,GSH_REDTAG_TEXT) + end if + + 'End If + + 'If flag <= 1 then + 'Focus + call GSH_VALVEANALOG3WAYSETFOCUS(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then +' if (GSH_C200_ValveREGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL)) then + if (GSH_TPS_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL)) then + call GSH_VALVEANALOG3WAYSHOWOFFNORMAL(oShape) + 'oShape.objects("focus").styleClass = GSH_CSSValveOutlineBackground + end if + end if + End If + + If flag = 0 then + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_DataScript")),oShape) + End If + + +'gsh_log_e("GSH_TPS_VALVEANALOG3WAY_ONUPDATE") +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_LOGICSTATUS_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 12/01/09 Created by JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_LOGICSTATUS_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_LOGICSTATUS_ONUPDATE >>>>> Shape ="& oShape.id) + On Error Resume Next + + 'Shape normal + oShape.objects("outline").style.visibility = GSH_VISIBLE + oShape.objects("outline").styleClass = GSH_CSSALARMNONE + + Dim nNormalState, nPVvalue + nNormalState = CInt(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,"CP_Normal", GSH_CPVALUE)) + nPVvalue = CInt(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + + If flag = 0 then + + if nNormalState = nPVValue then + oShape.objects("linLogic").style.visibility = GSH_VISIBLE + else + oShape.objects("linLogic").style.visibility = GSH_HIDDEN + end if + End If + + If flag <= 1 then + 'Set the focus + call GSH_GEN_SETSHAPEFOCUS(oShape) + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + + if nNormalState <> nPVValue then + oShape.objects("focus").style.visibility = GSH_VISIBLE + oShape.objects("focus").styleClass = GSH_CSSREGULATORYCONTROLVALVEOFFNORMAL + end if + end if + End If +'gsh_log_e("GSH_TPS_LOGICSTATUS_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_LOGICSTATUS_ONUPDATE",oShape) + end if +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GEN_BYPASSSTATUS_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 12/06/09 Created by JE +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_GEN_BYPASSSTATUS_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_GEN_BYPASSSTATUS_ONUPDATE >>>>> Shape ="& oShape.id) + On Error Resume Next + + Dim nPVvalue + nPVvalue = CInt(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + +'These shapes use alarm group tags - which are not real tags in the registry - so do not give them focus. +'if we want selectability - we need to add the alarm groups to the registry in future + + 'Set the focus, shape does not have outline show cannot use GSH_GEN_SETSHAPEFOCUS +' call GSH_SETSHAPEFOCUS(oShape) + + shapeFocusStyle = GSH_CSSFOCUSNONE + oShape.objects("focus").styleClass = shapeFocusStyle + + 'Set the colour of the oval + if nPVvalue > 0 then + oShape.objects("ovalBypass").styleClass = GSH_CSSOFFNORMALLINEFILL + oShape.objects("textLabel").style.visibility = GSH_VISIBLE + else + oShape.objects("ovalBypass").styleClass = GSH_CSSNORMALLINEFILL + oShape.objects("textLabel").style.visibility = GSH_HIDDEN + End If + +'gsh_log_e("GSH_GEN_BYPASSSTATUS_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_GEN_BYBPASSSTATUS_ONUPDATE",oShape) + end if +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_GSH_GEN_SETVALUE_ONCLICK''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 03/03/10 Created by JE to replace the ONACTIVATE (which was firing multiple shapes) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_GEN_SETVALUE_ONCLICK(oShape) +'gsh_log_s("GSH_GEN_SETVALUE_ONCLICK >>>>> Shape ="& oShape.id) + On Error Resume Next + + Dim tagName, parameterName, parameterValue, resultParameterValue + Dim userResponse, check + + tagName = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,"Entity", GSH_CPPOINT) + parameterName = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,"CP_Parameter", GSH_CPPARAMETER) + parameterValue = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,"CP_Value",GSH_CPVALUE) + + userResponse = Msgbox("Confirm setting " &tagName &"." ¶meterName &" to " ¶meterValue &" ? ",vbYesNo) + + If userResponse = vbYes Then + check = oShape.objects("rec_DataScript").SetDataValueSynchronous(GSH_CPENTITY & "." & parameterName, parameterValue) + End If + +' If check = False Then +' Msgbox("Error: Failed to write " ¶meterValue &" to " &tagName &"." ¶meterName) +' End If + +'gsh_log_e("GSH_GEN_SETVALUE_ONCLICK") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_SERVICETANK_ONCLICK''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/03/10 Created by JE to replace the ONACTIVATE (which was firing multiple shapes) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_SERVICETANK_ONCLICK(oShape,iButton) +'gsh_log_s("GSH_TPS_SERVICETANK_ONCLICK >>>>> Shape ="& oShape.id) + On Error Resume Next + + Dim tagName, parameterName, parameterValue, resultParameterValue + Dim userResponse, check + + parameterName = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,"CP_PV", GSH_CPPARAMETER) + txtPBValue = "CP_PB" & iButton & "_Value" + nparameterValue = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,txtPBValue,GSH_CPVALUE) + + check = oShape.objects("rec_DataScript").SetDataValueSynchronous(GSH_CPENTITY & "." & parameterName, nparameterValue) + +'gsh_log_e("GSH_TPS_SERVICETANK_ONCLICK") +End Sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_SERVICETANK_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal +' 06/03/10 Created by JE to replace the ONACTIVATE (which was firing multiple shapes) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Sub GSH_TPS_SERVICETANK_ONUPDATE(oShape) +'gsh_log_s("GSH_TPS_SERVICETANK_ONUPDATE >>>>> Shape ="& oShape.id) + On Error Resume Next +' +'Update dynamic elements +' + nPVValue = cInt(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV)) + + oShape.objects("textBoxTankNum").textcolor = GSH_DARKGRAYCOLOR + oShape.objects("polygonUp").fillcolor = GSH_LIGHTLIGHTGRAYCOLOR + oShape.objects("polygonDown").fillcolor = GSH_LIGHTLIGHTGRAYCOLOR + oShape.objects("oval001").fillcolor = GSH_LIGHTLIGHTGRAYCOLOR + oShape.objects("oval002").fillcolor = GSH_LIGHTLIGHTGRAYCOLOR + oShape.objects("oval003").fillcolor = GSH_LIGHTLIGHTGRAYCOLOR + oShape.objects("oval004").fillcolor = GSH_LIGHTLIGHTGRAYCOLOR + + Select Case nPVValue + Case 1 + oShape.objects("textBoxTankNum").textColor = GSH_OFFNORMALCOLOR + oShape.objects("oval001").fillcolor = GSH_DARKGRAYCOLOR + Case 2 + oShape.objects("textBoxTankNum").textColor = GSH_OFFNORMALCOLOR + oShape.objects("oval002").fillcolor = GSH_DARKGRAYCOLOR + oShape.objects("polygonUp").fillcolor = GSH_DARKGRAYCOLOR + Case 3 + oShape.objects("textBoxTankNum").textColor = GSH_OFFNORMALCOLOR + oShape.objects("oval003").fillcolor = GSH_DARKGRAYCOLOR + oShape.objects("polygonDown").fillcolor = GSH_DARKGRAYCOLOR + Case 4 + oShape.objects("textBoxTankNum").textColor = GSH_OFFNORMALCOLOR + oShape.objects("oval004").fillcolor = GSH_DARKGRAYCOLOR + End Select + +'gsh_log_e("GSH_TPS_SERVICETANK_ONUPDATE") +End Sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' TPS L1 Shapes +' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_ANALOGINDICATOR_L1_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_ANALOGINDICATOR_L1_ONUPDATE (oShape, flag) +on error resume next + + call GSH_TPS_ANALOGINDICATOR_ONUPDATE (oShape, flag) + + dim sAlarmCode, bInSA + bInSA = false +' sAlarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY) + sAlarmCode = GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")) + + 'Check SA Bars Limit + rSAHi = CDbl(FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSAUPPERLIMIT, GSH_CPVALUE))) + rSALo = CDbl(FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSALOWERLIMIT, GSH_CPVALUE))) + rPV = CDbl(FormatNumber(oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV))) + + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + If ((rPV > rSAHi) Or (rPV < rSALo)) Then + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + bInSA = true + End If + + if(not(bInSA) AND StrComp(sAlarmCode,GSH_NONE,vbtextcompare) <> 0) then + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + else + oShape.objects("outline").style.visibility = GSH_VISIBLE + end if +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_DIGITALINDICATOR_L1_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_DIGITALINDICATOR_L1_ONUPDATE (oShape, flag) +on error resume next +'gsh_log_s("GSH_TPS_DIGITALINDICATOR_L1_ONUPDATE oShape = " &oShape.id) + + call GSH_TPS_DIGITALINDICATOR_ONUPDATE (oShape, flag) + + dim sPVState, sSAState + 'Check SA Condition + sPVState = GSH_TPS_DIGITAL_GETSTATE(oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY),GSH_CPENTITY, GSH_CPPARAM_PV, oShape.objects("rec_DataScript")) + + Dim sTagname + sTagname = GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPENTITY, GSH_CPPOINT) + +' gsh_log("sTagname = " &sTagname) + + sSAState = GSH_READTAGINFORMATIONKEYVALUE(sTagname, GSH_REGKEY_SA_STATE, GSH_NONE) + +' msgbox("sPVState " & sPVState & " sSAState = " &sSAState) + + If (StrComp(sPVState, sSAState, vbTextCompare) <> 0) Then + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + Else + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + End If + +' gsh_log_e("GSH_TPS_DIGITALINDICATOR_L1_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_DIGITALINDICATOR_L1_ONUPDATE",oShape) + end if +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_LevelRegCtl_L1Gauge_FR_OnUpdate Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_LevelRegCtl_L1Gauge_FR_OnUpdate(oShape, flag) +'gsh_log_s("GSH_TPS_LevelRegCtl_L1Gauge_FR_OnUpdate oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad + isAlmEnabled = GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) + isOffNormal = GSH_C200_REGCTL_POINT_ISOFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + isDataBad = GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) + + call GSH_LevelRegCtl_L1Gauge_FR_OnUpdate_new(oShape, flag, isAlmEnabled, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, isOffNormal, isDataBad) + + 'Check the point Windup + call GSH_SHOWWINDUPSTATUS(GSH_GET_POINT_WINDUP_VALUE(oShape.objects("rec_datascript")),oShape) + +'gsh_log_e("GSH_LevelAnalog_SAGauge_FR_SCADA_OnUpdate") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_LevelRegCtl_L1Gauge_FR_OnUpdate",oShape) + end if +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_LevelAnalog_L1Gauge_FR_OnUpdate Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_LevelAnalog_L1Gauge_FR_OnUpdate(oShape, flag) +'gsh_log_s("GSH_TPS_LevelAnalog_L1Gauge_FR_OnUpdate oShape="&oShape.id) +On Error Resume Next + +'''Jan. 25 ''' + + dim isAlmEnabled, isOffNormal, isDataBad + isAlmEnabled = GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) + isOffNormal = GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + isDataBad = GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) + + call GSH_LevelAnalog_L1Gauge_FR_OnUpdate(oShape, flag, isAlmEnabled, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, isOffNormal, isDataBad) + +'gsh_log_e("GSH_TPS_LevelAnalog_L1Gauge_FR_OnUpdate") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_LevelAnalog_L1Gauge_FR_OnUpdate",oShape) + end if +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_QualityAnalog_L1Gauge_FR_OnUpdate Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_QualityAnalog_L1Gauge_FR_OnUpdate(oShape, flag) +'gsh_log_s("GSH_TPS_QualityAnalog_L1Gauge_FR_OnUpdate oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad + isAlmEnabled = GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) + isOffNormal = GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + isDataBad = GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) + + call GSH_QualityAnalog_L1Gauge_FR_OnUpdate_new(oShape, flag, isAlmEnabled, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, isOffNormal, isDataBad) + +'gsh_log_e("GSH_TPS_QualityAnalog_L1Gauge_FR_OnUpdate") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_QualityAnalog_L1Gauge_FR_OnUpdate",oShape) + end if + +end sub + + +sub GSH_TPS_Quality_L1Deviation_FR_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_Quality_L1Deviation_FR_ONUPDATE oShape="&oShape.id) +On Error Resume Next + + + dim isAlmEnabled, isOffNormal, isDataBad, pvRefVal + isAlmEnabled = GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) + isOffNormal = GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + isDataBad = GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) + pvRefVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"PVRefVal") + + call GSH_Quality_L1Deviation_FR_ONUPDATE(oShape, flag, isAlmEnabled, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, isOffNormal, isDataBad, pvRefVal) + + +'gsh_log_e("GSH_TPS_Quality_L1Deviation_FR_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_Quality_L1Deviation_FR_ONUPDATE",oShape) + end if + +end sub + + + +sub GSH_TPS_Quality_L1Deviation_Hi_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_Quality_L1Deviation_Hi_ONUPDATE oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad, pvRefVal + isAlmEnabled = GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) + isOffNormal = GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + isDataBad = GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) + pvRefVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"PVRefVal") + + call GSH_Quality_L1Deviation_Hi_ONUPDATE(oShape, flag, isAlmEnabled, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, isOffNormal, isDataBad, pvRefVal) + +'gsh_log_e("GSH_TPS_Quality_L1Deviation_Hi_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_Quality_L1Deviation_Hi_ONUPDATE",oShape) + end if +end sub + + + +sub GSH_TPS_Quality_L1Deviation_Lo_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_Quality_L1Deviation_Lo_ONUPDATE oShape="&oShape.id) +On Error Resume Next + + dim isAlmEnabled, isOffNormal, isDataBad, pvRefVal + isAlmEnabled = GSH_TPS_ISALARMINGENABLED(oShape.objects("rec_DataScript"),GSH_CPENTITY, GSH_TPS_PARAM_ALARM_ENABLED) + isOffNormal = GSH_C200_ANALOG_POINT_IS_OFFNORMAL(oShape.objects("rec_DataScript"), GSH_CPENTITY, GSH_CPPARAM_OFFNORMAL) + isDataBad = GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) + pvRefVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"PVRefVal") + + call GSH_Quality_L1Deviation_Lo_ONUPDATE(oShape, flag, isAlmEnabled, GSH_TPS_PARAM_ALARM_HIGHEST_PRORITY, isOffNormal, isDataBad, pvRefVal) + +'gsh_log_e("GSH_TPS_Quality_L1Deviation_Lo_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_Quality_L1Deviation_Lo_ONUPDATE",oShape) + end if +end sub + +sub GSH_TPS_QualTrend_OnUpdate(oShape, flag) +'gsh_log_s("GSH_TPS_QualTrend_OnUpdate oShape="&oShape.id) +On Error Resume Next + + 'Check for bad value + dim isDataBad + isDataBad = GSH_ISDATABAD(oShape.objects("rec_DataScript"), GSH_CPPARAM_PV, true, false) + + call GSH_QualTrend_OnUpdate(oShape, flag, isDataBad) + +'gsh_log_e("GSH_TPS_QualTrend_OnUpdate") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_QualTrend_OnUpdate",oShape) + end if + +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_OPDEVIATION_L1_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_OPDEVIATION_L1_ONUPDATE (oShape, flag) +'gsh_log_s("GSH_TPS_OPDEVIATION_L1_ONUPDATE oShape=" & oShape.id) +on error resume next + + dim isOffNormal + isOffNormal = GSH_C200_ANALOG_MODE_ISOFFNORMAL(oShape.objects("OPDevMonitor_Script"), GSH_CPENTITY) + + call GSH_OPDEVIATION_L1_ONUPDATE(oShape, flag, isOffNormal) + + +' End If + +'gsh_log_e("GSH_TPS_OPDEVIATION_L1_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_OPDEVIATION_L1_ONUPDATE",oShape) + end if +end sub + +'nNumericStateValue = 0 -> not running +' = 1 -> running +'Styles are configurable from registry +sub GSH_SetRunStatus(oShape,nNumericStateValue) +'gsh_log_s("GSH_SetRunStatus oShape=" & oShape.id & "nNumericStateValue=" & nNumericStateValue) +on error resume next + Dim sTagName, sStateStyle, nValue + if (nNumericStateValue < 1) then + sStateStyle = GSH_CSSMOTOROFF + else + sStateStyle = GSH_CSSMOTORON + end if + oShape.objects("pol_RunSatus").styleClass = sStateStyle +'gsh_log_e("GSH_SetRunStatus set to "& sStateStyle) +end sub + +' +'Logic (Marcus & Jamie) +' Only one function code would work... so you create just one FunctionCode Parameter which can be set to 1 or 2 where: +' 1 = One of the three "CompareValue" must match +' 2 = CompareValue1 must match or the Input PV must be betwen CompareValue2 and CompareValue3 +' +' +sub GSH_TPS_RunStatus_OnUpdate(oShape, flag) +'gsh_log_s("GSH_TPS_RunStatus_OnUpdate oShape=" &oShape.id) +on error resume next + dim pvValue, cpValue1, cpValue2, cpValue3, functionCode + 'set shape status as not running + call GSH_SetRunStatus(oShape,0) + 'Get CompareValue1, 2 & 3. + cpValue1 = CDbl(oShape.GetCustomProperty(GSH_CPVALUE,"CompareValue1")) + cpValue2 = CDbl(oShape.GetCustomProperty(GSH_CPVALUE,"CompareValue2")) + cpValue3 = CDbl(oShape.GetCustomProperty(GSH_CPValue,"CompareValue3")) + functionCode = CInt(oShape.GetCustomProperty(GSH_CPVALUE,"FunctionCode")) + pvValue = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + if functionCode = 1 then + if pvValue = cpValue1 Or pvValue = cpValue2 Or pvValue = cpValue3 then + call GSH_SetRunStatus(oShape,1) + end if + elseif functionCode = 2 then + if pvValue = cpValue1 Or (pvValue <cpValue3 And pvValue > cpValue2) then + call GSH_SetRunStatus(oShape,1) + end if + end if +'gsh_log_e("GSH_TPS_RunStatus_OnUpdate") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_RunStatus_OnUpdate",oShape) + end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_TPS_VALVEDIGITAL_BnB_NOALARMS_ONUPDATE'''''''''''''''''''''''''''''''''''''''''' +'Functions the same as Valve Digital but the Offnormal check only exists for Normal State +'Parameters: +' oDataBoundObject = subshape name or me, if calling within subshape +' flag = 0 -> do everything +' flag = 1 -> do focus & offnormal (b/c digital values are not changed often) +' +' Logic (Jamie): +' This will gets its indication from a single digital indicator (0 or 1) tag. +' When the value is 0 then the Bleed (upper) valve is open and the two process (horizontal) valves are closed. +' When the value is 1 then the Bleed valve is closed and the two proces valves are open. +' If the value is anything else - then all three valves are shown in Travel +' +' 11/25/09 Created by CL +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_TPS_VALVEDIGITAL_BnB_NOALARMS_ONUPDATE(oShape, flag) +'gsh_log_s("GSH_TPS_VALVEDIGITAL_BnB_NOALARMS_ONUPDATE oShape=" & oShape.id) +on error resume next + + + call GSH_ValveDigitalBnBSetFocus(oShape) + + 'Get pv value + dim nPV + nPV = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + + 'if pv = 0, then + 'Set Bleed (upper) valve style as open, set its text as "OPEN" + 'Set the other valve styles as opened, set their texts as "CLOSED" + if nPV = 0 then + oShape.objects("plg_ValveDigitalPic1").styleClass = GSH_CSSVALVEDIGITALOPEN + oShape.objects("plg_ValveDigitalPic2").styleClass = GSH_CSSVALVEDIGITALCLOSED + oShape.objects("plg_ValveDigitalPic3").styleClass = GSH_CSSVALVEDIGITALCLOSED + oShape.objects("txt_PVvalue1").value = "OPEN" + oShape.objects("txt_PVvalue2").value = "CLOSED" + oShape.objects("txt_PVvalue3").value = "CLOSED" + 'if pv = 1 then + 'Set Bleed valve style as closed, set its text as "CLOSED" + 'Set the other valve styles as open, set theirs texts as "OPEN" + elseif nPV = 1 then + oShape.objects("plg_ValveDigitalPic1").styleClass = GSH_CSSVALVEDIGITALCLOSED + oShape.objects("plg_ValveDigitalPic2").styleClass = GSH_CSSVALVEDIGITALOPEN + oShape.objects("plg_ValveDigitalPic3").styleClass = GSH_CSSVALVEDIGITALOPEN + oShape.objects("txt_PVvalue1").value = "CLOSED" + oShape.objects("txt_PVvalue2").value = "OPEN" + oShape.objects("txt_PVvalue3").value = "OPEN" + else + 'Set all three valves as travel + oShape.objects("plg_ValveDigitalPic1").styleClass = GSH_CSSVALVEDIGITALTRAVEL + oShape.objects("plg_ValveDigitalPic2").styleClass = GSH_CSSVALVEDIGITALTRAVEL + oShape.objects("plg_ValveDigitalPic3").styleClass = GSH_CSSVALVEDIGITALTRAVEL + oShape.objects("txt_PVvalue1").value = "TRAVEL" + oShape.objects("txt_PVvalue2").value = "TRAVEL" + oShape.objects("txt_PVvalue3").value = "TRAVEL" + end if + + 'call GSH_ValveDigitalShowNormal(oShape) + 'call GSH_C200_VALVEDIGITALSETVALVENUMERICSTATE(oShape,nNumericState,GSH_CPPARAM_PV) + + 'focus + 'call GSH_ValveDigitalSetFocus(oShape) + + 'Check for Off Normal if not in focus + 'call GSH_TPS_DIGITAL_OFFNORMAL_SHOWSTATUS (oShape, GSH_CPPARAM_PV) + + 'If flag = 0 then + ' oShape.objects("txt_PVvalue").value = sStateTxt + 'End If + + +'gsh_log_e("GSH_TPS_VALVEDIGITAL_BnB_NOALARMS_ONUPDATE oShape") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_TPS_VALVEDIGITAL_BnB_NOALARMS_ONUPDATE",oShape) + end if +end sub + + +''''''''''''''''''' End TPS L1 Shapes '''''''''''''''''''''' + + + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +' _____ ____ ____ _____ _ _ +'|_ _| _ \/ ___| | ___|_ _ ___ ___ _ __ | | __ _| |_ ___ ___ +' | | | |_) \___ \ | |_ / _` |/ __/ _ \ '_ \| |/ _` | __/ _ \/ __| +' | | | __/ ___) | | _| (_| | (_| __/ |_) | | (_| | || __/\__ \ +' |_| |_| |____/ |_| \__,_|\___\___| .__/|_|\__,_|\__\___||___/ +' +''''''''''''''''''''''''''TPS Faceplates General ''''''''''''''''''''''''''''''''''' + + + '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_TPS_ANALOG_SOL_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Alarm Limits, Detail Trend +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_TPS_ANALOG_SOL_ONPAGECOMPLETE +'gsh_log_s "GSH_FP_TPS_ANALOG_SOL_ONPAGECOMPLETE" + call GSH_FP_TPS_ANALOG_ONPAGECOMPLETE + +' gsh_log("ConAlpTagname.value = " &ConAlpTagname.value) + 'Show SOL condition if there is any +' Dim solHi, solLo +' solHi = GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_REGKEY_SOL_HI, GSH_NONE) +' solLo = GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_REGKEY_SOL_LO, GSH_NONE) + + dim nPVFormat + nPVFormat = right(GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1) + +' gsh_log("solHi = " &solHi & "solLo = " &solLo) + + If (txt_alarmtype2.style.visibility = GSH_VISIBLE) Then + txt_SOLHI.style.visibility = GSH_VISIBLE + Else + txt_SOLHI.style.visibility = GSH_HIDDEN + End If + + If (strcomp(txt_alarmtype3.style.visibility,GSH_HIDDEN,vbtextcompare) <> 0) Then + txt_SOLLO.style.visibility = GSH_VISIBLE + Else + txt_SOLLO.style.visibility = GSH_HIDDEN + End If + +'gsh_log_e "GSH_FP_TPS_ANALOG_SOL_ONPAGECOMPLETE" +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_TPS_ANALOG_ONPAGECOMPLETE +'Function: Initializes objects on the faceplate based on the current point +' Description, Keyword, Eng Units, Alarm Limits, Detail Trend +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_TPS_ANALOG_ONPAGECOMPLETE +'gsh_log_s "GSH_FP_TPS_ANALOG_ONPAGECOMPLETE" + call GSH_FP_GENERAL_ONPAGECOMPLETE + dim nPVFormat + nPVFormat = right(GSH_READTAGINFORMATIONKEYVALUE(ConAlpTagname.value, GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1) + txt_euhi.value = FORMATNUMBER(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & GSH_PVEUHI),nPVFormat,-2, 0, 0) + txt_eulo.value = FORMATNUMBER(ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & "." & GSH_PVEULO),nPVFormat,-2, 0, 0) + call GSH_FP_TPS_ShowAlarmLimits 'Setup Alarm Limits +'gsh_log_e "GSH_FP_TPS_ANALOG_ONPAGECOMPLETE" +end sub + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_FP_TPS_ShowAlarmLimits +'function: Sets the style and position of the 4 alarm limits on the PV Bar graph +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_FP_TPS_ShowAlarmLimits +on error resume next +dim alarmlim, alarmPri 'to do: handle null return from the limit and priority values + 'Alarm 1 + if ConAlpTagname.IsNan(GSH_SDR_CURRENTPOINT & ".pvhhtp") then + txt_alarmlim1.value = "---" + RecAlarm1.style.visibility = GSH_HIDDEN + else + alarmlim = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".pvhhtp") + alarmPri = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".pvhhpr") + If (alarmPri > 1) then + txt_alarmlim1.value = GSH_FormatPVTextTag(ConAlpTagname.value,alarmlim) + else + txt_alarmlim1.value = "---" + end if + txt_alarmlim1.style.visibility = GSH_VISIBLE ''why do we need these two lines for TPS and not C200? + txt_alarmtype1.style.visibility = GSH_VISIBLE + call GSH_FP_C200_ShowAlarmRec(RecAlarm1, alarmlim, alarmPri) + end if + 'Alarm 2 + if ConAlpTagname.IsNan(GSH_SDR_CURRENTPOINT & ".pvhitp") then + txt_alarmlim2.value = "---" + RecAlarm2.style.visibility = GSH_HIDDEN + else + alarmlim = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".pvhitp") + alarmPri = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".pvhipr") + If (alarmPri > 1) then + txt_alarmlim2.value = GSH_FormatPVTextTag(ConAlpTagname.value,alarmlim) + else + txt_alarmlim2.value = "---" + end if + txt_alarmlim2.style.visibility = GSH_VISIBLE ''why do we need these two lines for TPS and not C200? + txt_alarmtype2.style.visibility = GSH_VISIBLE + call GSH_FP_C200_ShowAlarmRec(RecAlarm2, alarmlim, alarmPri) + end if + 'Alarm 3 + if ConAlpTagname.IsNan(GSH_SDR_CURRENTPOINT & ".pvlotp") then + txt_alarmlim3.value = "---" + RecAlarm3.style.visibility = GSH_HIDDEN + else + alarmlim = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".pvlotp") + alarmPri = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".pvlopr") + If (alarmPri > 1) then + txt_alarmlim3.value = GSH_FormatPVTextTag(ConAlpTagname.value,alarmlim) + else + txt_alarmlim3.value = "---" + end if + txt_alarmlim3.style.visibility = GSH_VISIBLE ''why do we need these two lines for TPS and not C200? + txt_alarmtype3.style.visibility = GSH_VISIBLE + call GSH_FP_C200_ShowAlarmRec(RecAlarm3, alarmlim, alarmPri) + end if + 'Alarm 4 + if ConAlpTagname.IsNan(GSH_SDR_CURRENTPOINT & ".pvlltp") then + txt_alarmlim4.value = "---" + RecAlarm4.style.visibility = GSH_HIDDEN + else + alarmlim = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".pvlltp") + alarmPri = ConAlpTagname.DataValue(GSH_SDR_CURRENTPOINT & ".pvllpr") + If (alarmPri > 1) then + txt_alarmlim4.value = GSH_FormatPVTextTag(ConAlpTagname.value,alarmlim) + else + txt_alarmlim4.value = "---" + end if + txt_alarmlim4.style.visibility = GSH_VISIBLE ''why do we need these for TPS and not C200? + txt_alarmtype4.style.visibility = GSH_VISIBLE + call GSH_FP_C200_ShowAlarmRec(RecAlarm4, alarmlim, alarmPri) + end if + + if Err then + call GSH_ERROR_HANDLING("GSH_FP_TPS_ShowAlarmLimits") + end if + +end sub + +'--------------------------------------------END TPS SPECIFIC------------------------------ + + +'------------------------------------------------------------------------------------------ +' Common L1 Shape +' +'------------------------------------------------------------------------------------------ + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_LevelRegCtl_L1Gauge_FR_OnUpdate Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_LevelRegCtl_L1Gauge_FR_OnUpdate(oShape, flag, isAlmEnabled, almPriorityParam, isOffNormal, isDataBad) +'gsh_log_s("GSH_LevelRegCtl_L1Gauge_FR_OnUpdate oShape="&oShape.id &" isOffNormal = " &isOffNormal) +On Error Resume Next + + Dim sAlarmCode, bInSA + + call GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) + +' sAlarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,almPriorityParam) + sAlarmCode = GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")) + + If flag <= 1 then +' call GSH_SALevelIndicatorRegulatoryControlShowNormal(oShape) + + 'Check the points alarming + if CBool(isAlmEnabled) Then + call GSH_SHOWLEVELALARMS(sAlarmCode,oShape) + else + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + end if + + 'Check Focus + call GSH_LevelRegCtl_SAGauge_SetFocus(oShape, isOffNormal) + + + + 'Set Alarm Lines + Dim rRangeHi, rRangeLo + + rRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + rRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) + +''' Jan2010 + + If flag = 0 Then + call GSH_C200_SetAlarmLinesVertical_new(oShape, rRangeHi, rRangeLo, 4) + End If + + 'Set SA Bars Limit + Dim iSAHi, iSALo + iSAHi = FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSAUPPERLIMIT, GSH_CPVALUE)) + iSALo = FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSALOWERLIMIT, GSH_CPVALUE)) + call GSH_LevelIndicatorShowSALimits(oShape, iSAHi, iSALo) + + 'Check for bad value + If CBool(isDataBad) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + Dim iPV, iSP, iPVFormat, iPVFormated + + iPV = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + iSP = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"), GSH_CPPARAM_SP)) + 'Locate PV Float + call GSH_SetObjectLocation_Vertical(oShape.objects("linePVRange"), oShape.objects("rec_IndicatorFloat"), iPV, rRangeHi, rRangeLo) + + 'Locate SP Float + call GSH_SetObjectLocation_Vertical(oShape.objects("linePVRange"), oShape.objects("plg_SPIndicator"), iSP, rRangeHi, rRangeLo) + + shapeTagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + iPVFormat = right(GSH_READTAGINFORMATIONKEYVALUE(shapeTagName,GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1) + iPVFormated = FormatNumber(iPV, iPVFormat) + oShape.objects("txt_PVvalue").value = iPVFormated + + bInSA = GSH_IsShapeInSA(iPV, iSAHi, iSALo) + if (bInSA) then + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + else + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + end if + + 'Set Recent PV range bar + call GSH_LevelRegCtl_SAGauge_SetPVRangeBar(oShape, iPV) + End If + + oShape.objects("txt_mode").value = Left(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE), 1) + + + call GSH_LevelRegCtl_SAGauge_ShowHideComponents(oShape, sAlarmCode, bInSA, isOffNormal) + + + End If + + +'gsh_log_e("GSH_LevelRegCtl_L1Gauge_FR_OnUpdate") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_LevelRegCtl_L1Gauge_FR_OnUpdate",oShape) + end if +end sub + + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_LevelAnalog_L1Gauge_FR_OnUpdate Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_LevelAnalog_L1Gauge_FR_OnUpdate(oShape, flag, isAlmEnabled, almPriorityParam, isOffNormal, isDataBad) +'gsh_log_s("GSH_LevelAnalog_L1Gauge_FR_OnUpdate oShape="&oShape.id) +On Error Resume Next + + Dim sAlarmCode, bInSA + bInSA = false +' sAlarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,almPriorityParam) + sAlarmCode = GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")) + + call GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) + + 'Check the points alarming + if CBool(isAlmEnabled) Then + 'call GSH_SHOWLEVELALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,almPriorityParam),oShape) + call GSH_SHOWLEVELALARMS(sAlarmCode,oShape) + else + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + + End If + + 'Check Focus & offnormal + call GSH_LevelRegCtl_SAGauge_SetFocus(oShape, isOffNormal) + + 'Set Alarm Lines + Dim rRangeHi, rRangeLo + + rRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + rRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) + + shapeTagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + If flag = 0 Then + call GSH_C200_SetAlarmLinesVertical_new(oShape, rRangeHi, rRangeLo, 4, shapeTagName) + End If + + 'Set SA Bars Limit + Dim iSAHi, iSALo + iSAHi = FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSAUPPERLIMIT, GSH_CPVALUE)) + iSALo = FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSALOWERLIMIT, GSH_CPVALUE)) + call GSH_LevelIndicatorShowSALimits(oShape, iSAHi, iSALo) + + 'Check for bad value + If CBool(isDataBad) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + Dim iPV, iSP, iPVFormat, iPVFormated + + iPV = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + iSP = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"), GSH_CPPARAM_SP)) + 'Locate PV Float + call GSH_SetObjectLocation_Vertical(oShape.objects("linePVRange"), oShape.objects("rec_IndicatorFloat"), iPV, rRangeHi, rRangeLo) + + shapeTagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + iPVFormat = right(GSH_READTAGINFORMATIONKEYVALUE(shapeTagName,GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1) + iPVFormated = FormatNumber(iPV, iPVFormat) + oShape.objects("txt_PVvalue").value = iPVFormated + + bInSA = GSH_IsShapeInSA(iPV, iSAHi, iSALo) + if (bInSA) then + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + else + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + end if + + 'Set Recent PV range bar + call GSH_LevelRegCtl_SAGauge_SetPVRangeBar(oShape, iPV) + + End If + + call GSH_LevelAnalog_SAGauge_ShowHideComponents(oShape, sAlarmCode, bInSA, isOffNormal) + +' gsh_log_e("GSH_LevelAnalog_L1Gauge_FR_OnUpdate") + + if Err then +' call GSH_SHAPE_ERROR_HANDLING("GSH_LevelAnalog_L1Gauge_FR_OnUpdate",oShape) + end if +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_QualityAnalog_L1Gauge_FR_OnUpdate Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_QualityAnalog_L1Gauge_FR_OnUpdate(oShape, flag, isAlmEnabled, almPriorityParam, isOffNormal, isDataBad) +'gsh_log_s("GSH_TPS_QualityAnalog_L1Gauge_FR_OnUpdate oShape="&oShape.id) +On Error Resume Next + + dim sAlarmCode, bInSA + bInSA = false + sAlarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,almPriorityParam) + + call GSH_LevelIndicatorShowNormal(oShape) + + 'Check the points alarming + if CBool(isAlmEnabled) Then + call GSH_SHOWLEVELALARMS(sAlarmCode,oShape) + else + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + End If + + + 'Check Focus + 'call GSH_LevelRegCtl_QualitySAGauge_SetFocus(oShape) + + call GSH_LevelRegCtl_SAGauge_SetFocus(oShape, isOffNormal) + +' if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then +' if CBool(isOffNormal) then +' call GSH_LevelIndicatorSHOWOFFNORMAL(oShape) +' end if +' end if + + Dim rRangeHi, rRangeLo + rRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + rRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) + + + If flag = 0 Then + 'Set Alarm Lines + call GSH_C200_SetAlarmLinesHorizontal(oShape, rRangeHi, rRangeLo, 4) + End If + + 'Set SA Bars Limit + Dim rSAHi, rSALo + rSAHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSAUPPERLIMIT, GSH_CPVALUE)) + rSALo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSALOWERLIMIT, GSH_CPVALUE)) + + 'gsh_log("rSAHi = " &rSAHi & " rSALo = " &rSALo) + 'call GSH_QualitySAGauge_ShowSALimits(oShape, rSAHi, rSALo) + call GSH_SetObjectLocationAndWidth_Horizontal(oShape.objects("linePVRange"), oShape.objects("rec_SALow"), rSALo, rRangeLo, rRangeHi, rRangeLo) + call GSH_SetObjectLocationAndWidth_Horizontal(oShape.objects("linePVRange"), oShape.objects("rec_SAHigh"), rRangeHi, rSAHi, rRangeHi, rRangeLo) + + 'Check for bad value + If CBool(isDataBad) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + + Dim rPV, rPVFormat, rPVFormated + + rPV = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + shapeTagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + rPVFormat = right(GSH_READTAGINFORMATIONKEYVALUE(shapeTagName,GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1) + rPVFormated = FormatNumber(rPV, rPVFormat) + oShape.objects("txt_PVvalue").value = rPVFormated + + call GSH_SetObjectLocation_Horizontal(oShape.objects("linePVRange"), oShape.objects("rec_IndicatorFloat"), rPV, rRangeHi, rRangeLo) + 'call GSH_LevelRegCtl_SAGauge_InSA(oShape, rPV, rSAHi, rSALo) + + bInSA = GSH_IsShapeInSA(iPV, iSAHi, iSALo) + if (bInSA) then + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + else + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + end if + + End If + + call GSH_QualityAnalog_SAGauge_ShowHideComponents(oShape, sAlarmCode, bInSA, isOffNormal) + + + +'gsh_log_e("GSH_QualityAnalog_L1Gauge_FR_OnUpdate") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_QualityAnalog_L1Gauge_FR_OnUpdate",oShape) + end if + +end sub + + + +' +'isDataBad: bool - identify if the PV data point is bad +' +' +sub GSH_QualTrend_OnUpdate(oShape, flag, isDataBad) +'gsh_log_s("GSH_QualTrend_OnUpdate oShape="&oShape.id) +On Error Resume Next + + oShape.objects("focus").style.visibility = GSH_HIDDEN + call GSH_SETSHAPEFOCUS(oShape) + + + + 'Check for bad value + If not(CBool(isDataBad)) Then + + + 'We do not want shape to reload it self when Value changes, the changes will affect in next update + oShape.autoReloadContent=false + + ' get the deadband, filter, PVRefVal and the last RefTime + pvRefVal = Cdbl(oShape.GetCustomProperty("Value","PVRefVal")) + tcFilterVal = Cdbl(oShape.GetCustomProperty("Value","TCFilter")) + 'TCFilter + lastRefTime = oShape.GetCustomProperty("Value","LastRefTime") + diff_old = oShape.GetCustomProperty("Value","Diff_Old") + modChange = Cdbl(oShape.GetCustomProperty("Value","ModerateChange")) + sigChange = Cdbl(oShape.GetCustomProperty("Value","SignificantChange")) + RangeMax = Cdbl(oShape.GetCustomProperty("Value","RangeMax")) + RangeMin = Cdbl(oShape.GetCustomProperty("Value","RangeMin")) + + + dim diff_cur, deviation, pvVal, diff_prev + pvVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + + + 'Reference PV value is not set, + 'Initialized on load + if(pvRefVal < -990.0) then + pvRefVal = PVVal + oShape.SetCustomProperty "Value","PVRefVal",pvVal + oShape.SetCustomProperty "Value","LastRefTime",now + oShape.objects("grp_nochange").rotation = 0 + oShape.objects("arrowHead").LineWidth = 1 + oShape.objects("arrowLine").LineWidth = 1 + oShape.objects("arrowHead").LineColor = GSH_DARKGRAYCOLOR + oShape.objects("arrowLine").LineColor = GSH_DARKGRAYCOLOR + oShape.objects("txtHours").value = 0 + exit sub + end if + + 'Get the RefTime from Registry. + dim opDevMonRegistryBase, refTime + opDevMonRegistryBase = GSH_REGISTRY_BASE & GSH_REGISTRY_OPDEVMONITOR + refTime = GSH_READREGISTRY(opDevMonRegistryBase & GSH_REGKEY_OPDEVMON_RESETTIME, GSH_EMPTYSTRING) + + 'If the RefTime > lastRefTime then update OPRefVal to current OPVal & update lastRefTime to RefTime +' 'Need to give it a time buffer (i.e within 10s)? +' 'Reset is applied + if((StrComp(refTime,GSH_EMPTYSTRING)<>0) AND (CDate(refTime) > CDate(lastRefTime))) then + oShape.SetCustomProperty "Value","PVRefVal",pvVal + pvRefVal = pvVal + oShape.SetCustomProperty "Value","LastRefTime",refTime + oShape.SetCustomProperty "Value","Diff_Old",0 + diff_old = 0 + oShape.objects("grp_nochange").rotation = 0 + oShape.objects("arrowHead").LineWidth = 1 'originally = 2, why? + oShape.objects("arrowLine").LineWidth = 1 + oShape.objects("arrowHead").LineColor = GSH_DARKGRAYCOLOR + oShape.objects("arrowLine").LineColor = GSH_DARKGRAYCOLOR + oShape.objects("txtHours").value = 0 + exit sub + end if + + 'Calculate the elapsed time to display + elapsedTime = DateDiff("h",CDate(refTime),now) + + oShape.objects("txtHours").value = CInt(elapsedTime) + + + dim dt + 'Sampling interval = PV update rate = 30s = 0.5 minutes + dt = 0.5 + + 'Calculate PVDeviation + diff_cur = ((pvVal - pvRefVal)/(RangeMax - RangeMin)) * 100.0 + + 'Use low-pass first order filter equation (http://en.wikipedia.org/wiki/Low-pass_filter) + diff_filtered = diff_cur + (diff_old-diff_cur)*(dt/(tcFilterVal+dt)) + + diff_old = diff_filtered + oShape.SetCustomProperty "Value","Diff_Old", diff_old + + 'Set Arrow + if diff_Filtered > sigChange then + oShape.objects("grp_nochange").rotation = -75 + oShape.objects("arrowHead").LineWidth = 3 + oShape.objects("arrowLine").LineWidth = 4 + oShape.objects("arrowHead").LineColor = GSH_CSSBLACK + oShape.objects("arrowLine").LineColor = GSH_CSSBLACK + elseif diff_Filtered > modChange then + oShape.objects("grp_nochange").rotation = -30 + oShape.objects("arrowHead").LineWidth = 2 + oShape.objects("arrowLine").LineWidth = 3 + oShape.objects("arrowHead").LineColor = GSH_CSSBLACK + oShape.objects("arrowLine").LineColor = GSH_CSSBLACK + elseif diff_Filtered < (-1.0*sigChange) then + oShape.objects("grp_nochange").rotation = 75 + oShape.objects("arrowHead").LineWidth = 3 + oShape.objects("arrowLine").LineWidth = 4 + oShape.objects("arrowHead").LineColor = GSH_CSSBLACK + oShape.objects("arrowLine").LineColor = GSH_CSSBLACK + elseif diff_Filtered < (-1.0*modChange) then + oShape.objects("grp_nochange").rotation = 30 + oShape.objects("arrowHead").LineWidth = 2 + oShape.objects("arrowLine").LineWidth = 3 + oShape.objects("arrowHead").LineColor = GSH_CSSBLACK + oShape.objects("arrowLine").LineColor = GSH_CSSBLACK + else + oShape.objects("grp_nochange").rotation = 0 + oShape.objects("arrowHead").LineWidth = 1 + oShape.objects("arrowLine").LineWidth = 1 + oShape.objects("arrowHead").LineColor = GSH_DARKGRAYCOLOR + oShape.objects("arrowLine").LineColor = GSH_DARKGRAYCOLOR + end if + else + oShape.objects("txtHours").value = GSH_BADPV_TEXT + end if + + +'gsh_log_e("GSH_QualTrend_OnUpdate") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_QualTrend_OnUpdate",oShape) + end if + +end sub + + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_OPDEVIATION_L1_ONUPDATE''''''''''''''''''''''''''''''''''''''''''' +'Parameters: oShape = Shape object +'Parameters: flag = 0 -> do everything +' flag = 1 -> do focus only +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_OPDEVIATION_L1_ONUPDATE (oShape, flag, isOffNormal) +'gsh_log_s("GSH_OPDEVIATION_L1_ONUPDATE oShape=" & oShape.id) +on error resume next + + call GSH_C200_OPDEVMONITOR_SHOWNORMAL(oShape) + ' No alarm checking + + + 'Do focus and offnormal checking here. It is important that all shape generic functionalities are + 'done before shape specific ones + oShape.objects("outline").styleClass = GSH_CSSALARMNONE + oShape.objects("rec_IndicatorRange").styleClass = GSH_CSSALARMNONE + call GSH_GEN_SETSHAPEFOCUS(oShape) + + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show analog value and outline + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + oShape.objects("rec_IndicatorRange").fillstyle = GSH_FILLTRANSPARENT + end if + 'Check for Off Normal if not in focus + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if CBool(isOffNormal) then + if (oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + else + oShape.objects("focus").styleClass = GSH_CSSFOCUSOFFNORMAL + end if + end if + end if + + +' If flag = 0 then + + Dim iNumPixels, iLeft + Dim rRangeHi, rRangeLo, iOP + 'Calculate pv value + rRangeHi = Cdbl(oShape.GetCustomProperty("Value","RangeMax")) + rRangeLo = Cdbl(oShape.GetCustomProperty("Value","RangeMin")) + iOP = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("OPDevMonitor_Script"),GSH_CPPARAM_OP)) + oShape.objects("txt_OPValue").value = FormatNumber(iOP, 0) + modeVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("OPDevMonitor_Script"),GSH_CPPARAM_MODE) + oShape.objects("txt_mode").value = Left(modeVal,1) + + call GSH_SetObjectLocation_Horizontal(oShape.objects("lineOPRange"), oShape.objects("rec_IndicatorFloat"), iOP, rRangeHi, rRangeLo) + + + 'Set SA Bars Limit + Dim rSAHi, rSALo + rSAHi = CDbl(FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSAUPPERLIMIT, GSH_CPVALUE))) + rSALo = CDbl(FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSALOWERLIMIT, GSH_CPVALUE))) + + call GSH_SetObjectLocationAndWidth_Horizontal(oShape.objects("lineOPRange"), oShape.objects("rec_SALow"), rSALo, rRangeLo, rRangeHi, rRangeLo) + call GSH_SetObjectLocationAndWidth_Horizontal(oShape.objects("lineOPRange"), oShape.objects("rec_SAHigh"), rRangeHi, rSAHi, rRangeHi, rRangeLo) + + dim bInSA + bInSA = GSH_IsShapeInSA(iOP, rSAHi, rSALo) + if (bInSA) then + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + else + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + end if + + call GSH_OPDeviation_L1_ShowHideComponents(oShape, bInSA, isOffnormal) + + 'We do not want shape to reload it self when Value changes, the changes will affect in next update + oShape.autoReloadContent=false + + dim opRefVal, lastRefTime + + 'Get the OPRefVal and the lastRefTime + + opRefVal = Cdbl(oShape.GetCustomProperty("Value","OPRefVal")) + lastRefTime = oShape.GetCustomProperty("Value","LastRefTime") + + + dim diff_cur, deviation, opVal, diff_prev + opVal = iOP + + 'Get the RefTime from Registry. + dim opDevMonRegistryBase, refTime + opDevMonRegistryBase = GSH_REGISTRY_BASE & GSH_REGISTRY_OPDEVMONITOR + refTime = GSH_READREGISTRY(opDevMonRegistryBase & GSH_REGKEY_OPDEVMON_RESETTIME, GSH_EMPTYSTRING) + + + call GSH_OPDeviation_SAGauge_SetPVRangeBar(oShape, iOP) + + + 'Reference OP value is not set + If(IsDate(lastRefTime) AND IsDate(refTime)) Then + If(CDate(refTime) > CDate(lastRefTime)) Then + oShape.SetCustomProperty "Value","OPRefVal",opVal + opRefVal = opVal + oShape.SetCustomProperty "Value","LastRefTime",refTime + oShape.SetCustomProperty "Value","Diff_Old",0 + diff_old = 0 + call GSH_SetObjectLocation_Horizontal(oShape.objects("lineOPRange"), oShape.objects("plg_OPRefValue"), opRefVal, rRangeHi, rRangeLo) + End If + Else + opRefVal = opVal + oShape.SetCustomProperty "Value","OPRefVal",opVal + oShape.SetCustomProperty "Value","LastRefTime",now + call GSH_SetObjectLocation_Horizontal(oShape.objects("lineOPRange"), oShape.objects("plg_OPRefValue"), opRefVal, rRangeHi, rRangeLo) + + exit sub + End If + +'gsh_log_e("GSH_OPDEVIATION_L1_ONUPDATE") + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_OPDEVIATION_L1_ONUPDATE",oShape) + end if +end sub + + + +sub GSH_Quality_L1Deviation_FR_ONUPDATE(oShape, flag, isAlmEnabled, almPriorityParam, isOffNormal, isDataBad, pvRefVal) +'gsh_log_s("GSH_Quality_L1Deviation_FR_ONUPDATE oShape="&oShape.id) +On Error Resume Next + + + call GSH_SHOWNOALARM(oShape) + oShape.objects("focus").style.visibility = GSH_HIDDEN + call GSH_SETSHAPEFOCUS(oShape) + + + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring + oShape.objects("plg_RightCover").fillcolor = rgb(255,232,180)'GSH_CSSFOCUSASSOCIATED + oShape.objects("plg_LeftCover").fillcolor = rgb(255,232,180)'GSH_CSSFOCUSASSOCIATED + else + oShape.objects("plg_RightCover").fillcolor = rgb(235,235,235)'GSH_CSSBACKGROUND_GRAY + oShape.objects("plg_LeftCover").fillcolor = rgb(235,235,235)'GSH_CSSBACKGROUND_GRAY + end if + + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if CBool(isOffNormal) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + oShape.objects("plg_RightCover").fillcolor = rgb(235,235,235)'GSH_CSSBACKGROUND_GRAY + end if + end if + + 'Alarming + if CBool(isAlmEnabled) Then + 'call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,almPriorityParam),oShape) + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + End If + + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + + + If flag = 0 then + + 'We do not want shape to reload it self when Value changes, the changes will affect in next update + oShape.autoReloadContent=false + + 'Check for bad value + If not(CBool(isDataBad)) Then + + ' get the deadband, filter, PVRefVal and the last RefTime + filterVal = Cdbl(oShape.GetCustomProperty("Value","Filter")) + diff_old = oShape.GetCustomProperty("Value","Diff_Old") + modChange = Cdbl(oShape.GetCustomProperty("Value","ModerateChange")) + sigChange = Cdbl(oShape.GetCustomProperty("Value","SignificantChange")) + RangeMax = Cdbl(oShape.GetCustomProperty("Value","RangeMax")) + RangeMin = Cdbl(oShape.GetCustomProperty("Value","RangeMin")) + + dim diff_cur, deviation, pvVal, diff_prev + pvVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + + + 'Calculate PVDeviation + diff_cur = ((pvVal - pvRefVal)/(RangeMax - RangeMin)) * 100.0 + diff_Filtered = diff_cur + (diff_old-diff_cur)*filterVal + diff_old = diff_filtered + oShape.SetCustomProperty "Value","Diff_Old", diff_old + + 'Set ButterFlies + if diff_Filtered > sigChange then + oShape.objects("ind_OPDevBarRight").value = 100 + oShape.objects("ind_OPDevBarLeft").value = 0 + elseif diff_Filtered > modChange then + oShape.objects("ind_OPDevBarRight").value = 50 + oShape.objects("ind_OPDevBarLeft").value = 0 + elseif diff_Filtered < (-1.0*sigChange) then + oShape.objects("ind_OPDevBarRight").value = 0 + oShape.objects("ind_OPDevBarLeft").value = -100 + elseif diff_Filtered < (-1.0*modChange) then + oShape.objects("ind_OPDevBarRight").value = 0 + oShape.objects("ind_OPDevBarLeft").value = -50 + else + oShape.objects("ind_OPDevBarRight").value = 0 + oShape.objects("ind_OPDevBarLeft").value = 0 + end if + end if + end if + +'gsh_log_e("GSH_Quality_L1Deviation_FR_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_Quality_L1Deviation_FR_ONUPDATE",oShape) + end if + +end sub + + +sub GSH_Quality_L1Deviation_Hi_ONUPDATE(oShape, flag, isAlmEnabled, almPriorityParam, isOffNormal, isDataBad, pvRefVal) +'gsh_log_s("GSH_Quality_L1Deviation_Hi_ONUPDATE oShape="&oShape.id) +On Error Resume Next + + + If flag <=1 then + + call GSH_SHOWNOALARM(oShape) + oShape.objects("focus").style.visibility = GSH_HIDDEN + call GSH_SETSHAPEFOCUS(oShape) + + + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show analog value and outline + oShape.objects("plg_RightCover").fillcolor = rgb(255,232,180)'GSH_CSSFOCUSASSOCIATED + else + oShape.objects("plg_RightCover").fillcolor = rgb(235,235,235)'GSH_CSSBACKGROUND_GRAY + end if + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if CBool(isOffNormal) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + oShape.objects("plg_RightCover").fillcolor = rgb(235,235,235)'GSH_CSSBACKGROUND_GRAY + end if + end if + + 'Alarming + if CBool(isAlmEnabled) Then + 'call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,almPriorityParam),oShape) + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + End If + + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + End if + + If flag = 0 then + + 'We do not want shape to reload it self when Value changes, the changes will affect in next update + oShape.autoReloadContent=false + + 'Check for bad value + If not(CBool(isDataBad)) Then + + + ' get the deadband, filter, PVRefVal and the last RefTime + filterVal = Cdbl(oShape.GetCustomProperty("Value","Filter")) + diff_old = oShape.GetCustomProperty("Value","Diff_Old") + modChange = Cdbl(oShape.GetCustomProperty("Value","ModerateChange")) + sigChange = Cdbl(oShape.GetCustomProperty("Value","SignificantChange")) + RangeMax = Cdbl(oShape.GetCustomProperty("Value","RangeMax")) + RangeMin = Cdbl(oShape.GetCustomProperty("Value","RangeMin")) + + dim diff_cur, deviation, pvVal, diff_prev + pvVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + + + 'Calculate PVDeviation + diff_cur = ((pvVal - pvRefVal)/(RangeMax - RangeMin)) * 100.0 + diff_Filtered = diff_cur + (diff_old-diff_cur)*filterVal + diff_old = diff_filtered + oShape.SetCustomProperty "Value","Diff_Old", diff_old + + 'Set ButterFlies + if diff_Filtered > sigChange then + oShape.objects("ind_OPDevBarRight").value = 100 + elseif diff_Filtered > modChange then + oShape.objects("ind_OPDevBarRight").value = 50 + else + oShape.objects("ind_OPDevBarRight").value = 0 + end if + end if + end if + +'gsh_log_e("GSH_Quality_L1Deviation_Hi_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_Quality_L1Deviation_Hi_ONUPDATE",oShape) + end if +end sub + + +sub GSH_Quality_L1Deviation_Lo_ONUPDATE(oShape, flag, isAlmEnabled, almPriorityParam, isOffNormal, isDataBad, pvRefVal) +'gsh_log_s("GSH_Quality_L1Deviation_Lo_ONUPDATE oShape="&oShape.id) +On Error Resume Next + + If flag <=1 then + call GSH_SHOWNOALARM(oShape) + oShape.objects("focus").style.visibility = GSH_HIDDEN + call GSH_SETSHAPEFOCUS(oShape) + + if (not(oShape.objects("focus").styleClass = GSH_CSSFOCUSNONE)) then + 'some type of focus is occuring, must show analog value and outline + oShape.objects("plg_LeftCover").fillcolor = rgb(255,232,180)'GSH_CSSFOCUSASSOCIATED + else + oShape.objects("plg_LeftCover").fillcolor = rgb(235,235,235)'GSH_CSSBACKGROUND_GRAY + end if + + if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then + if CBool(isOffNormal) then + oShape.objects("focus").styleClass = GSH_CSSFOCUSNONEOFFNORMAL + oShape.objects("plg_LeftCover").fillcolor = rgb(235,235,235)'GSH_CSSBACKGROUND_GRAY + end if + end if + + + 'Alarming + if CBool(isAlmEnabled) Then + 'call GSH_SHOWPOINTALARMS(GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,almPriorityParam),oShape) + call GSH_SHOWPOINTALARMS(GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")),oShape) + else + oShape.objects("outline").styleClass = GSH_CSS_ALARMDISABLED + End If + oShape.objects("outline").fillstyle = GSH_FILLTRANSPARENT + End if + + If flag = 0 then + + 'We do not want shape to reload it self when Value changes, the changes will affect in next update + oShape.autoReloadContent=false + + 'Check for bad value + If not(CBool(isDataBad)) Then + + Dim iPV + iPV = oShape.objects("rec_DataScript").DataValue(GSH_CPENTITY & "." & GSH_CPPARAM_PV) + + ' get the deadband, filter, PVRefVal and the last RefTime + filterVal = Cdbl(oShape.GetCustomProperty("Value","Filter")) + diff_old = oShape.GetCustomProperty("Value","Diff_Old") + modChange = Cdbl(oShape.GetCustomProperty("Value","ModerateChange")) + sigChange = Cdbl(oShape.GetCustomProperty("Value","SignificantChange")) + RangeMax = Cdbl(oShape.GetCustomProperty("Value","RangeMax")) + RangeMin = Cdbl(oShape.GetCustomProperty("Value","RangeMin")) + + dim diff_cur, deviation, pvVal, diff_prev + pvVal = GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV) + + + if(StrComp(pvVal,GSH_BADPV_TEXT, vbtextcompare)=0) then + exit sub + end if + + 'Calculate PVDeviation + diff_cur = ((pvVal - pvRefVal)/(RangeMax - RangeMin)) * 100.0 + diff_Filtered = diff_cur + (diff_old-diff_cur)*filterVal + diff_old = diff_filtered + oShape.SetCustomProperty "Value","Diff_Old", diff_old + + 'Set ButterFlies + if diff_Filtered < (-1.0*sigChange) then + oShape.objects("ind_OPDevBarLeft").value = -100 + elseif diff_Filtered < (-1.0*modChange) then + oShape.objects("ind_OPDevBarLeft").value = -50 + else + oShape.objects("ind_OPDevBarLeft").value = 0 + end if + end if + end if + +'gsh_log_e("GSH_Quality_L1Deviation_Lo_ONUPDATE") + + if Err then + call GSH_SHAPE_ERROR_HANDLING("GSH_Quality_L1Deviation_Lo_ONUPDATE",oShape) + end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_LevelRegCtl_L1Gauge_FR_OnUpdate_new Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_LevelRegCtl_L1Gauge_FR_OnUpdate_new(oShape, flag, isAlmEnabled, almPriorityParam, isOffNormal, isDataBad) +'gsh_log_s("GSH_LevelRegCtl_L1Gauge_FR_OnUpdate_new oShape="&oShape.id &" isOffNormal = " &isOffNormal) +On Error Resume Next + + Dim sAlarmCode, bInSA + + call GSH_LevelIndicatorRegulatoryControlShowNormal(oShape) + + 'sAlarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,almPriorityParam) + sAlarmCode = GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")) + + If flag <= 1 then +' call GSH_SALevelIndicatorRegulatoryControlShowNormal(oShape) + + 'Check the points alarming + if CBool(isAlmEnabled) Then + call GSH_SHOWLEVELALARMS(sAlarmCode,oShape) + else + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + end if + + 'Check Focus + call GSH_LevelRegCtl_SAGauge_SetFocus(oShape, isOffNormal) + + 'Set Alarm Lines + Dim rRangeHi, rRangeLo + + rRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + rRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) + + shapeTagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + If flag = 0 Then + call GSH_C200_SetAlarmLinesVertical_new(oShape, rRangeHi, rRangeLo, 4, shapeTagName) + End If + + 'Set SA Bars Limit + Dim iSAHi, iSALo + iSAHi = FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSAUPPERLIMIT, GSH_CPVALUE)) + iSALo = FormatNumber(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSALOWERLIMIT, GSH_CPVALUE)) + call GSH_LevelIndicatorShowSALimits(oShape, iSAHi, iSALo) + + 'Check for bad value + If CBool(isDataBad) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + Dim iPV, iSP, iPVFormat, iPVFormated + + iPV = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + iSP = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"), GSH_CPPARAM_SP)) + 'Locate PV Float + call GSH_SetObjectLocation_Vertical(oShape.objects("linePVRange"), oShape.objects("rec_IndicatorFloat"), iPV, rRangeHi, rRangeLo) + + 'Locate SP Float + call GSH_SetObjectLocation_Vertical(oShape.objects("linePVRange"), oShape.objects("plg_SPIndicator"), iSP, rRangeHi, rRangeLo) + +' shapeTagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + iPVFormat = right(GSH_READTAGINFORMATIONKEYVALUE(shapeTagName,GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1) + iPVFormated = FormatNumber(iPV, iPVFormat) + oShape.objects("txt_PVvalue").value = iPVFormated + + bInSA = GSH_IsShapeInSA(iPV, iSAHi, iSALo) + if (bInSA) then + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + else + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + end if + + 'Set Recent PV range bar + call GSH_LevelRegCtl_SAGauge_SetPVRangeBar(oShape, iPV) + End If + oShape.objects("txt_mode").value = Left(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_MODE), 1) + call GSH_LevelRegCtl_SAGauge_ShowHideComponents(oShape, sAlarmCode, bInSA, isOffNormal) + End If +'gsh_log_e("GSH_LevelRegCtl_L1Gauge_FR_OnUpdate_new") + if Err then +' call GSH_SHAPE_ERROR_HANDLING("GSH_LevelRegCtl_L1Gauge_FR_OnUpdate_new",oShape) + end if +end sub + +sub GSH_C200_SetAlarmLinesVertical_new(oShape, rRangeHi, rRangeLo, n, shapeTagName) +On Error Resume Next +'gsh_log_s("GSH_C200_SetAlarmLinesVertical_new oShape="&oShape.id) + dim alarmlim, alarmPri + alarmlim = 0: alarmPri = 0 + for i = 1 to n + temp = "AlarmPriority" & i + temp1 = "AlarmLimit" & i +' alarmPri = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"CP_AlarmPriority" & i)) + alarmPri = CDbl(GSH_READTAGINFORMATIONKEYVALUE(shapeTagName,temp, 0)) + if (alarmPri > 0) and (alarmPri <=4) then + if not(oShape.objects("rec_DataScript").IsNan(GSH_CPENTITY & ".CP_AlarmLimit" & i)) then + oShape.objects("LineAlarm"&i).style.visibility = GSH_VISIBLE + alarmlim = CDbl(GSH_READTAGINFORMATIONKEYVALUE(shapeTagName,temp1, 0)) +' alarmlim = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"CP_AlarmLimit" & i)) + call GSH_SetObjectLocation_Vertical(oShape.objects("linePVRange"), oShape.objects("LineAlarm"&i), alarmlim, rRangeHi, rRangeLo) + else + oShape.objects("LineAlarm"&i).style.visibility = GSH_HIDDEN + end if + else + oShape.objects("LineAlarm"&i).style.visibility = GSH_HIDDEN + end if + next +'gsh_log_e("GSH_C200_SetAlarmLinesVertical_new") + if Err then +' call GSH_SHAPE_ERROR_HANDLING("GSH_C200_SetAlarmLinesVertical_new",oShape) + end if +end sub + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +'GSH_QualityAnalog_L1Gauge_FR_OnUpdate_new Shape Section +'Parameters: oShape = Shape object +' flag = 0 -> do everything +' flag = 1 -> do focus only to increase performance +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +sub GSH_QualityAnalog_L1Gauge_FR_OnUpdate_new(oShape, flag, isAlmEnabled, almPriorityParam, isOffNormal, isDataBad) +'gsh_log_s("GSH_TPS_QualityAnalog_L1Gauge_FR_OnUpdate oShape="&oShape.id) +On Error Resume Next + + dim sAlarmCode, bInSA + bInSA = false + 'sAlarmCode = GSH_GEN_GETHIGHESTALARMPRIORITYPARAMETER(oShape.objects("rec_DataScript"),GSH_CPENTITY,almPriorityParam) + sAlarmCode = GSH_GETHIGHESTALARMPRIORITYPROPERTY(oShape.objects("alarmNum")) + call GSH_LevelIndicatorShowNormal(oShape) + + 'Check the points alarming + if CBool(isAlmEnabled) Then + call GSH_SHOWLEVELALARMS(sAlarmCode,oShape) + else + call GSH_LevelIndicatorRegulatoryControlShowDisabledAlarm(oShape) + End If + + + 'Check Focus + 'call GSH_LevelRegCtl_QualitySAGauge_SetFocus(oShape) + + call GSH_LevelRegCtl_SAGauge_SetFocus(oShape, isOffNormal) + +' if (oShape.objects("focus").styleClass <> GSH_CSSFOCUSPRINCIPAL) then +' if CBool(isOffNormal) then +' call GSH_LevelIndicatorSHOWOFFNORMAL(oShape) +' end if +' end if + + Dim rRangeHi, rRangeLo + rRangeHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMAX, GSH_CPVALUE)) + rRangeLo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPRANGEMIN, GSH_CPVALUE)) + + shapeTagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + If flag = 0 Then + 'Set Alarm Lines + call GSH_C200_SetAlarmLinesHorizontal_new(oShape, rRangeHi, rRangeLo, 4, shapeTagName) + End If + + 'Set SA Bars Limit + Dim rSAHi, rSALo + rSAHi = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSAUPPERLIMIT, GSH_CPVALUE)) + rSALo = CDbl(GSH_GETSHAPE_CUSTOM_PROPERTY(oShape,GSH_CPSALOWERLIMIT, GSH_CPVALUE)) + + 'gsh_log("rSAHi = " &rSAHi & " rSALo = " &rSALo) + 'call GSH_QualitySAGauge_ShowSALimits(oShape, rSAHi, rSALo) + call GSH_SetObjectLocationAndWidth_Horizontal(oShape.objects("linePVRange"), oShape.objects("rec_SALow"), rSALo, rRangeLo, rRangeHi, rRangeLo) + call GSH_SetObjectLocationAndWidth_Horizontal(oShape.objects("linePVRange"), oShape.objects("rec_SAHigh"), rRangeHi, rSAHi, rRangeHi, rRangeLo) + + 'Check for bad value + If CBool(isDataBad) Then + call GSH_LevelIndicatorShowBadPV(oShape) + Else + Dim rPV, rPVFormat, rPVFormated + rPV = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),GSH_CPPARAM_PV)) + shapeTagName = oShape.GetCustomProperty(GSH_CPPOINT,GSH_CPENTITY) + rPVFormat = right(GSH_READTAGINFORMATIONKEYVALUE(shapeTagName,GSH_PVFORMATKEY, GSH_DEFAULTPVFORMAT),1) + rPVFormated = FormatNumber(rPV, rPVFormat) + oShape.objects("txt_PVvalue").value = rPVFormated + + call GSH_SetObjectLocation_Horizontal(oShape.objects("linePVRange"), oShape.objects("rec_IndicatorFloat"), rPV, rRangeHi, rRangeLo) + 'call GSH_LevelRegCtl_SAGauge_InSA(oShape, rPV, rSAHi, rSALo) + + bInSA = GSH_IsShapeInSA(iPV, iSAHi, iSALo) + if (bInSA) then + oShape.objects("rec_SAFrame").style.visibility = GSH_VISIBLE + else + oShape.objects("rec_SAFrame").style.visibility = GSH_HIDDEN + end if + End If + call GSH_QualityAnalog_SAGauge_ShowHideComponents(oShape, sAlarmCode, bInSA, isOffNormal) +'gsh_log_e("GSH_QualityAnalog_L1Gauge_FR_OnUpdate_new") + + if Err then +' call GSH_SHAPE_ERROR_HANDLING("GSH_QualityAnalog_L1Gauge_FR_OnUpdate_new",oShape) + end if +end sub + +' +'oShape: the HCS shape +'n: total number of alarm limit lines to show +sub GSH_C200_SetAlarmLinesHorizontal_new(oShape, iRangeHi, iRangeLo, n, shapeTagName) +'gsh_log_s("GSH_C200_SetAlarmLinesHorizontal_new ="&oShape.id) + dim alarmlim, alarmPri + alarmlim = 0: alarmPri = 0 + + for i = 1 to n + temp = "AlarmPriority" & i + temp1 = "AlarmLimit" & i + alarmPri = CDbl(GSH_READTAGINFORMATIONKEYVALUE(shapeTagName,temp, 0)) +' alarmPri = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"CP_AlarmPriority" & i)) +' gsh_log_e("GSH_C200_SetAlarmLinesHorizontal_new temp alarmPri = ", alarmPri) + + if (alarmPri > 0) and (alarmPri <=4) then + + if not(oShape.objects("rec_DataScript").IsNan(GSH_CPENTITY & ".CP_AlarmLimit" & i)) then +' alarmlim = CDbl(GSH_GETENTITYPARAMETERVALUE(oShape.objects("rec_DataScript"),"CP_AlarmLimit" & i)) + alarmlim = CDbl(GSH_READTAGINFORMATIONKEYVALUE(shapeTagName,temp1, 0)) + oShape.objects("LineAlarm"&i).style.visibility = GSH_VISIBLE + call GSH_SetObjectLocation_Horizontal(oShape.objects("linePVRange"), oShape.objects("LineAlarm"&i), alarmlim, iRangeHi, iRangeLo) + else + oShape.objects("LineAlarm"&i).style.visibility = GSH_HIDDEN + end if + else + oShape.objects("LineAlarm"&i).style.visibility = GSH_HIDDEN + end if + next +'gsh_log_e("GSH_C200_SetAlarmLinesHorizontal_new") +end sub + + + +'------------------------------- End L1 Common subroutines---------------------------------</SCRIPT>
+
+<SCRIPT language=VBScript event=onmousedown for=shape070_rec_DataScript defer>If (me.parentElement.parentElement.GetCustomProperty(GSH_CPVALUE,GSH_CPDISPLAYLEVEL) = 2) then + If window.event.button = 2 Then call GSH_TYPE2TABRBUTTONCLICK(me.parentElement.parentElement) else call GSH_NAVTAB_LCLICK (me.parentElement.parentElement) end if +Else + call GSH_NAVTAB_LCLICK (me.parentElement.parentElement) +End if</SCRIPT>
+
+<SCRIPT language=VBScript event=onmousedown for=p7_4900PC0176_rec_DataScript
+defer>If window.event.button = 2 Then + call GSH_RIGHTCLICK(me.parentElement.parentElement) +End If</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p7_4900PC0176_rec_DataScript defer> 'Set Tag of Shape in Display Communication Mailbox + call GSH_SHAPECLICKEDNOASSOCDISP(me.parentelement.parentelement)</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p7_4900PC0176_txt_ModeValue defer> p7_4900PC0176_rec_DataScript.click + p7_4900PC0176_alp_SPValue.style.visibility = GSH_HIDDEN + p7_4900PC0176_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p7_4900PC0176_cmb_ModeValue)</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p7_4900PC0176_cmb_ModeValue defer> call GSH_MULTIFPHIDEENTRY(me) + p7_4900PC0176_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p7_4900PC0176_txt_OPValue defer> p7_4900PC0176_rec_DataScript.click + if strcomp(p7_4900PC0176_cmb_ModeValue.value,GSH_ALLOWOPEDIT_MODE,vbtextcompare)=0 then + p7_4900PC0176_cmb_ModeValue.style.visibility = GSH_HIDDEN + p7_4900PC0176_alp_SPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p7_4900PC0176_alp_OPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p7_4900PC0176_txt_SPValue defer> p7_4900PC0176_rec_DataScript.click + if strcomp(p7_4900PC0176_cmb_ModeValue.value,GSH_ALLOWSPEDIT_MODE,vbtextcompare)=0 then + p7_4900PC0176_cmb_ModeValue.style.visibility = GSH_HIDDEN + p7_4900PC0176_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p7_4900PC0176_alp_SPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p7_4900PC0176_alp_SPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p7_4900PC0176_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p7_4900PC0176_alp_OPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p7_4900PC0176_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onshapeload for=p7_4900PC0176 defer>call GSH_SETTOOLTIP(me)</SCRIPT>
+
+<SCRIPT language=VBScript event=onmousedown for=p8_4900FI3006_rec_DataScript
+defer>If window.event.button = 2 Then + call GSH_RIGHTCLICK(me.parentElement.parentElement) +End If</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p8_4900FI3006_rec_DataScript defer> 'Set Tag of Shape in Display Communication Mailbox + call GSH_SHAPECLICKEDNOASSOCDISP(me.parentelement.parentelement)</SCRIPT>
+
+<SCRIPT language=VBScript event=onshapeload for=p8_4900FI3006 defer>call GSH_SETTOOLTIP(me)</SCRIPT>
+
+<SCRIPT language=VBScript event=onmousedown for=p9e_4900TC3301_rec_DataScript
+defer>If window.event.button = 2 Then + call GSH_RIGHTCLICK(me.parentElement.parentElement) +End If</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9e_4900TC3301_rec_DataScript defer> 'Set Tag of Shape in Display Communication Mailbox + call GSH_SHAPECLICKEDNOASSOCDISP(me.parentelement.parentelement)</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9e_4900TC3301_txt_ModeValue defer> p9e_4900TC3301_rec_DataScript.click + p9e_4900TC3301_alp_SPValue.style.visibility = GSH_HIDDEN + p9e_4900TC3301_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p9e_4900TC3301_cmb_ModeValue)</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p9e_4900TC3301_cmb_ModeValue defer> call GSH_MULTIFPHIDEENTRY(me) + p9e_4900TC3301_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9e_4900TC3301_txt_OPValue defer> p9e_4900TC3301_rec_DataScript.click + if strcomp(p9e_4900TC3301_cmb_ModeValue.value,GSH_ALLOWOPEDIT_MODE,vbtextcompare)=0 then + p9e_4900TC3301_cmb_ModeValue.style.visibility = GSH_HIDDEN + p9e_4900TC3301_alp_SPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p9e_4900TC3301_alp_OPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9e_4900TC3301_txt_SPValue defer> p9e_4900TC3301_rec_DataScript.click + if strcomp(p9e_4900TC3301_cmb_ModeValue.value,GSH_ALLOWSPEDIT_MODE,vbtextcompare)=0 then + p9e_4900TC3301_cmb_ModeValue.style.visibility = GSH_HIDDEN + p9e_4900TC3301_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p9e_4900TC3301_alp_SPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p9e_4900TC3301_alp_SPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p9e_4900TC3301_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p9e_4900TC3301_alp_OPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p9e_4900TC3301_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onshapeload for=p9e_4900TC3301 defer>call GSH_SETTOOLTIP(me)</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p5_4900FY0212_rec_DataScript defer> 'Set Tag of Shape in Display Communication Mailbox + call GSH_SHAPECLICKEDNOASSOCDISP(me.parentelement.parentelement)</SCRIPT>
+
+<SCRIPT language=VBScript event=onmousedown for=p5_4900FY0212_rec_DataScript
+defer>If window.event.button = 2 Then + call GSH_RIGHTCLICK(me.parentElement.parentElement) +End If</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p5_4900FY0212_alp_OPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p5_4900FY0212_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p5_4900FY0212_txt_OPValue defer> p5_4900FY0212_rec_DataScript.click + 'Check Mode = MAN to allow OP modifiable + if strcomp(p5_4900FY0212_cmb_ModeValue.value,GSH_ALLOWOPEDIT_MODE,vbtextcompare)=0 then + me.parentElement.parentElement.objects("p5_4900FY0212_cmb_ModeValue").style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY (p5_4900FY0212_alp_OPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p5_4900FY0212_txt_ModeValue defer> p5_4900FY0212_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p5_4900FY0212_cmb_ModeValue)</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p5_4900FY0212_cmb_ModeValue defer> call GSH_MULTIFPHIDEENTRY(me) + p5_4900FY0212_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onshapeload for=p5_4900FY0212 defer>call GSH_SETTOOLTIP(me)</SCRIPT>
+
+<SCRIPT language=VBScript event=onmousedown for=p1_4900TC0145_rec_DataScript
+defer>If window.event.button = 2 Then + call GSH_RIGHTCLICK(me.parentElement.parentElement) +End If</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p1_4900TC0145_rec_DataScript defer> 'Set Tag of Shape in Display Communication Mailbox + call GSH_SHAPECLICKEDNOASSOCDISP(me.parentelement.parentelement)</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p1_4900TC0145_txt_ModeValue defer> p1_4900TC0145_rec_DataScript.click + p1_4900TC0145_alp_SPValue.style.visibility = GSH_HIDDEN + p1_4900TC0145_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p1_4900TC0145_cmb_ModeValue)</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p1_4900TC0145_cmb_ModeValue defer> call GSH_MULTIFPHIDEENTRY(me) + p1_4900TC0145_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p1_4900TC0145_txt_OPValue defer> p1_4900TC0145_rec_DataScript.click + if strcomp(p1_4900TC0145_cmb_ModeValue.value,GSH_ALLOWOPEDIT_MODE,vbtextcompare)=0 then + p1_4900TC0145_cmb_ModeValue.style.visibility = GSH_HIDDEN + p1_4900TC0145_alp_SPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p1_4900TC0145_alp_OPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p1_4900TC0145_txt_SPValue defer> p1_4900TC0145_rec_DataScript.click + if strcomp(p1_4900TC0145_cmb_ModeValue.value,GSH_ALLOWSPEDIT_MODE,vbtextcompare)=0 then + p1_4900TC0145_cmb_ModeValue.style.visibility = GSH_HIDDEN + p1_4900TC0145_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p1_4900TC0145_alp_SPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p1_4900TC0145_alp_SPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p1_4900TC0145_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p1_4900TC0145_alp_OPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p1_4900TC0145_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onshapeload for=p1_4900TC0145 defer>call GSH_SETTOOLTIP(me)</SCRIPT>
+
+<SCRIPT language=VBScript event=onmousedown for=p2_4900TC0074_rec_DataScript
+defer>If window.event.button = 2 Then + call GSH_RIGHTCLICK(me.parentElement.parentElement) +End If</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p2_4900TC0074_rec_DataScript defer> 'Set Tag of Shape in Display Communication Mailbox + call GSH_SHAPECLICKEDNOASSOCDISP(me.parentelement.parentelement)</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p2_4900TC0074_txt_ModeValue defer> p2_4900TC0074_rec_DataScript.click + p2_4900TC0074_alp_SPValue.style.visibility = GSH_HIDDEN + p2_4900TC0074_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p2_4900TC0074_cmb_ModeValue)</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p2_4900TC0074_cmb_ModeValue defer> call GSH_MULTIFPHIDEENTRY(me) + p2_4900TC0074_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p2_4900TC0074_txt_OPValue defer> p2_4900TC0074_rec_DataScript.click + if strcomp(p2_4900TC0074_cmb_ModeValue.value,GSH_ALLOWOPEDIT_MODE,vbtextcompare)=0 then + p2_4900TC0074_cmb_ModeValue.style.visibility = GSH_HIDDEN + p2_4900TC0074_alp_SPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p2_4900TC0074_alp_OPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p2_4900TC0074_txt_SPValue defer> p2_4900TC0074_rec_DataScript.click + if strcomp(p2_4900TC0074_cmb_ModeValue.value,GSH_ALLOWSPEDIT_MODE,vbtextcompare)=0 then + p2_4900TC0074_cmb_ModeValue.style.visibility = GSH_HIDDEN + p2_4900TC0074_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p2_4900TC0074_alp_SPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p2_4900TC0074_alp_SPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p2_4900TC0074_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p2_4900TC0074_alp_OPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p2_4900TC0074_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onshapeload for=p2_4900TC0074 defer>call GSH_SETTOOLTIP(me)</SCRIPT>
+
+<SCRIPT language=VBScript event=onmousedown for=p3_4900FC0212_rec_DataScript
+defer>If window.event.button = 2 Then + call GSH_RIGHTCLICK(me.parentElement.parentElement) +End If</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p3_4900FC0212_rec_DataScript defer> 'Set Tag of Shape in Display Communication Mailbox + call GSH_SHAPECLICKEDNOASSOCDISP(me.parentelement.parentelement)</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p3_4900FC0212_txt_ModeValue defer> p3_4900FC0212_rec_DataScript.click + p3_4900FC0212_alp_SPValue.style.visibility = GSH_HIDDEN + p3_4900FC0212_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p3_4900FC0212_cmb_ModeValue)</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p3_4900FC0212_cmb_ModeValue defer> call GSH_MULTIFPHIDEENTRY(me) + p3_4900FC0212_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p3_4900FC0212_txt_OPValue defer> p3_4900FC0212_rec_DataScript.click + if strcomp(p3_4900FC0212_cmb_ModeValue.value,GSH_ALLOWOPEDIT_MODE,vbtextcompare)=0 then + p3_4900FC0212_cmb_ModeValue.style.visibility = GSH_HIDDEN + p3_4900FC0212_alp_SPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p3_4900FC0212_alp_OPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p3_4900FC0212_txt_SPValue defer> p3_4900FC0212_rec_DataScript.click + if strcomp(p3_4900FC0212_cmb_ModeValue.value,GSH_ALLOWSPEDIT_MODE,vbtextcompare)=0 then + p3_4900FC0212_cmb_ModeValue.style.visibility = GSH_HIDDEN + p3_4900FC0212_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p3_4900FC0212_alp_SPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p3_4900FC0212_alp_SPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p3_4900FC0212_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p3_4900FC0212_alp_OPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p3_4900FC0212_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onshapeload for=p3_4900FC0212 defer>call GSH_SETTOOLTIP(me)</SCRIPT>
+
+<SCRIPT language=VBScript event=onmousedown for=p4_4900PC0216_rec_DataScript
+defer>If window.event.button = 2 Then + call GSH_RIGHTCLICK(me.parentElement.parentElement) +End If</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p4_4900PC0216_rec_DataScript defer> 'Set Tag of Shape in Display Communication Mailbox + call GSH_SHAPECLICKEDNOASSOCDISP(me.parentelement.parentelement)</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p4_4900PC0216_txt_ModeValue defer> p4_4900PC0216_rec_DataScript.click + p4_4900PC0216_alp_SPValue.style.visibility = GSH_HIDDEN + p4_4900PC0216_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p4_4900PC0216_cmb_ModeValue)</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p4_4900PC0216_cmb_ModeValue defer> call GSH_MULTIFPHIDEENTRY(me) + p4_4900PC0216_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p4_4900PC0216_txt_OPValue defer> p4_4900PC0216_rec_DataScript.click + if strcomp(p4_4900PC0216_cmb_ModeValue.value,GSH_ALLOWOPEDIT_MODE,vbtextcompare)=0 then + p4_4900PC0216_cmb_ModeValue.style.visibility = GSH_HIDDEN + p4_4900PC0216_alp_SPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p4_4900PC0216_alp_OPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p4_4900PC0216_txt_SPValue defer> p4_4900PC0216_rec_DataScript.click + if strcomp(p4_4900PC0216_cmb_ModeValue.value,GSH_ALLOWSPEDIT_MODE,vbtextcompare)=0 then + p4_4900PC0216_cmb_ModeValue.style.visibility = GSH_HIDDEN + p4_4900PC0216_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p4_4900PC0216_alp_SPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p4_4900PC0216_alp_SPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p4_4900PC0216_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p4_4900PC0216_alp_OPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p4_4900PC0216_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onshapeload for=p4_4900PC0216 defer>call GSH_SETTOOLTIP(me)</SCRIPT>
+
+<SCRIPT language=VBScript event=onmousedown for=p9_4900FFI3104_rec_DataScript
+defer>If window.event.button = 2 Then + call GSH_RIGHTCLICK(me.parentElement.parentElement) +End If</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9_4900FFI3104_rec_DataScript defer> 'Set Tag of Shape in Display Communication Mailbox + call GSH_SHAPECLICKEDNOASSOCDISP(me.parentelement.parentelement)</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9_4900FFI3104_txt_ModeValue defer> p9_4900FFI3104_rec_DataScript.click + p9_4900FFI3104_alp_SPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p9_4900FFI3104_cmb_ModeValue)</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p9_4900FFI3104_cmb_ModeValue defer> call GSH_MULTIFPHIDEENTRY(me) + p9_4900FFI3104_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9_4900FFI3104_txt_SPValue defer> p9_4900FFI3104_rec_DataScript.click + if strcomp(p9_4900FFI3104_cmb_ModeValue.value,GSH_ALLOWSPEDIT_MODE,vbtextcompare)=0 then + p9_4900FFI3104_cmb_ModeValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p9_4900FFI3104_alp_SPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p9_4900FFI3104_alp_SPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p9_4900FFI3104_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onshapeload for=p9_4900FFI3104 defer>call GSH_SETTOOLTIP(me)</SCRIPT>
+
+<SCRIPT language=VBScript event=onmousedown for=p9a_4900FC3104_rec_DataScript
+defer>If window.event.button = 2 Then + call GSH_RIGHTCLICK(me.parentElement.parentElement) +End If</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9a_4900FC3104_rec_DataScript defer> 'Set Tag of Shape in Display Communication Mailbox + call GSH_SHAPECLICKEDNOASSOCDISP(me.parentelement.parentelement)</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9a_4900FC3104_txt_ModeValue defer> p9a_4900FC3104_rec_DataScript.click + p9a_4900FC3104_alp_SPValue.style.visibility = GSH_HIDDEN + p9a_4900FC3104_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p9a_4900FC3104_cmb_ModeValue)</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p9a_4900FC3104_cmb_ModeValue defer> call GSH_MULTIFPHIDEENTRY(me) + p9a_4900FC3104_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9a_4900FC3104_txt_OPValue defer> p9a_4900FC3104_rec_DataScript.click + if strcomp(p9a_4900FC3104_cmb_ModeValue.value,GSH_ALLOWOPEDIT_MODE,vbtextcompare)=0 then + p9a_4900FC3104_cmb_ModeValue.style.visibility = GSH_HIDDEN + p9a_4900FC3104_alp_SPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p9a_4900FC3104_alp_OPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9a_4900FC3104_txt_SPValue defer> p9a_4900FC3104_rec_DataScript.click + if strcomp(p9a_4900FC3104_cmb_ModeValue.value,GSH_ALLOWSPEDIT_MODE,vbtextcompare)=0 then + p9a_4900FC3104_cmb_ModeValue.style.visibility = GSH_HIDDEN + p9a_4900FC3104_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p9a_4900FC3104_alp_SPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p9a_4900FC3104_alp_SPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p9a_4900FC3104_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p9a_4900FC3104_alp_OPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p9a_4900FC3104_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onshapeload for=p9a_4900FC3104 defer>call GSH_SETTOOLTIP(me)</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9b_4900TY3301_rec_DataScript defer> 'Set Tag of Shape in Display Communication Mailbox + call GSH_SHAPECLICKEDNOASSOCDISP(me.parentelement.parentelement)</SCRIPT>
+
+<SCRIPT language=VBScript event=onmousedown for=p9b_4900TY3301_rec_DataScript
+defer>If window.event.button = 2 Then + call GSH_RIGHTCLICK(me.parentElement.parentElement) +End If</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p9b_4900TY3301_alp_OPValue defer> call GSH_MULTIFPHIDEENTRY(me) + p9b_4900TY3301_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9b_4900TY3301_txt_OPValue defer> p9b_4900TY3301_rec_DataScript.click + 'Check Mode = MAN to allow OP modifiable + if strcomp(p9b_4900TY3301_cmb_ModeValue.value,GSH_ALLOWOPEDIT_MODE,vbtextcompare)=0 then + me.parentElement.parentElement.objects("p9b_4900TY3301_cmb_ModeValue").style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY (p9b_4900TY3301_alp_OPValue) + end if</SCRIPT>
+
+<SCRIPT language=VBScript event=onclick for=p9b_4900TY3301_txt_ModeValue defer> p9b_4900TY3301_alp_OPValue.style.visibility = GSH_HIDDEN + call GSH_MULTIFPSHOWENTRY(p9b_4900TY3301_cmb_ModeValue)</SCRIPT>
+
+<SCRIPT language=VBScript event=onchange for=p9b_4900TY3301_cmb_ModeValue defer> call GSH_MULTIFPHIDEENTRY(me) + p9b_4900TY3301_rec_DataScript.click</SCRIPT>
+
+<SCRIPT language=VBScript event=onshapeload for=p9b_4900TY3301 defer>call GSH_SETTOOLTIP(me)</SCRIPT>
+
+<BODY
+style="FONT-SIZE: 12pt; MARGIN: 0px; OVERFLOW: auto; ZOOM: 1; BACKGROUND-COLOR: transparent">
+<DIV class=Background_Gray id=Background
+style="MARGIN: 0px; WIDTH: 1156px; BACKGROUND-REPEAT: no-repeat; ZOOM: 1; POSITION: absolute; HEIGHT: 550px; BACKGROUND-COLOR: rgb(235,235,235)"></DIV>
+<DIV class=Background_Gray id=Page
+style="FONT-SIZE: 12pt; MARGIN: 0px; BEHAVIOR: url(#StnEvtReflector) url(#HDXPageBehavior) url(#DisplayDataRepository); WIDTH: 665px; ZOOM: 1; FONT-FAMILY: Arial; POSITION: absolute; HEIGHT: 330px; BACKGROUND-COLOR: transparent">
+<DIV class=hsc.shape.1 id=shape071
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 83px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 82px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 1px; HEIGHT: 26px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:26;lineColorBlink:False;Width:82;"
+value = "1" src = ".\L4_LSG_FURN_1_files\GEN_NavigationTab.sha" parameters =
+"Point?Entity:L4_LSG_FURN_2_AA;Value?DisplayName:L4_LSG_FURN_2;Value?DisplayLevel:4;Value?TabLabel:Redund;Value?AssocLevel4:;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=shape071_grp_NavTab
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:26;lineColorBlink:False;Width:82;">
+<DIV class="hvg.base.1 " id=shape071_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 98.78%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 7.69%; HEIGHT: 84.61%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:#ebebeb;fillColorBlink:False;FillStyle:0;Height:22;LineColor:#939393;lineColorBlink:False;LineWidth:1;Roundness:50;styleClass:;Width:81;"></DIV>
+<DIV class="hvg.base.1 " id=shape071_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 2.43%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 93.9%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 15.38%; HEIGHT: 73.07%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:#ebebeb;fillColorBlink:False;FillStyle:0;Height:19;LineColor:#ebebeb;lineColorBlink:False;LineStyle:1;LineWidth:2;Roundness:40;styleClass:;Width:77;"></DIV>
+<DIV class=hvg.base.1 id=shape071_rec_HideTabBtm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 100%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 76.92%; HEIGHT: 23.07%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:#ebebeb;fillColorBlink:False;Height:6;LineColor:#ebebeb;lineColorBlink:False;LineStyle:1;LineWidth:2;Width:82;"></DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=shape071_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.21%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 19.51%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 7.69%; HEIGHT: 61.53%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=shape071_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 4.87%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 14.63%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.53%; HEIGHT: 46.15%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=shape071_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 4.87%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 14.63%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 15.38%; HEIGHT: 46.15%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=shape071_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 6.09%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.41%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.53%; HEIGHT: 46.15%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=shape071_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 4.87%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 14.63%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 15.38%; HEIGHT: 46.15%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=shape071_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 6.09%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 14.63%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.53%; HEIGHT: 46.15%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class=hvg.textbox.1 id=shape071_txtTabLabel
+style="FONT-WEIGHT: normal; FONT-SIZE: 11pt; LEFT: 21.95%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 73.17%; COLOR: #000000; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 7.69%; HEIGHT: 65.38%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;HDXBINDINGID:21;Height:17;indicateAlarmState:False;indicateScanState:False;lineColorBlink:False;LineStyle:0;textColor:#000000;textColorBlink:False;TotalRotation:0;Width:60;">Redund</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=shape071_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.78%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 84.61%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:22;Height:22;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:81;"
+onupdate="VBScript:call GSH_NAVTAB_ONUPDATE(me.parentElement.parentElement)"></DIV></DIV></DIV>
+<DIV class=hsc.shape.1 id=shape001
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 616px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 40px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 308px; HEIGHT: 19px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:0;lineColorBlink:False;Width:0;"
+value = "1" src = ".\L4_LSG_FURN_1_files\gsh.sha" parameters = "" linkType =
+"embedded" globalscripts =
+"2A03E0C4-741C-4145-A5C0-BE506EDF0681 4B605EA5-055E-4956-B67E-DE5BE60D4CCC 50F477B2-C5AC-4758-A02E-EB39E352D363 9AD748A9-63A3-4F20-B029-8144F6FB00EA A188CC3F-37F3-4431-8CA1-740C5D627030"
+styleClass = "">
+<DIV class="hvg.textbox.1 GSH_Style" id=shape001_textbox001
+style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 100%; COLOR: #000000; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 100%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:19;lineColorBlink:False;LineStyle:0;styleClass:GSH_Style;textColor:#000000;textColorBlink:False;TotalRotation:0;Width:40;">GSH</DIV></DIV>
+<DIV class=hvg.base.1 id=line002
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 2px; BEHAVIOR: url(#HDXVectorFactory#line); OVERFLOW: hidden; WIDTH: 180px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 19px; HEIGHT: 1px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:1;LineColor:#b4b4b4;lineColorBlink:False;points:0 0 100 0 ;Width:180;"></DIV>
+<DIV class=hsc.shape.1 id=shape070
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 0px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 82px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 7px; HEIGHT: 26px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:26;lineColorBlink:False;Width:82;"
+value = "1" src = ".\L4_LSG_FURN_1_files\GEN_NavigationTab.sha" parameters =
+"Point?Entity:L4_LSG_FURN_1_AA;Value?DisplayName:L4_LSG_FURN_1;Value?DisplayLevel:4;Value?TabLabel:Furn;Value?AssocLevel4:;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=shape070_grp_NavTab
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:26;lineColorBlink:False;Width:82;">
+<DIV class="hvg.base.1 " id=shape070_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 98.78%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 7.69%; HEIGHT: 84.61%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:#ebebeb;fillColorBlink:False;FillStyle:0;Height:22;LineColor:#939393;lineColorBlink:False;LineWidth:1;Roundness:50;styleClass:;Width:81;"></DIV>
+<DIV class="hvg.base.1 " id=shape070_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 2.43%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 93.9%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 15.38%; HEIGHT: 73.07%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:#ebebeb;fillColorBlink:False;FillStyle:0;Height:19;LineColor:#ebebeb;lineColorBlink:False;LineStyle:1;LineWidth:2;Roundness:40;styleClass:;Width:77;"></DIV>
+<DIV class=hvg.base.1 id=shape070_rec_HideTabBtm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 100%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 76.92%; HEIGHT: 23.07%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:#ebebeb;fillColorBlink:False;Height:6;LineColor:#ebebeb;lineColorBlink:False;LineStyle:1;LineWidth:2;Width:82;"></DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=shape070_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.21%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 19.51%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 7.69%; HEIGHT: 61.53%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=shape070_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 4.87%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 14.63%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.53%; HEIGHT: 46.15%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=shape070_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 4.87%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 14.63%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 15.38%; HEIGHT: 46.15%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=shape070_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 6.09%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.41%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.53%; HEIGHT: 46.15%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=shape070_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 4.87%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 14.63%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 15.38%; HEIGHT: 46.15%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=shape070_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 6.09%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 14.63%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.53%; HEIGHT: 46.15%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class=hvg.textbox.1 id=shape070_txtTabLabel
+style="FONT-WEIGHT: normal; FONT-SIZE: 11pt; LEFT: 21.95%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 73.17%; COLOR: #000000; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 7.69%; HEIGHT: 65.38%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;HDXBINDINGID:0;Height:17;indicateAlarmState:False;indicateScanState:False;lineColorBlink:False;LineStyle:0;textColor:#000000;textColorBlink:False;TotalRotation:0;Width:60;">Furn</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=shape070_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.78%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 84.61%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:1;Height:22;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:81;"
+onupdate="VBScript:call GSH_NAVTAB_ONUPDATE(me.parentElement.parentElement)"></DIV></DIV></DIV>
+<DIV class=hsc.shape.1 id=p7_4900PC0176
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 551px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 92px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28px; HEIGHT: 152px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:0;lineColorBlink:False;Width:0;"
+value = "1" src = ".\L4_LSG_FURN_1_files\C200_MF_RegCtl.sha" parameters =
+"Point?Entity:4900PC0176;Parameter?CP_SP:PIDA.SP;Parameter?CP_PV:PIDA.PV;Parameter?CP_OP:PIDA.OP;Parameter?CP_Mode:PIDA.MODE;Parameter?CP_BadPV:PIDA.PVSTSFL.BAD;Parameter?CP_OffNormal:DACA.PVSOURCE;Parameter?CP_ModAttr:PIDA.MODEATTR;Parameter?CP_Ramp:PIDA.SPTVSTATE;Parameter?CP_RedTag:PIDA.REDTAG;Parameter?CP_Windup:PIDA.ARWOP;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=p7_4900PC0176_grpRegCtl
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;">
+<DIV class=hsc.alarmstate.1 id=p7_4900PC0176_alarmstate title=""
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 65.21%; VISIBILITY: hidden; BEHAVIOR: url(#AlarmStateIconFactory#AlarmIcon) url(#BindingBehavior); WIDTH: 19.56%; FONT-STYLE: normal; FONT-FAMILY: Arial; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 9.21%; HEIGHT: 11.84%; TEXT-ALIGN: center; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="acknowledged:True;HDXBINDINGID:23;priority:3;quality:0;rtn:False;showDisableIcon:False;showTooltip:False;sizeableIcon:True;staticIcon:False;"
+ObjectType="6"></DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1 FrameMF" id=p7_4900PC0176_frame
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.91%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:24;Height:150;LineColor:rgb(225,225,225);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:FrameMF;Width:91;"></DIV>
+<DIV class="hvg.base.1 FocusC200 HSC.ScriptDataObject.1" id=p7_4900PC0176_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 95.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 97.36%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,230,210);fillColorBlink:False;FillStyle:0;HDXBINDINGID:25;Height:148;LineColor:rgb(0,0,0);lineColorBlink:False;LineStyle:1;LineWidth:2;styleClass:FocusC200;Width:88;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 1)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p7_4900PC0176_txt_tagname
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 1.97%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">TagName</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p7_4900PC0176_txt_keyword
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">Keyword</DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=p7_4900PC0176_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 6.52%; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 17.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28.94%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=p7_4900PC0176_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 13.04%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=p7_4900PC0176_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 13.04%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=p7_4900PC0176_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=p7_4900PC0176_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=p7_4900PC0176_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 10.86%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 11.95%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV>
+<DIV class=hvg.base.1 id=p7_4900PC0176_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 17.39%; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 67.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.18%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:16;LineColor:#b4b4b4;lineColorBlink:False;LineWidth:1;Roundness:80;Width:62;"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p7_4900PC0176_txt_AnalogValue
+style="FONT-SIZE: 9pt; LEFT: 20.65%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay"
+id=p7_4900PC0176_txt_statusmessage
+style="FONT-SIZE: 8pt; LEFT: 21.73%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 73.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:58;">RedTag</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay" id=p7_4900PC0176_txt_ramp
+style="FONT-WEIGHT: bold; FONT-SIZE: 8pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #ffffff; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 23.68%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:9;">R</DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p7_4900PC0176_plg_OpLow
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 0 50 100 0 0 100 0 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p7_4900PC0176_plg_OpHigh
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 100 50 0 0 100 100 100 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.textbox.1 OffNormalText" id=p7_4900PC0176_txt_Initialization
+style="FONT-WEIGHT: bold; FONT-SIZE: 16pt; LEFT: 86.95%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #b000b0; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.84%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:OffNormalText;textColor:rgb(176,0,176);textColorBlink:False;TotalRotation:0;Width:9;">*</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=p7_4900PC0176_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 97.82%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:26;Height:150;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:90;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 0)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p7_4900PC0176_rec_DataScript").onmousedown'
+id=p7_4900PC0176_txt_ModeValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,255,255);lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">Mode</DIV><SPAN
+class="hsc.combo.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p7_4900PC0176_rec_DataScript").onmousedown'
+id=p7_4900PC0176_cmb_ModeValue
+style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: transparent; LEFT: 21.73%; VISIBILITY: hidden; BORDER-BOTTOM-COLOR: transparent; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HSCComboboxBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: rgb(0,0,0); BORDER-TOP-COLOR: transparent; TEXT-INDENT: 2px; PADDING-TOP: 1px; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; BORDER-RIGHT-COLOR: transparent"
+tabIndex=0
+hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:27;lineColor:transparent;lineColorBlink:False;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">Combobox</SPAN>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p7_4900PC0176_rec_DataScript").onmousedown'
+id=p7_4900PC0176_txt_OPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 48.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p7_4900PC0176_rec_DataScript").onmousedown'
+id=p7_4900PC0176_txt_SPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 22.36%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, +255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, +0, 0);textColorBlink:False;TotalRotation:0;Width:58;">09.99</DIV><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p7_4900PC0176_rec_DataScript").onmousedown' id=p7_4900PC0176_alp_SPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:28;lineColor:transparent;numericDisplayFormat:%.2f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">9999.99</TEXTAREA><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p7_4900PC0176_rec_DataScript").onmousedown' id=p7_4900PC0176_alp_OPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);HDXBINDINGID:29;lineColor:transparent;numberOfChars:9;numericDisplayFormat:%.1f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);">9999.99</TEXTAREA></DIV></DIV>
+<DIV class=hsc.shape.1 id=p8_4900FI3006
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 3px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 92px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 179px; HEIGHT: 152px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:0;lineColorBlink:False;Width:0;"
+value = "1" src = ".\L4_LSG_FURN_1_files\C200_MF_Analog.sha" parameters =
+"Point?Entity:4900FI3006;Parameter?CP_PV:DACA.PV;Parameter?CP_BadPV:DACA.PVSTSFL.BAD;Parameter?CP_OffNormal:DACA.PVSOURCE;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=p8_4900FI3006_grp_AnalogMFP
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;">
+<DIV class=hsc.alarmstate.1 id=p8_4900FI3006_alarmstate title=""
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 65.21%; VISIBILITY: hidden; BEHAVIOR: url(#AlarmStateIconFactory#AlarmIcon) url(#BindingBehavior); WIDTH: 19.56%; FONT-STYLE: normal; FONT-FAMILY: Arial; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 35.52%; HEIGHT: 11.84%; TEXT-ALIGN: center; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="acknowledged:True;HDXBINDINGID:30;priority:3;quality:0;rtn:False;showDisableIcon:False;showTooltip:False;sizeableIcon:True;staticIcon:False;"
+ObjectType="6"></DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1 FrameMF" id=p8_4900FI3006_frame
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.91%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:31;Height:150;LineColor:rgb(225,225,225);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:FrameMF;Width:91;"></DIV>
+<DIV class="hvg.base.1 FocusC200 HSC.ScriptDataObject.1" id=p8_4900FI3006_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 95.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 97.36%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,230,210);fillColorBlink:False;FillStyle:0;HDXBINDINGID:32;Height:148;LineColor:rgb(0,0,0);lineColorBlink:False;LineStyle:1;LineWidth:2;styleClass:FocusC200;Width:88;"
+onupdate="VBScript:call GSH_C200_GROUPANALOG_ONUPDATE(me.parentElement.parentElement, 1)"></DIV>
+<DIV class=hvg.base.1 id=p8_4900FI3006_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 17.39%; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 67.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.18%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:16;LineColor:#b4b4b4;lineColorBlink:False;LineWidth:1;Roundness:80;Width:62;"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p8_4900FI3006_txt_AnalogValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:58;">9999.</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p8_4900FI3006_txt_tagname
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 1.97%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">TagName</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p8_4900FI3006_txt_keyword
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">Keyword</DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=p8_4900FI3006_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 5.43%; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 17.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28.94%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=p8_4900FI3006_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=p8_4900FI3006_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 13.04%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=p8_4900FI3006_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 11.95%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=p8_4900FI3006_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 13.04%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=p8_4900FI3006_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=p8_4900FI3006_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 97.82%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:33;Height:150;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:90;"
+onupdate="VBScript:call GSH_C200_GROUPANALOG_ONUPDATE(me.parentElement.parentElement, 0)"></DIV></DIV></DIV>
+<DIV class=hsc.shape.1 id=p9e_4900TC3301
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 369px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 92px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 179px; HEIGHT: 152px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:0;lineColorBlink:False;Width:0;"
+value = "1" src = ".\L4_LSG_FURN_1_files\C200_MF_RegCtl.sha" parameters =
+"Point?Entity:4900TC3301;Parameter?CP_SP:PIDA.SP;Parameter?CP_PV:PIDA.PV;Parameter?CP_OP:PIDA.OP;Parameter?CP_Mode:PIDA.MODE;Parameter?CP_BadPV:PIDA.PVSTSFL.BAD;Parameter?CP_OffNormal:DACA.PVSOURCE;Parameter?CP_ModAttr:PIDA.MODEATTR;Parameter?CP_Ramp:PIDA.SPTVSTATE;Parameter?CP_RedTag:PIDA.REDTAG;Parameter?CP_Windup:PIDA.ARWOP;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=p9e_4900TC3301_grpRegCtl
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;">
+<DIV class=hsc.alarmstate.1 id=p9e_4900TC3301_alarmstate title=""
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 65.21%; VISIBILITY: hidden; BEHAVIOR: url(#AlarmStateIconFactory#AlarmIcon) url(#BindingBehavior); WIDTH: 19.56%; FONT-STYLE: normal; FONT-FAMILY: Arial; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 9.21%; HEIGHT: 11.84%; TEXT-ALIGN: center; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="acknowledged:True;HDXBINDINGID:14;priority:3;quality:0;rtn:False;showDisableIcon:False;showTooltip:False;sizeableIcon:True;staticIcon:False;"
+ObjectType="6"></DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1 FrameMF" id=p9e_4900TC3301_frame
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.91%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:15;Height:150;LineColor:rgb(225,225,225);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:FrameMF;Width:91;"></DIV>
+<DIV class="hvg.base.1 FocusC200 HSC.ScriptDataObject.1" id=p9e_4900TC3301_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 95.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 97.36%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,230,210);fillColorBlink:False;FillStyle:0;HDXBINDINGID:16;Height:148;LineColor:rgb(0,0,0);lineColorBlink:False;LineStyle:1;LineWidth:2;styleClass:FocusC200;Width:88;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 1)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p9e_4900TC3301_txt_tagname
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 1.97%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">TagName</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p9e_4900TC3301_txt_keyword
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">Keyword</DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=p9e_4900TC3301_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 6.52%; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 17.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28.94%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=p9e_4900TC3301_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 13.04%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=p9e_4900TC3301_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 13.04%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=p9e_4900TC3301_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=p9e_4900TC3301_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=p9e_4900TC3301_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 10.86%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 11.95%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV>
+<DIV class=hvg.base.1 id=p9e_4900TC3301_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 17.39%; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 67.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.18%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:16;LineColor:#b4b4b4;lineColorBlink:False;LineWidth:1;Roundness:80;Width:62;"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p9e_4900TC3301_txt_AnalogValue
+style="FONT-SIZE: 9pt; LEFT: 20.65%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay"
+id=p9e_4900TC3301_txt_statusmessage
+style="FONT-SIZE: 8pt; LEFT: 21.73%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 73.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:58;">RedTag</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay" id=p9e_4900TC3301_txt_ramp
+style="FONT-WEIGHT: bold; FONT-SIZE: 8pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #ffffff; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 23.68%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:9;">R</DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p9e_4900TC3301_plg_OpLow
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 0 50 100 0 0 100 0 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p9e_4900TC3301_plg_OpHigh
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 100 50 0 0 100 100 100 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.textbox.1 OffNormalText" id=p9e_4900TC3301_txt_Initialization
+style="FONT-WEIGHT: bold; FONT-SIZE: 16pt; LEFT: 86.95%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #b000b0; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.84%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:OffNormalText;textColor:rgb(176,0,176);textColorBlink:False;TotalRotation:0;Width:9;">*</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=p9e_4900TC3301_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 97.82%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:17;Height:150;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:90;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 0)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9e_4900TC3301_rec_DataScript").onmousedown'
+id=p9e_4900TC3301_txt_ModeValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,255,255);lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">Mode</DIV><SPAN
+class="hsc.combo.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9e_4900TC3301_rec_DataScript").onmousedown'
+id=p9e_4900TC3301_cmb_ModeValue
+style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: transparent; LEFT: 21.73%; VISIBILITY: hidden; BORDER-BOTTOM-COLOR: transparent; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HSCComboboxBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: rgb(0,0,0); BORDER-TOP-COLOR: transparent; TEXT-INDENT: 2px; PADDING-TOP: 1px; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; BORDER-RIGHT-COLOR: transparent"
+tabIndex=0
+hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:19;lineColor:transparent;lineColorBlink:False;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">Combobox</SPAN>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9e_4900TC3301_rec_DataScript").onmousedown'
+id=p9e_4900TC3301_txt_OPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 48.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9e_4900TC3301_rec_DataScript").onmousedown'
+id=p9e_4900TC3301_txt_SPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 22.36%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, +255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, +0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV><TEXTAREA +class="hsc.alpha.1 Group_DataEntry" +onmousedown='VBScript:me.parentElement.parentElement.objects("p9e_4900TC3301_rec_DataScript").onmousedown' +id=p9e_4900TC3301_alp_SPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; +FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: +url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: +hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: +1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; +POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: +rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: +none; ROWS: 1" tabIndex=0 +hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, +255);fillColorBlink:False;HDXBINDINGID:20;lineColor:transparent;numericDisplayFormat:%.2f;styleClass:Group_DataEntry;textColor:rgb(0, +0, 0);textColorBlink:False;">9999.99</TEXTAREA><TEXTAREA class="hsc.alpha.1 +Group_DataEntry" +onmousedown='VBScript:me.parentElement.parentElement.objects("p9e_4900TC3301_rec_DataScript").onmousedown' +id=p9e_4900TC3301_alp_OPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; +FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: +url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: +hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: +1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; +POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: +rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: +none; ROWS: 1" tabIndex=0 +hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, +255);HDXBINDINGID:34;lineColor:transparent;numberOfChars:9;numericDisplayFormat:%.1f;styleClass:Group_DataEntry;textColor:rgb(0, +0, 0);">-09.99</TEXTAREA></DIV></DIV>
+<DIV class=hsc.shape.1 id=p5_4900FY0212
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 369px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 92px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28px; HEIGHT: 152px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;"
+value = "1" src = ".\L4_LSG_FURN_1_files\C200_MF_Automan.sha" parameters =
+"Point?Entity:4900FY0212;Parameter?CP_OP:AUTOMANA.OP;Parameter?CP_Mode:AUTOMANA.MODE;Parameter?CP_ModAttr:AUTOMANA.MODEATTR;Parameter?CP_RedTag:AUTOMANA.REDTAG;Parameter?CP_Windup:AUTOMANA.ARWOP;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=p5_4900FY0212_grp_C200MFAutoman
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;">
+<DIV class=hsc.alarmstate.1 id=p5_4900FY0212_alarmstate title=""
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 65.21%; VISIBILITY: hidden; BEHAVIOR: url(#AlarmStateIconFactory#AlarmIcon) url(#BindingBehavior); WIDTH: 19.56%; FONT-STYLE: normal; FONT-FAMILY: Arial; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 40.78%; HEIGHT: 11.84%; TEXT-ALIGN: center; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="acknowledged:True;HDXBINDINGID:35;priority:3;quality:0;rtn:False;showDisableIcon:False;showTooltip:False;sizeableIcon:True;staticIcon:False;"
+ObjectType="6"></DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1 FrameMF" id=p5_4900FY0212_frame
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.91%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:36;Height:150;LineColor:rgb(225,225,225);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:FrameMF;Width:91;"></DIV>
+<DIV class="hvg.base.1 FocusC200 HSC.ScriptDataObject.1" id=p5_4900FY0212_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 95.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 97.36%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,230,210);fillColorBlink:False;FillStyle:0;HDXBINDINGID:37;Height:148;LineColor:rgb(0,0,0);lineColorBlink:False;LineStyle:1;LineWidth:2;styleClass:FocusC200;Width:88;"
+onupdate="VBScript:call GSH_C200_GROUPAUTOMAN_ONUPDATE(me.parentElement.parentElement, 1)"></DIV>
+<DIV class=hvg.base.1 id=p5_4900FY0212_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 15.21%; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 70.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 48.02%; HEIGHT: 11.84%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:18;LineColor:#b4b4b4;lineColorBlink:False;LineWidth:1;Roundness:80;Width:65;"></DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=p5_4900FY0212_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 3.26%; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 17.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 40.78%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=p5_4900FY0212_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 6.52%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 41.44%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=p5_4900FY0212_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 5.43%; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 13.04%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 42.1%; HEIGHT: 7.89%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=p5_4900FY0212_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 7.6%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 11.95%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 41.44%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=p5_4900FY0212_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 5.43%; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 13.04%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 42.1%; HEIGHT: 7.89%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=p5_4900FY0212_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 6.52%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 41.44%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p5_4900FY0212_txt_tagname
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 1.97%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">TagName</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p5_4900FY0212_txt_keyword
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">Keyword</DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p5_4900FY0212_plg_OpLow
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 0 50 100 0 0 100 0 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p5_4900FY0212_plg_OpHigh
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 100 50 0 0 100 100 100 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.textbox.1 OffNormalText" id=p5_4900FY0212_txt_Initialization
+style="FONT-WEIGHT: bold; FONT-SIZE: 16pt; LEFT: 84.78%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #b000b0; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.84%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:OffNormalText;textColor:rgb(176,0,176);textColorBlink:False;TotalRotation:0;Width:9;">*</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=p5_4900FY0212_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 97.82%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:38;Height:150;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:90;"
+onupdate="VBScript:call GSH_C200_GROUPAUTOMAN_ONUPDATE(me.parentElement.parentElement, 0)"></DIV><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p5_4900FY0212_rec_DataScript").onmousedown' id=p5_4900FY0212_alp_OPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);HDXBINDINGID:39;indicateScanState:0;lineColor:transparent;numberOfChars:9;numericDisplayFormat:%.1f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);">9999.99</TEXTAREA>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p5_4900FY0212_rec_DataScript").onmousedown'
+id=p5_4900FY0212_txt_OPValue
+style="FONT-SIZE: 9pt; LEFT: 19.56%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 49.34%; HEIGHT: 9.86%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:15;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p5_4900FY0212_rec_DataScript").onmousedown'
+id=p5_4900FY0212_txt_ModeValue
+style="FONT-SIZE: 9pt; LEFT: 19.56%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,255,255);lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">Mode</DIV><SPAN
+class="hsc.combo.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p5_4900FY0212_rec_DataScript").onmousedown'
+id=p5_4900FY0212_cmb_ModeValue
+style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: transparent; LEFT: 19.56%; VISIBILITY: hidden; BORDER-BOTTOM-COLOR: transparent; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HSCComboboxBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: rgb(0,0,0); BORDER-TOP-COLOR: transparent; TEXT-INDENT: 2px; PADDING-TOP: 1px; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; BORDER-RIGHT-COLOR: transparent"
+tabIndex=0
+hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:40;lineColor:transparent;lineColorBlink:False;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">Combobox</SPAN></DIV></DIV>
+<DIV class=hsc.shape.1 id=p1_4900TC0145
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 3px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 92px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28px; HEIGHT: 152px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;"
+value = "1" src = ".\L4_LSG_FURN_1_files\C200_MF_RegCtl.sha" parameters =
+"Point?Entity:4900TC0145;Parameter?CP_SP:PIDA.SP;Parameter?CP_PV:PIDA.PV;Parameter?CP_OP:PIDA.OP;Parameter?CP_Mode:PIDA.MODE;Parameter?CP_BadPV:PIDA.PVSTSFL.BAD;Parameter?CP_OffNormal:DACA.PVSOURCE;Parameter?CP_ModAttr:PIDA.MODEATTR;Parameter?CP_Ramp:PIDA.SPTVSTATE;Parameter?CP_RedTag:PIDA.REDTAG;Parameter?CP_Windup:PIDA.ARWOP;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=p1_4900TC0145_grpRegCtl
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;">
+<DIV class=hsc.alarmstate.1 id=p1_4900TC0145_alarmstate title=""
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 65.21%; VISIBILITY: hidden; BEHAVIOR: url(#AlarmStateIconFactory#AlarmIcon) url(#BindingBehavior); WIDTH: 19.56%; FONT-STYLE: normal; FONT-FAMILY: Arial; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 9.21%; HEIGHT: 11.84%; TEXT-ALIGN: center; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="acknowledged:True;HDXBINDINGID:41;priority:3;quality:0;rtn:False;showDisableIcon:False;showTooltip:False;sizeableIcon:True;staticIcon:False;"
+ObjectType="6"></DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1 FrameMF" id=p1_4900TC0145_frame
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.91%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:42;Height:150;LineColor:rgb(225,225,225);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:FrameMF;Width:91;"></DIV>
+<DIV class="hvg.base.1 FocusC200 HSC.ScriptDataObject.1" id=p1_4900TC0145_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 95.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 97.36%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,230,210);fillColorBlink:False;FillStyle:0;HDXBINDINGID:43;Height:148;LineColor:rgb(0,0,0);lineColorBlink:False;LineStyle:1;LineWidth:2;styleClass:FocusC200;Width:88;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 1)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p1_4900TC0145_txt_tagname
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 1.97%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">TagName</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p1_4900TC0145_txt_keyword
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">Keyword</DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=p1_4900TC0145_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 6.52%; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 17.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28.94%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=p1_4900TC0145_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 13.04%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=p1_4900TC0145_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 13.04%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=p1_4900TC0145_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=p1_4900TC0145_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=p1_4900TC0145_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 10.86%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 11.95%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV>
+<DIV class=hvg.base.1 id=p1_4900TC0145_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 17.39%; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 67.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.18%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:16;LineColor:#b4b4b4;lineColorBlink:False;LineWidth:1;Roundness:80;Width:62;"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p1_4900TC0145_txt_AnalogValue
+style="FONT-SIZE: 9pt; LEFT: 20.65%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay"
+id=p1_4900TC0145_txt_statusmessage
+style="FONT-SIZE: 8pt; LEFT: 21.73%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 73.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:58;">RedTag</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay" id=p1_4900TC0145_txt_ramp
+style="FONT-WEIGHT: bold; FONT-SIZE: 8pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #ffffff; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 23.68%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:9;">R</DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p1_4900TC0145_plg_OpLow
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 0 50 100 0 0 100 0 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p1_4900TC0145_plg_OpHigh
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 100 50 0 0 100 100 100 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.textbox.1 OffNormalText" id=p1_4900TC0145_txt_Initialization
+style="FONT-WEIGHT: bold; FONT-SIZE: 16pt; LEFT: 86.95%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #b000b0; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.84%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:OffNormalText;textColor:rgb(176,0,176);textColorBlink:False;TotalRotation:0;Width:9;">*</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=p1_4900TC0145_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 97.82%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:44;Height:150;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:90;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 0)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p1_4900TC0145_rec_DataScript").onmousedown'
+id=p1_4900TC0145_txt_ModeValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,255,255);lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">Mode</DIV><SPAN
+class="hsc.combo.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p1_4900TC0145_rec_DataScript").onmousedown'
+id=p1_4900TC0145_cmb_ModeValue
+style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: transparent; LEFT: 21.73%; VISIBILITY: hidden; BORDER-BOTTOM-COLOR: transparent; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HSCComboboxBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: rgb(0,0,0); BORDER-TOP-COLOR: transparent; TEXT-INDENT: 2px; PADDING-TOP: 1px; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; BORDER-RIGHT-COLOR: transparent"
+tabIndex=0
+hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:45;lineColor:transparent;lineColorBlink:False;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">Combobox</SPAN>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p1_4900TC0145_rec_DataScript").onmousedown'
+id=p1_4900TC0145_txt_OPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 48.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p1_4900TC0145_rec_DataScript").onmousedown'
+id=p1_4900TC0145_txt_SPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 22.36%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p1_4900TC0145_rec_DataScript").onmousedown' id=p1_4900TC0145_alp_SPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:46;lineColor:transparent;numericDisplayFormat:%.2f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">9999.99</TEXTAREA><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p1_4900TC0145_rec_DataScript").onmousedown' id=p1_4900TC0145_alp_OPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);HDXBINDINGID:47;lineColor:transparent;numberOfChars:9;numericDisplayFormat:%.1f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);">9999.99</TEXTAREA></DIV></DIV>
+<DIV class=hsc.shape.1 id=p2_4900TC0074
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 94px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 92px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28px; HEIGHT: 152px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;"
+value = "1" src = ".\L4_LSG_FURN_1_files\C200_MF_RegCtl.sha" parameters =
+"Point?Entity:4900TC0074;Parameter?CP_SP:PIDA.SP;Parameter?CP_PV:PIDA.PV;Parameter?CP_OP:PIDA.OP;Parameter?CP_Mode:PIDA.MODE;Parameter?CP_BadPV:PIDA.PVSTSFL.BAD;Parameter?CP_OffNormal:DACA.PVSOURCE;Parameter?CP_ModAttr:PIDA.MODEATTR;Parameter?CP_Ramp:PIDA.SPTVSTATE;Parameter?CP_RedTag:PIDA.REDTAG;Parameter?CP_Windup:PIDA.ARWOP;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=p2_4900TC0074_grpRegCtl
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;">
+<DIV class=hsc.alarmstate.1 id=p2_4900TC0074_alarmstate title=""
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 65.21%; VISIBILITY: hidden; BEHAVIOR: url(#AlarmStateIconFactory#AlarmIcon) url(#BindingBehavior); WIDTH: 19.56%; FONT-STYLE: normal; FONT-FAMILY: Arial; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 9.21%; HEIGHT: 11.84%; TEXT-ALIGN: center; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="acknowledged:True;HDXBINDINGID:48;priority:3;quality:0;rtn:False;showDisableIcon:False;showTooltip:False;sizeableIcon:True;staticIcon:False;"
+ObjectType="6"></DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1 FrameMF" id=p2_4900TC0074_frame
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.91%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:49;Height:150;LineColor:rgb(225,225,225);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:FrameMF;Width:91;"></DIV>
+<DIV class="hvg.base.1 FocusC200 HSC.ScriptDataObject.1" id=p2_4900TC0074_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 95.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 97.36%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,230,210);fillColorBlink:False;FillStyle:0;HDXBINDINGID:57;Height:148;LineColor:rgb(0,0,0);lineColorBlink:False;LineStyle:1;LineWidth:2;styleClass:FocusC200;Width:88;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 1)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p2_4900TC0074_txt_tagname
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 1.97%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">TagName</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p2_4900TC0074_txt_keyword
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">Keyword</DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=p2_4900TC0074_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 6.52%; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 17.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28.94%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=p2_4900TC0074_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 13.04%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=p2_4900TC0074_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 13.04%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=p2_4900TC0074_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=p2_4900TC0074_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=p2_4900TC0074_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 10.86%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 11.95%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV>
+<DIV class=hvg.base.1 id=p2_4900TC0074_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 17.39%; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 67.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.18%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:16;LineColor:#b4b4b4;lineColorBlink:False;LineWidth:1;Roundness:80;Width:62;"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p2_4900TC0074_txt_AnalogValue
+style="FONT-SIZE: 9pt; LEFT: 20.65%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay"
+id=p2_4900TC0074_txt_statusmessage
+style="FONT-SIZE: 8pt; LEFT: 21.73%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 73.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:58;">RedTag</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay" id=p2_4900TC0074_txt_ramp
+style="FONT-WEIGHT: bold; FONT-SIZE: 8pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #ffffff; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 23.68%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:9;">R</DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p2_4900TC0074_plg_OpLow
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 0 50 100 0 0 100 0 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p2_4900TC0074_plg_OpHigh
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 100 50 0 0 100 100 100 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.textbox.1 OffNormalText" id=p2_4900TC0074_txt_Initialization
+style="FONT-WEIGHT: bold; FONT-SIZE: 16pt; LEFT: 86.95%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #b000b0; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.84%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:OffNormalText;textColor:rgb(176,0,176);textColorBlink:False;TotalRotation:0;Width:9;">*</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=p2_4900TC0074_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 97.82%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:58;Height:150;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:90;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 0)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p2_4900TC0074_rec_DataScript").onmousedown'
+id=p2_4900TC0074_txt_ModeValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,255,255);lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">Mode</DIV><SPAN
+class="hsc.combo.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p2_4900TC0074_rec_DataScript").onmousedown'
+id=p2_4900TC0074_cmb_ModeValue
+style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: transparent; LEFT: 21.73%; VISIBILITY: hidden; BORDER-BOTTOM-COLOR: transparent; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HSCComboboxBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: rgb(0,0,0); BORDER-TOP-COLOR: transparent; TEXT-INDENT: 2px; PADDING-TOP: 1px; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; BORDER-RIGHT-COLOR: transparent"
+tabIndex=0
+hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:59;lineColor:transparent;lineColorBlink:False;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">Combobox</SPAN>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p2_4900TC0074_rec_DataScript").onmousedown'
+id=p2_4900TC0074_txt_OPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 48.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p2_4900TC0074_rec_DataScript").onmousedown'
+id=p2_4900TC0074_txt_SPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 22.36%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p2_4900TC0074_rec_DataScript").onmousedown' id=p2_4900TC0074_alp_SPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:60;lineColor:transparent;numericDisplayFormat:%.2f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">9999.99</TEXTAREA><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p2_4900TC0074_rec_DataScript").onmousedown' id=p2_4900TC0074_alp_OPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);HDXBINDINGID:61;lineColor:transparent;numberOfChars:9;numericDisplayFormat:%.1f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);">9999.99</TEXTAREA></DIV></DIV>
+<DIV class=hsc.shape.1 id=p3_4900FC0212
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 185px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 92px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28px; HEIGHT: 152px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;"
+value = "1" src = ".\L4_LSG_FURN_1_files\C200_MF_RegCtl.sha" parameters =
+"Point?Entity:4900FC0212;Parameter?CP_SP:PIDA.SP;Parameter?CP_PV:PIDA.PV;Parameter?CP_OP:PIDA.OP;Parameter?CP_Mode:PIDA.MODE;Parameter?CP_BadPV:PIDA.PVSTSFL.BAD;Parameter?CP_OffNormal:DACA.PVSOURCE;Parameter?CP_ModAttr:PIDA.MODEATTR;Parameter?CP_Ramp:PIDA.SPTVSTATE;Parameter?CP_RedTag:PIDA.REDTAG;Parameter?CP_Windup:PIDA.ARWOP;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=p3_4900FC0212_grpRegCtl
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;">
+<DIV class=hsc.alarmstate.1 id=p3_4900FC0212_alarmstate title=""
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 65.21%; VISIBILITY: hidden; BEHAVIOR: url(#AlarmStateIconFactory#AlarmIcon) url(#BindingBehavior); WIDTH: 19.56%; FONT-STYLE: normal; FONT-FAMILY: Arial; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 9.21%; HEIGHT: 11.84%; TEXT-ALIGN: center; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="acknowledged:True;HDXBINDINGID:62;priority:3;quality:0;rtn:False;showDisableIcon:False;showTooltip:False;sizeableIcon:True;staticIcon:False;"
+ObjectType="6"></DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1 FrameMF" id=p3_4900FC0212_frame
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.91%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:63;Height:150;LineColor:rgb(225,225,225);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:FrameMF;Width:91;"></DIV>
+<DIV class="hvg.base.1 FocusC200 HSC.ScriptDataObject.1" id=p3_4900FC0212_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 95.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 97.36%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,230,210);fillColorBlink:False;FillStyle:0;HDXBINDINGID:64;Height:148;LineColor:rgb(0,0,0);lineColorBlink:False;LineStyle:1;LineWidth:2;styleClass:FocusC200;Width:88;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 1)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p3_4900FC0212_txt_tagname
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 1.97%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">TagName</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p3_4900FC0212_txt_keyword
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">Keyword</DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=p3_4900FC0212_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 6.52%; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 17.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28.94%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=p3_4900FC0212_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 13.04%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=p3_4900FC0212_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 13.04%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=p3_4900FC0212_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=p3_4900FC0212_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=p3_4900FC0212_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 10.86%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 11.95%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV>
+<DIV class=hvg.base.1 id=p3_4900FC0212_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 17.39%; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 67.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.18%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:16;LineColor:#b4b4b4;lineColorBlink:False;LineWidth:1;Roundness:80;Width:62;"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p3_4900FC0212_txt_AnalogValue
+style="FONT-SIZE: 9pt; LEFT: 20.65%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay"
+id=p3_4900FC0212_txt_statusmessage
+style="FONT-SIZE: 8pt; LEFT: 21.73%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 73.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:58;">RedTag</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay" id=p3_4900FC0212_txt_ramp
+style="FONT-WEIGHT: bold; FONT-SIZE: 8pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #ffffff; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 23.68%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:9;">R</DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p3_4900FC0212_plg_OpLow
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 0 50 100 0 0 100 0 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p3_4900FC0212_plg_OpHigh
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 100 50 0 0 100 100 100 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.textbox.1 OffNormalText" id=p3_4900FC0212_txt_Initialization
+style="FONT-WEIGHT: bold; FONT-SIZE: 16pt; LEFT: 86.95%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #b000b0; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.84%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:OffNormalText;textColor:rgb(176,0,176);textColorBlink:False;TotalRotation:0;Width:9;">*</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=p3_4900FC0212_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 97.82%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:65;Height:150;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:90;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 0)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p3_4900FC0212_rec_DataScript").onmousedown'
+id=p3_4900FC0212_txt_ModeValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,255,255);lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">Mode</DIV><SPAN
+class="hsc.combo.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p3_4900FC0212_rec_DataScript").onmousedown'
+id=p3_4900FC0212_cmb_ModeValue
+style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: transparent; LEFT: 21.73%; VISIBILITY: hidden; BORDER-BOTTOM-COLOR: transparent; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HSCComboboxBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: rgb(0,0,0); BORDER-TOP-COLOR: transparent; TEXT-INDENT: 2px; PADDING-TOP: 1px; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; BORDER-RIGHT-COLOR: transparent"
+tabIndex=0
+hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:66;lineColor:transparent;lineColorBlink:False;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">Combobox</SPAN>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p3_4900FC0212_rec_DataScript").onmousedown'
+id=p3_4900FC0212_txt_OPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 48.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p3_4900FC0212_rec_DataScript").onmousedown'
+id=p3_4900FC0212_txt_SPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 22.36%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p3_4900FC0212_rec_DataScript").onmousedown' id=p3_4900FC0212_alp_SPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:67;lineColor:transparent;numericDisplayFormat:%.2f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">9999.99</TEXTAREA><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p3_4900FC0212_rec_DataScript").onmousedown' id=p3_4900FC0212_alp_OPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);HDXBINDINGID:68;lineColor:transparent;numberOfChars:9;numericDisplayFormat:%.1f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);">9999.99</TEXTAREA></DIV></DIV>
+<DIV class=hsc.shape.1 id=p4_4900PC0216
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 277px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 92px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28px; HEIGHT: 152px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;"
+value = "1" src = ".\L4_LSG_FURN_1_files\C200_MF_RegCtl.sha" parameters =
+"Point?Entity:4900PC0216;Parameter?CP_SP:PIDA.SP;Parameter?CP_PV:PIDA.PV;Parameter?CP_OP:PIDA.OP;Parameter?CP_Mode:PIDA.MODE;Parameter?CP_BadPV:PIDA.PVSTSFL.BAD;Parameter?CP_OffNormal:DACA.PVSOURCE;Parameter?CP_ModAttr:PIDA.MODEATTR;Parameter?CP_Ramp:PIDA.SPTVSTATE;Parameter?CP_RedTag:PIDA.REDTAG;Parameter?CP_Windup:PIDA.ARWOP;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=p4_4900PC0216_grpRegCtl
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;">
+<DIV class=hsc.alarmstate.1 id=p4_4900PC0216_alarmstate title=""
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 65.21%; VISIBILITY: hidden; BEHAVIOR: url(#AlarmStateIconFactory#AlarmIcon) url(#BindingBehavior); WIDTH: 19.56%; FONT-STYLE: normal; FONT-FAMILY: Arial; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 9.21%; HEIGHT: 11.84%; TEXT-ALIGN: center; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="acknowledged:True;HDXBINDINGID:2;priority:3;quality:0;rtn:False;showDisableIcon:False;showTooltip:False;sizeableIcon:True;staticIcon:False;"
+ObjectType="6"></DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1 FrameMF" id=p4_4900PC0216_frame
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.91%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:3;Height:150;LineColor:rgb(225,225,225);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:FrameMF;Width:91;"></DIV>
+<DIV class="hvg.base.1 FocusC200 HSC.ScriptDataObject.1" id=p4_4900PC0216_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 95.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 97.36%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,230,210);fillColorBlink:False;FillStyle:0;HDXBINDINGID:4;Height:148;LineColor:rgb(0,0,0);lineColorBlink:False;LineStyle:1;LineWidth:2;styleClass:FocusC200;Width:88;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 1)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p4_4900PC0216_txt_tagname
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 1.97%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">TagName</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p4_4900PC0216_txt_keyword
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">Keyword</DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=p4_4900PC0216_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 6.52%; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 17.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28.94%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=p4_4900PC0216_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 13.04%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=p4_4900PC0216_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 13.04%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=p4_4900PC0216_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=p4_4900PC0216_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=p4_4900PC0216_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 10.86%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 11.95%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV>
+<DIV class=hvg.base.1 id=p4_4900PC0216_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 17.39%; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 67.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.18%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:16;LineColor:#b4b4b4;lineColorBlink:False;LineWidth:1;Roundness:80;Width:62;"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p4_4900PC0216_txt_AnalogValue
+style="FONT-SIZE: 9pt; LEFT: 20.65%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay"
+id=p4_4900PC0216_txt_statusmessage
+style="FONT-SIZE: 8pt; LEFT: 21.73%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 73.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:58;">RedTag</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay" id=p4_4900PC0216_txt_ramp
+style="FONT-WEIGHT: bold; FONT-SIZE: 8pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #ffffff; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 23.68%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:9;">R</DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p4_4900PC0216_plg_OpLow
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 0 50 100 0 0 100 0 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p4_4900PC0216_plg_OpHigh
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 100 50 0 0 100 100 100 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.textbox.1 OffNormalText" id=p4_4900PC0216_txt_Initialization
+style="FONT-WEIGHT: bold; FONT-SIZE: 16pt; LEFT: 86.95%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #b000b0; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.84%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:OffNormalText;textColor:rgb(176,0,176);textColorBlink:False;TotalRotation:0;Width:9;">*</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=p4_4900PC0216_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 97.82%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:5;Height:150;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:90;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 0)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p4_4900PC0216_rec_DataScript").onmousedown'
+id=p4_4900PC0216_txt_ModeValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,255,255);lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">Mode</DIV><SPAN
+class="hsc.combo.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p4_4900PC0216_rec_DataScript").onmousedown'
+id=p4_4900PC0216_cmb_ModeValue
+style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: transparent; LEFT: 21.73%; VISIBILITY: hidden; BORDER-BOTTOM-COLOR: transparent; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HSCComboboxBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: rgb(0,0,0); BORDER-TOP-COLOR: transparent; TEXT-INDENT: 2px; PADDING-TOP: 1px; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; BORDER-RIGHT-COLOR: transparent"
+tabIndex=0
+hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:6;lineColor:transparent;lineColorBlink:False;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">Combobox</SPAN>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p4_4900PC0216_rec_DataScript").onmousedown'
+id=p4_4900PC0216_txt_OPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 48.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p4_4900PC0216_rec_DataScript").onmousedown'
+id=p4_4900PC0216_txt_SPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 22.36%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p4_4900PC0216_rec_DataScript").onmousedown' id=p4_4900PC0216_alp_SPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:7;lineColor:transparent;numericDisplayFormat:%.2f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">9999.99</TEXTAREA><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p4_4900PC0216_rec_DataScript").onmousedown' id=p4_4900PC0216_alp_OPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);HDXBINDINGID:18;lineColor:transparent;numberOfChars:9;numericDisplayFormat:%.1f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);">9999.99</TEXTAREA></DIV></DIV>
+<DIV class=hsc.shape.1 id=p9_4900FFI3104
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 94px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 92px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 179px; HEIGHT: 152px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:0;lineColorBlink:False;Width:0;"
+value = "1" src = ".\L4_LSG_FURN_1_files\C200_MF_RatioTrack.sha" parameters =
+"Point?Entity:4900FFI3104;Parameter?CP_SP:RATIOBIASA.RT;Parameter?CP_PV:RATIO_TRACKING.PV;Parameter?CP_Mode:RATIOBIASA.MODE;Parameter?CP_RFormat:RATIO_TRACKING.PVFORMAT;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=p9_4900FFI3104_grpRatioTrack
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;">
+<DIV class=hsc.alarmstate.1 id=p9_4900FFI3104_alarmstate title=""
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 65.21%; VISIBILITY: hidden; BEHAVIOR: url(#AlarmStateIconFactory#AlarmIcon) url(#BindingBehavior); WIDTH: 19.56%; FONT-STYLE: normal; FONT-FAMILY: Arial; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 9.21%; HEIGHT: 11.84%; TEXT-ALIGN: center; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="acknowledged:True;HDXBINDINGID:69;priority:3;quality:0;rtn:False;showDisableIcon:False;showTooltip:False;sizeableIcon:True;staticIcon:False;"
+ObjectType="6"></DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1 FrameMF" id=p9_4900FFI3104_frame
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.91%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:70;Height:150;LineColor:rgb(225,225,225);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:FrameMF;Width:91;"></DIV>
+<DIV class="hvg.base.1 FocusC200 HSC.ScriptDataObject.1" id=p9_4900FFI3104_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 95.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 97.36%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,230,210);fillColorBlink:False;FillStyle:0;HDXBINDINGID:71;Height:148;LineColor:rgb(0,0,0);lineColorBlink:False;LineStyle:1;LineWidth:2;styleClass:FocusC200;Width:88;"
+onupdate="VBScript:call GSH_C200_GROUPRATIOTRACK_ONUPDATE(me.parentElement.parentElement, 1)"></DIV>
+<DIV class=hvg.textbox.1 id=p9_4900FFI3104_txtRT
+style="FONT-WEIGHT: normal; FONT-SIZE: 9pt; LEFT: 3.26%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 44.56%; COLOR: #bebebe; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 23.02%; HEIGHT: 15.78%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:24;lineColorBlink:False;LineStyle:0;textColor:#bebebe;textColorBlink:False;TotalRotation:0;Width:41;">RT</DIV>
+<DIV class=hvg.textbox.1 id=p9_4900FFI3104_txtRV
+style="FONT-WEIGHT: normal; FONT-SIZE: 9pt; LEFT: 3.26%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 44.56%; COLOR: #bebebe; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 37.5%; HEIGHT: 15.78%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:24;lineColorBlink:False;LineStyle:0;textColor:#bebebe;textColorBlink:False;TotalRotation:0;Width:41;">RV</DIV>
+<DIV class=hvg.textbox.1 id=p9_4900FFI3104_txtRM
+style="FONT-WEIGHT: normal; FONT-SIZE: 9pt; LEFT: 4.34%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 44.56%; COLOR: #bebebe; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.84%; HEIGHT: 15.78%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:24;lineColorBlink:False;LineStyle:0;textColor:#bebebe;textColorBlink:False;TotalRotation:0;Width:41;">RM</DIV>
+<DIV class=hvg.base.1 id=p9_4900FFI3104_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 21.73%; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 67.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.84%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:16;LineColor:#b4b4b4;lineColorBlink:False;LineWidth:1;Roundness:80;Width:62;"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p9_4900FFI3104_txt_tagname
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 1.97%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">TagName</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p9_4900FFI3104_txt_keyword
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">Keyword</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=p9_4900FFI3104_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 97.82%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:72;Height:150;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:90;"
+onupdate="VBScript:call GSH_C200_GROUPRATIOTRACK_ONUPDATE(me.parentElement.parentElement, 0)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9_4900FFI3104_rec_DataScript").onmousedown'
+id=p9_4900FFI3104_txt_ModeValue
+style="FONT-SIZE: 9pt; LEFT: 26.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,255,255);lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">Mode</DIV><SPAN
+class="hsc.combo.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9_4900FFI3104_rec_DataScript").onmousedown'
+id=p9_4900FFI3104_cmb_ModeValue title=Combobox
+style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: transparent; LEFT: 26.08%; VISIBILITY: hidden; BORDER-BOTTOM-COLOR: transparent; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HSCComboboxBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: rgb(0,0,0); BORDER-TOP-COLOR: transparent; TEXT-INDENT: 2px; PADDING-TOP: 1px; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; BORDER-RIGHT-COLOR: transparent"
+tabIndex=0
+hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:73;lineColor:transparent;lineColorBlink:False;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">Combobox</SPAN>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9_4900FFI3104_rec_DataScript").onmousedown'
+id=p9_4900FFI3104_txt_SPValue
+style="FONT-SIZE: 9pt; LEFT: 26.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 22.36%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p9_4900FFI3104_rec_DataScript").onmousedown' id=p9_4900FFI3104_alp_SPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" onclick='VBScript:msgbox("I am clicked")' tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:74;lineColor:transparent;lineColorBlink:False;numericDisplayFormat:%.2f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">9999.99</TEXTAREA>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p9_4900FFI3104_txt_AnalogValue
+style="FONT-SIZE: 9pt; LEFT: 25%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:58;">.99</DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=p9_4900FFI3104_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 17.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28.94%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=p9_4900FFI3104_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 10.86%; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 13.04%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=p9_4900FFI3104_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 10.86%; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 13.04%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=p9_4900FFI3104_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 14.13%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=p9_4900FFI3104_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 14.13%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=p9_4900FFI3104_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 15.21%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 11.95%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV></DIV></DIV>
+<DIV class=hsc.shape.1 id=p9a_4900FC3104
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 185px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 92px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 179px; HEIGHT: 152px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;"
+value = "1" src = ".\L4_LSG_FURN_1_files\C200_MF_RegCtl.sha" parameters =
+"Point?Entity:4900FC3104;Parameter?CP_SP:PIDA.SP;Parameter?CP_PV:PIDA.PV;Parameter?CP_OP:PIDA.OP;Parameter?CP_Mode:PIDA.MODE;Parameter?CP_BadPV:PIDA.PVSTSFL.BAD;Parameter?CP_OffNormal:DACA.PVSOURCE;Parameter?CP_ModAttr:PIDA.MODEATTR;Parameter?CP_Ramp:PIDA.SPTVSTATE;Parameter?CP_RedTag:PIDA.REDTAG;Parameter?CP_Windup:PIDA.ARWOP;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=p9a_4900FC3104_grpRegCtl
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;">
+<DIV class=hsc.alarmstate.1 id=p9a_4900FC3104_alarmstate title=""
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 65.21%; VISIBILITY: hidden; BEHAVIOR: url(#AlarmStateIconFactory#AlarmIcon) url(#BindingBehavior); WIDTH: 19.56%; FONT-STYLE: normal; FONT-FAMILY: Arial; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 9.21%; HEIGHT: 11.84%; TEXT-ALIGN: center; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="acknowledged:True;HDXBINDINGID:50;priority:3;quality:0;rtn:False;showDisableIcon:False;showTooltip:False;sizeableIcon:True;staticIcon:False;"
+ObjectType="6"></DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1 FrameMF" id=p9a_4900FC3104_frame
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.91%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:51;Height:150;LineColor:rgb(225,225,225);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:FrameMF;Width:91;"></DIV>
+<DIV class="hvg.base.1 FocusC200 HSC.ScriptDataObject.1" id=p9a_4900FC3104_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 95.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 97.36%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,230,210);fillColorBlink:False;FillStyle:0;HDXBINDINGID:52;Height:148;LineColor:rgb(0,0,0);lineColorBlink:False;LineStyle:1;LineWidth:2;styleClass:FocusC200;Width:88;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 1)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p9a_4900FC3104_txt_tagname
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 1.97%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">TagName</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p9a_4900FC3104_txt_keyword
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">Keyword</DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=p9a_4900FC3104_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 6.52%; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 17.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 28.94%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=p9a_4900FC3104_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 13.04%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=p9a_4900FC3104_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 8.69%; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 13.04%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 30.26%; HEIGHT: 7.89%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=p9a_4900FC3104_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=p9a_4900FC3104_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 9.78%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=p9a_4900FC3104_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 10.86%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 11.95%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 29.6%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV>
+<DIV class=hvg.base.1 id=p9a_4900FC3104_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 17.39%; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 67.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.18%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:16;LineColor:#b4b4b4;lineColorBlink:False;LineWidth:1;Roundness:80;Width:62;"></DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p9a_4900FC3104_txt_AnalogValue
+style="FONT-SIZE: 9pt; LEFT: 20.65%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 36.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay"
+id=p9a_4900FC3104_txt_statusmessage
+style="FONT-SIZE: 8pt; LEFT: 21.73%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 73.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:58;">RedTag</DIV>
+<DIV class="hvg.textbox.1 Group_StatusDisplay" id=p9a_4900FC3104_txt_ramp
+style="FONT-WEIGHT: bold; FONT-SIZE: 8pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #ffffff; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 23.68%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;FillStyle:0;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;styleClass:Group_StatusDisplay;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:9;">R</DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p9a_4900FC3104_plg_OpLow
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 0 50 100 0 0 100 0 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p9a_4900FC3104_plg_OpHigh
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 100 50 0 0 100 100 100 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.textbox.1 OffNormalText" id=p9a_4900FC3104_txt_Initialization
+style="FONT-WEIGHT: bold; FONT-SIZE: 16pt; LEFT: 86.95%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #b000b0; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.84%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:OffNormalText;textColor:rgb(176,0,176);textColorBlink:False;TotalRotation:0;Width:9;">*</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=p9a_4900FC3104_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 97.82%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:53;Height:150;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:90;"
+onupdate="VBScript:call GSH_C200_GROUPREGULATORYCONTROL_ONUPDATE(me.parentElement.parentElement, 0)"></DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9a_4900FC3104_rec_DataScript").onmousedown'
+id=p9a_4900FC3104_txt_ModeValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,255,255);lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">Mode</DIV><SPAN
+class="hsc.combo.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9a_4900FC3104_rec_DataScript").onmousedown'
+id=p9a_4900FC3104_cmb_ModeValue
+style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: transparent; LEFT: 21.73%; VISIBILITY: hidden; BORDER-BOTTOM-COLOR: transparent; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HSCComboboxBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: rgb(0,0,0); BORDER-TOP-COLOR: transparent; TEXT-INDENT: 2px; PADDING-TOP: 1px; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; BORDER-RIGHT-COLOR: transparent"
+tabIndex=0
+hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:54;lineColor:transparent;lineColorBlink:False;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">Combobox</SPAN>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9a_4900FC3104_rec_DataScript").onmousedown'
+id=p9a_4900FC3104_txt_OPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 48.68%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9a_4900FC3104_rec_DataScript").onmousedown'
+id=p9a_4900FC3104_txt_SPValue
+style="FONT-SIZE: 9pt; LEFT: 21.73%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 22.36%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p9a_4900FC3104_rec_DataScript").onmousedown' id=p9a_4900FC3104_alp_SPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:55;lineColor:transparent;numericDisplayFormat:%.2f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;">9999.99</TEXTAREA><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p9a_4900FC3104_rec_DataScript").onmousedown' id=p9a_4900FC3104_alp_OPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);HDXBINDINGID:56;lineColor:transparent;numberOfChars:9;numericDisplayFormat:%.1f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);">9999.99</TEXTAREA></DIV></DIV>
+<DIV class=hsc.shape.1 id=p9b_4900TY3301
+style="FONT-WEIGHT: 400; FONT-SIZE: 0px; LEFT: 277px; BEHAVIOR: url(#HSCShapeLinkBehavior) url(#HDXVectorFactory#shapelink); WIDTH: 92px; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 179px; HEIGHT: 152px; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;"
+value = "1" src = ".\L4_LSG_FURN_1_files\C200_MF_Automan.sha" parameters =
+"Point?Entity:4900TY3301;Parameter?CP_OP:AUTOMANA.OP;Parameter?CP_Mode:AUTOMANA.MODE;Parameter?CP_ModAttr:AUTOMANA.MODEATTR;Parameter?CP_RedTag:AUTOMANA.REDTAG;Parameter?CP_Windup:AUTOMANA.ARWOP;"
+linkType = "embedded" globalscripts = "" styleClass = "">
+<DIV class=hvg.group.1 id=p9b_4900TY3301_grp_C200MFAutoman
+style="FONT-SIZE: 0pt; LEFT: 0%; BEHAVIOR: url(#HDXVectorFactory#group); WIDTH: 100%; POSITION: absolute; TOP: 0%; HEIGHT: 100%"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;Height:152;lineColorBlink:False;Width:92;">
+<DIV class=hsc.alarmstate.1 id=p9b_4900TY3301_alarmstate title=""
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 65.21%; VISIBILITY: hidden; BEHAVIOR: url(#AlarmStateIconFactory#AlarmIcon) url(#BindingBehavior); WIDTH: 19.56%; FONT-STYLE: normal; FONT-FAMILY: Arial; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 40.78%; HEIGHT: 11.84%; TEXT-ALIGN: center; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="acknowledged:True;HDXBINDINGID:8;priority:3;quality:0;rtn:False;showDisableIcon:False;showTooltip:False;sizeableIcon:True;staticIcon:False;"
+ObjectType="6"></DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1 FrameMF" id=p9b_4900TY3301_frame
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 0%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 98.91%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:9;Height:150;LineColor:rgb(225,225,225);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:FrameMF;Width:91;"></DIV>
+<DIV class="hvg.base.1 FocusC200 HSC.ScriptDataObject.1" id=p9b_4900TY3301_focus
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 95.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 97.36%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,230,210);fillColorBlink:False;FillStyle:0;HDXBINDINGID:10;Height:148;LineColor:rgb(0,0,0);lineColorBlink:False;LineStyle:1;LineWidth:2;styleClass:FocusC200;Width:88;"
+onupdate="VBScript:call GSH_C200_GROUPAUTOMAN_ONUPDATE(me.parentElement.parentElement, 1)"></DIV>
+<DIV class=hvg.base.1 id=p9b_4900TY3301_outline
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 15.21%; BEHAVIOR: url(#HDXVectorFactory#roundrect); OVERFLOW: hidden; WIDTH: 70.65%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 48.02%; HEIGHT: 11.84%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:18;LineColor:#b4b4b4;lineColorBlink:False;LineWidth:1;Roundness:80;Width:65;"></DIV>
+<DIV class="hvg.base.1 AlarmEmergColor" id=p9b_4900TY3301_plg_EAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 3.26%; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 17.39%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 40.78%; HEIGHT: 10.52%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,0,0);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,0,0);lineColorBlink:False;LineStyle:1;points:0.000000 50.000000 50.000000 100.000000 50.000000 100.000000 100.000000 50.000000 100.000000 50.000000 50.000000 0.000000 ;styleClass:AlarmEmergColor;Width:16;"></DIV>
+<DIV class="hvg.textbox.1 AlarmEmergText" id=p9b_4900TY3301_txt_EAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 6.52%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TOP: 41.44%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(255,190,0);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmEmergText;textColor:rgb(255,255,255);textColorBlink:False;TotalRotation:0;Width:12;">U</DIV>
+<DIV class="hvg.base.1 AlarmHighColor" id=p9b_4900TY3301_rec_HAlarm
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 5.43%; BEHAVIOR: url(#HDXVectorFactory#rect); OVERFLOW: hidden; WIDTH: 13.04%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 42.1%; HEIGHT: 7.89%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255,160,0);fillColorBlink:False;Height:12;LineColor:rgb(255,160,0);lineColorBlink:False;LineStyle:1;styleClass:AlarmHighColor;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmHighText" id=p9b_4900TY3301_txt_HAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 7.6%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 11.95%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 41.44%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="fillColorBlink:False;FillStyle:1;Height:12;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmHighText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:11;">H</DIV>
+<DIV class="hvg.base.1 AlarmLowColor" id=p9b_4900TY3301_ovl_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 5.43%; BEHAVIOR: url(#HDXVectorFactory#oval); OVERFLOW: hidden; WIDTH: 13.04%; FONT-FAMILY: Arial; POSITION: absolute; TOP: 42.1%; HEIGHT: 7.89%"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:0;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:1;LineWidth:1;styleClass:AlarmLowColor;textColor:rgb(0,0,0);textColorBlink:False;Width:12;"></DIV>
+<DIV class="hvg.textbox.1 AlarmLowText" id=p9b_4900TY3301_txt_LAlarm
+style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; LEFT: 6.52%; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 13.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 41.44%; HEIGHT: 7.89%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(51,170,255);fillColorBlink:False;FillStyle:1;Height:12;LineColor:rgb(51,170,255);lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:AlarmLowText;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:12;">L</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p9b_4900TY3301_txt_tagname
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 1.97%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">TagName</DIV>
+<DIV class="hvg.textbox.1 Group_DataDisplay" id=p9b_4900TY3301_txt_keyword
+style="FONT-SIZE: 9pt; LEFT: 1.08%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 97.82%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 11.84%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(235,235,235);fillColorBlink:False;FillStyle:1;Height:16;LineColor:rgb(235,235,235);lineColorBlink:False;LineStyle:0;LineWidth:1;styleClass:Group_DataDisplay;textColor:rgb(0,0,0);textColorBlink:False;TotalRotation:0;Width:90;">Keyword</DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p9b_4900TY3301_plg_OpLow
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 0 50 100 0 0 100 0 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.base.1 OffNormalLineFill" id=p9b_4900TY3301_plg_OpHigh
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 85.86%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#polygon); OVERFLOW: hidden; WIDTH: 10.86%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 50.65%; HEIGHT: 6.57%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:rgb(176,0,176);fillColorBlink:False;Height:10;LineColor:rgb(176,0,176);lineColorBlink:False;points:100 100 50 0 0 100 100 100 ;styleClass:OffNormalLineFill;Width:10;"></DIV>
+<DIV class="hvg.textbox.1 OffNormalText" id=p9b_4900TY3301_txt_Initialization
+style="FONT-WEIGHT: bold; FONT-SIZE: 16pt; LEFT: 84.78%; VISIBILITY: hidden; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 9.78%; COLOR: #b000b0; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.84%; HEIGHT: 9.21%; TEXT-ALIGN: left"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;Height:14;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:0;styleClass:OffNormalText;textColor:rgb(176,0,176);textColorBlink:False;TotalRotation:0;Width:9;">*</DIV>
+<DIV class="hvg.base.1 HSC.ScriptDataObject.1" id=p9b_4900TY3301_rec_DataScript
+style="FONT-WEIGHT: 400; FONT-SIZE: 12pt; LEFT: 1.08%; BEHAVIOR: url(#HDXVectorFactory#rect) url(#HSCScriptDataBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 97.82%; FONT-STYLE: normal; FONT-FAMILY: Arial; POSITION: absolute; TOP: 0.65%; HEIGHT: 98.68%; TEXT-DECORATION: none"
+tabIndex=-1
+hdxproperties="FillColor:transparent;fillColorBlink:False;FillStyle:1;HDXBINDINGID:11;Height:150;LineColor:transparent;lineColorBlink:False;LineStyle:0;LineWidth:2;Width:90;"
+onupdate="VBScript:call GSH_C200_GROUPAUTOMAN_ONUPDATE(me.parentElement.parentElement, 0)"></DIV><TEXTAREA class="hsc.alpha.1 Group_DataEntry" onmousedown='VBScript:me.parentElement.parentElement.objects("p9b_4900TY3301_rec_DataScript").onmousedown' id=p9b_4900TY3301_alp_OPValue style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; LEFT: 6.52%; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HDXAlphaBehavior) url(#BindingBehavior) url(#HoverBehavior); OVERFLOW: hidden; WIDTH: 86.95%; COLOR: rgb(0,0,0); BORDER-TOP-STYLE: none; PADDING-TOP: 1px; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 84.86%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; WORD-WRAP: normal; BORDER-BOTTOM-STYLE: none; ROWS: 1" tabIndex=0 hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);HDXBINDINGID:12;indicateScanState:0;lineColor:transparent;numberOfChars:9;numericDisplayFormat:%.1f;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);">9999.99</TEXTAREA>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9b_4900TY3301_rec_DataScript").onmousedown'
+id=p9b_4900TY3301_txt_OPValue
+style="FONT-SIZE: 9pt; LEFT: 19.56%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 49.34%; HEIGHT: 9.86%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:15;lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">9999.99</DIV>
+<DIV class="hvg.textbox.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9b_4900TY3301_rec_DataScript").onmousedown'
+id=p9b_4900TY3301_txt_ModeValue
+style="FONT-SIZE: 9pt; LEFT: 19.56%; VISIBILITY: visible; BEHAVIOR: url(#HDXVectorFactory#text); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: #000000; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; TEXT-ALIGN: center"
+tabIndex=-1
+hdxproperties="FillColor:rgb(255, 255, 255);fillColorBlink:False;FillStyle:0;Height:16;LineColor:rgb(255,255,255);lineColorBlink:False;LineStyle:0;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;TotalRotation:0;Width:58;">Mode</DIV><SPAN
+class="hsc.combo.1 Group_DataEntry"
+onmousedown='VBScript:me.parentElement.parentElement.objects("p9b_4900TY3301_rec_DataScript").onmousedown'
+id=p9b_4900TY3301_cmb_ModeValue
+style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: transparent; LEFT: 19.56%; VISIBILITY: hidden; BORDER-BOTTOM-COLOR: transparent; PADDING-BOTTOM: 1px; BEHAVIOR: url(#HSCComboboxBehavior) url(#BindingBehavior); OVERFLOW: hidden; WIDTH: 63.04%; COLOR: rgb(0,0,0); BORDER-TOP-COLOR: transparent; TEXT-INDENT: 2px; PADDING-TOP: 1px; FONT-FAMILY: Arial; POSITION: absolute; TOP: 61.18%; HEIGHT: 10.52%; BACKGROUND-COLOR: rgb(255,255,255); TEXT-ALIGN: center; BORDER-RIGHT-COLOR: transparent"
+tabIndex=0
+hdxproperties="borderStyle:none;borderWidth:1;fillColor:rgb(255, 255, 255);fillColorBlink:False;HDXBINDINGID:13;lineColor:transparent;lineColorBlink:False;styleClass:Group_DataEntry;textColor:rgb(0, 0, 0);textColorBlink:False;"></SPAN></DIV></DIV></DIV></BODY></HTML>
|