From 965811ba115529f651017d4e4e6b83142e48e047 Mon Sep 17 00:00:00 2001 From: "b.peck" Date: Wed, 5 Nov 2025 17:55:25 -0600 Subject: [PATCH] Continued Setup --- .../dcframe-hist/config.json | 8 + .../dcframe-hist/resource.json | 19 + .../alarm-journal/dcframe-journal/config.json | 35 + .../dcframe-journal/resource.json | 19 + .../dcframe-auditlog/config.json | 22 + .../dcframe-auditlog/resource.json | 19 + .../dcframe-db/config.json | 36 + .../dcframe-db/resource.json | 19 + .../identity-provider/temp_0/config.json | 62 + .../identity-provider/temp_0/resource.json | 18 + .../core/ignition/quickstart/resource.json | 4 +- .../ignition/security-properties/config.json | 4 +- .../security-properties/resource.json | 4 +- .../dcframe-db/config.json | 23 + .../dcframe-db/resource.json | 17 + .../ignition/system-properties/resource.json | 4 +- .../Database/dcframe-db/unary-resource.json | 10 + .../Gateway/Database/unary-resource.json | 10 + .../ForwardMetric/unary-resource.json | 10 + .../DataSink/StoreMetric/unary-resource.json | 10 + .../Auditing/DataSink/unary-resource.json | 10 + .../PendingSummary/unary-resource.json | 10 + .../QuarantineSummary/unary-resource.json | 10 + .../StoreMetric/unary-resource.json | 10 + .../LocalCache/TakeMetric/unary-resource.json | 10 + .../DataStores/LocalCache/unary-resource.json | 10 + .../DroppedSummary/unary-resource.json | 10 + .../PendingSummary/unary-resource.json | 10 + .../StoreMetric/unary-resource.json | 10 + .../TakeMetric/unary-resource.json | 10 + .../MemoryBuffer/unary-resource.json | 10 + .../Auditing/DataStores/unary-resource.json | 10 + .../ForwardMetric/unary-resource.json | 10 + .../Pipelines/Auditing/unary-resource.json | 10 + .../dcframe-db/Pipelines/unary-resource.json | 10 + .../StoreMetric/unary-resource.json | 10 + .../dcframe-db/unary-resource.json | 10 + .../StoreAndForward/unary-resource.json | 10 + .../default/Test_Tags/Control/tags.json | 50 + .../Test_Tags/Control/unary-resource.json | 12 + .../default/Test_Tags/udts.json | 465 + .../default/Test_Tags/unary-resource.json | 12 + .../Alarms/Pipelines/Default/tags.json | 30 + .../Pipelines/Default/unary-resource.json | 12 + .../Alarms/Pipelines/unary-resource.json | 10 + .../_Settings/Alarms/unary-resource.json | 10 + .../default/_Settings/tags.json | 11 + .../default/_Settings/unary-resource.json | 12 + .../Plant PAX/SupportDataTypes/udts.json | 646 + .../SupportDataTypes/unary-resource.json | 12 + .../default/Plant PAX/udts.json | 37835 ++++++++++++++++ .../default/Plant PAX/unary-resource.json | 25 + .../tag-type-definition/default/udts.json | 50 + .../default/unary-resource.json | 4 +- .../ignition/user-source/temp_0/config.json | 20 + .../ignition/user-source/temp_0/resource.json | 19 + .../ignition/user-source/temp_0/users.json | 28 + .../local-system-properties/config.json | 2 +- .../local-system-properties/resource.json | 4 +- .../alarm-pipelines/Critical/data.bin | Bin 0 -> 1332 bytes .../alarm-pipelines/Critical/resource.json | 16 + .../alarm-pipelines/Default/data.bin | Bin 0 -> 1330 bytes .../alarm-pipelines/Default/resource.json | 16 + .../alarm-pipelines/Diagnostic/data.bin | Bin 0 -> 1337 bytes .../alarm-pipelines/Diagnostic/resource.json | 16 + .../alarm-pipelines/Notify/data.bin | Bin 0 -> 3891 bytes .../alarm-pipelines/Notify/resource.json | 16 + .../general-properties/data.bin | 15 + .../general-properties/resource.json | 16 + .../page-config/config.json | 81 + .../page-config/resource.json | 16 + .../session-permissions/data.bin | 9 + .../session-permissions/resource.json | 16 + .../session-props/props.json | 92 + .../session-props/resource.json | 16 + .../AdHocTrends/CancelButton/resource.json | 16 + .../AdHocTrends/CancelButton/style.json | 10 + .../CancelButtonMobile/resource.json | 16 + .../AdHocTrends/CancelButtonMobile/style.json | 10 + .../AdHocTrends/Control/resource.json | 16 + .../AdHocTrends/Control/style.json | 7 + .../AdHocTrends/ControlBar/resource.json | 16 + .../AdHocTrends/ControlBar/style.json | 10 + .../AdHocTrends/DropDown/resource.json | 16 + .../AdHocTrends/DropDown/style.json | 8 + .../AdHocTrends/FullRadius/resource.json | 16 + .../AdHocTrends/FullRadius/style.json | 10 + .../FullRadiusMobile/resource.json | 16 + .../AdHocTrends/FullRadiusMobile/style.json | 10 + .../AdHocTrends/FunctionBar/resource.json | 16 + .../AdHocTrends/FunctionBar/style.json | 11 + .../AdHocTrends/FunctionTitle/resource.json | 16 + .../AdHocTrends/FunctionTitle/style.json | 9 + .../AdHocTrends/Header/resource.json | 16 + .../AdHocTrends/Header/style.json | 10 + .../AdHocTrends/HeaderTitle/resource.json | 16 + .../AdHocTrends/HeaderTitle/style.json | 7 + .../AdHocTrends/LeftRadius/resource.json | 16 + .../AdHocTrends/LeftRadius/style.json | 10 + .../LeftRadiusMobile/resource.json | 16 + .../AdHocTrends/LeftRadiusMobile/style.json | 10 + .../AdHocTrends/MobileControl/resource.json | 16 + .../AdHocTrends/MobileControl/style.json | 7 + .../MobileControlBar/resource.json | 16 + .../AdHocTrends/MobileControlBar/style.json | 10 + .../MobileFunctionBar/resource.json | 16 + .../AdHocTrends/MobileFunctionBar/style.json | 11 + .../AdHocTrends/RightRadius/resource.json | 16 + .../AdHocTrends/RightRadius/style.json | 10 + .../RightRadiusMobile/resource.json | 16 + .../AdHocTrends/RightRadiusMobile/style.json | 10 + .../AdHocTrends/SaveLoadButton/resource.json | 16 + .../AdHocTrends/SaveLoadButton/style.json | 10 + .../SaveLoadButtonMobile/resource.json | 16 + .../SaveLoadButtonMobile/style.json | 10 + .../AlarmAnalysis/Label/data.bin | 1 + .../AlarmAnalysis/Label/resource.json | 16 + .../style-classes/AlarmJournal/Ack/data.bin | 1 + .../AlarmJournal/Ack/resource.json | 16 + .../AlarmJournal/Active_Ack/data.bin | 1 + .../AlarmJournal/Active_Ack/resource.json | 16 + .../AlarmJournal/Active_Unack/data.bin | 1 + .../AlarmJournal/Active_Unack/resource.json | 16 + .../AlarmJournal/Clear_Ack/data.bin | 1 + .../AlarmJournal/Clear_Ack/resource.json | 16 + .../AlarmJournal/Clear_Unack/data.bin | 1 + .../AlarmJournal/Clear_Unack/resource.json | 16 + .../style-classes/AlarmJournal/None/data.bin | 1 + .../AlarmJournal/None/resource.json | 16 + .../Framework/Card/Bold_Text/data.bin | 1 + .../Framework/Card/Bold_Text/resource.json | 16 + .../Framework/Card/Card/data.bin | 1 + .../Framework/Card/Card/resource.json | 16 + .../Framework/Card/Embedded/resource.json | 16 + .../Framework/Card/Embedded/style.json | 7 + .../Framework/Card/Item/data.bin | 1 + .../Framework/Card/Item/resource.json | 16 + .../Framework/Card/Item_Border/data.bin | 1 + .../Framework/Card/Item_Border/resource.json | 16 + .../Framework/Card/Label/resource.json | 16 + .../Framework/Card/Label/style.json | 12 + .../Framework/Card/Row/resource.json | 16 + .../Framework/Card/Row/style.json | 7 + .../Framework/Card/Title/data.bin | 1 + .../Framework/Card/Title/resource.json | 16 + .../Framework/Card/Value/resource.json | 16 + .../Framework/Card/Value/style.json | 10 + .../Framework/TableCardLayout/Label/data.bin | 1 + .../TableCardLayout/Label/resource.json | 16 + .../style-classes/HMI_Clickable/data.bin | 1 + .../style-classes/HMI_Clickable/resource.json | 16 + .../style-classes/HMI_Fault/data.bin | 1 + .../style-classes/HMI_Fault/resource.json | 16 + .../style-classes/Header/data.bin | 1 + .../style-classes/Header/resource.json | 16 + .../High_Performance_HMI_On/data.bin | 1 + .../High_Performance_HMI_On/resource.json | 16 + .../style-classes/Menu/data.bin | 1 + .../style-classes/Menu/resource.json | 16 + .../style-classes/Menu_Action/data.bin | 1 + .../style-classes/Menu_Action/resource.json | 16 + .../style-classes/Menu_All_Header/data.bin | 1 + .../Menu_All_Header/resource.json | 16 + .../style-classes/Menu_Item/data.bin | 1 + .../style-classes/Menu_Item/resource.json | 16 + .../style-classes/Menu_Item_Selected/data.bin | 1 + .../Menu_Item_Selected/resource.json | 16 + .../style-classes/Menu_Tab/data.bin | 1 + .../style-classes/Menu_Tab/resource.json | 16 + .../style-classes/Menu_Tab_Selected/data.bin | 1 + .../Menu_Tab_Selected/resource.json | 16 + .../General/InOutStateOff/resource.json | 16 + .../Popups/General/InOutStateOff/style.json | 7 + .../Popups/General/InOutStateOn/resource.json | 16 + .../Popups/General/InOutStateOn/style.json | 7 + .../Popups/General/background/resource.json | 16 + .../Popups/General/background/style.json | 7 + .../Popups/General/core/resource.json | 16 + .../Popups/General/core/style.json | 7 + .../Popups/General/description/resource.json | 16 + .../Popups/General/description/style.json | 8 + .../Popups/General/label/resource.json | 16 + .../Popups/General/label/style.json | 10 + .../Popups/Icons/faulted/resource.json | 16 + .../Popups/Icons/faulted/style.json | 17 + .../Popups/Icons/normal/resource.json | 16 + .../Popups/Icons/normal/style.json | 7 + .../Popups/Navigation/Selected/resource.json | 16 + .../Popups/Navigation/Selected/style.json | 7 + .../Navigation/Unselected/resource.json | 16 + .../Popups/Navigation/Unselected/style.json | 7 + .../Popups/background/resource.json | 16 + .../Popups/background/style.json | 7 + .../style-classes/Popups/core/resource.json | 16 + .../style-classes/Popups/core/style.json | 7 + .../AdHocTrends/AdHocTrends/resource.json | 17 + .../AdHocTrends/AdHocTrends/thumbnail.png | Bin 0 -> 14595 bytes .../views/AdHocTrends/AdHocTrends/view.json | 4520 ++ .../Alarm Analysis/resource.json | 17 + .../Alarm Analysis/thumbnail.png | Bin 0 -> 600 bytes .../Alarm Analysis/Alarm Analysis/view.json | 2630 ++ .../Alarm Summary Card/resource.json | 17 + .../Alarm Summary Card/thumbnail.png | Bin 0 -> 3883 bytes .../Alarm Summary Card/view.json | 552 + .../Alarm Journal/Alarm Journal/resource.json | 17 + .../Alarm Journal/Alarm Journal/thumbnail.png | Bin 0 -> 57757 bytes .../Alarm Journal/Alarm Journal/view.json | 574 + .../views/Alarm Journal/Alarms/resource.json | 17 + .../views/Alarm Journal/Alarms/thumbnail.png | Bin 0 -> 31671 bytes .../views/Alarm Journal/Alarms/view.json | 45 + .../views/Alarm Journal/Card/resource.json | 17 + .../views/Alarm Journal/Card/thumbnail.png | Bin 0 -> 4184 bytes .../views/Alarm Journal/Card/view.json | 487 + .../views/Alarm Journal/State/resource.json | 17 + .../views/Alarm Journal/State/thumbnail.png | Bin 0 -> 470 bytes .../views/Alarm Journal/State/view.json | 140 + .../views/Audit Log/Audit Log/resource.json | 17 + .../views/Audit Log/Audit Log/thumbnail.png | Bin 0 -> 77463 bytes .../views/Audit Log/Audit Log/view.json | 372 + .../views/Audit Log/Card/resource.json | 17 + .../views/Audit Log/Card/thumbnail.png | Bin 0 -> 2950 bytes .../views/Audit Log/Card/view.json | 508 + .../Diagnostics/Diagnostics/resource.json | 17 + .../Diagnostics/Diagnostics/thumbnail.png | Bin 0 -> 63907 bytes .../views/Diagnostics/Diagnostics/view.json | 174 + .../Embedded/Database/resource.json | 17 + .../Embedded/Database/thumbnail.png | Bin 0 -> 7728 bytes .../Diagnostics/Embedded/Database/view.json | 628 + .../Embedded/Databases/resource.json | 17 + .../Embedded/Databases/thumbnail.png | Bin 0 -> 27813 bytes .../Diagnostics/Embedded/Databases/view.json | 56 + .../Diagnostics/Embedded/Device/resource.json | 17 + .../Diagnostics/Embedded/Device/thumbnail.png | Bin 0 -> 6149 bytes .../Diagnostics/Embedded/Device/view.json | 1808 + .../Gateway Network Connection/resource.json | 17 + .../Gateway Network Connection/thumbnail.png | Bin 0 -> 2432 bytes .../Gateway Network Connection/view.json | 289 + .../Gateway Network Connections/resource.json | 17 + .../Gateway Network Connections/thumbnail.png | Bin 0 -> 4542 bytes .../Gateway Network Connections/view.json | 59 + .../Diagnostics/Embedded/Label/resource.json | 17 + .../Diagnostics/Embedded/Label/thumbnail.png | Bin 0 -> 546 bytes .../Diagnostics/Embedded/Label/view.json | 69 + .../Embedded/OPC Device/resource.json | 17 + .../Embedded/OPC Device/thumbnail.png | Bin 0 -> 2247 bytes .../Diagnostics/Embedded/OPC Device/view.json | 348 + .../Embedded/OPC Devices/resource.json | 17 + .../Embedded/OPC Devices/thumbnail.png | Bin 0 -> 4493 bytes .../Embedded/OPC Devices/view.json | 59 + .../Embedded/OPC Server/resource.json | 17 + .../Embedded/OPC Server/thumbnail.png | Bin 0 -> 2522 bytes .../Diagnostics/Embedded/OPC Server/view.json | 405 + .../Embedded/OPC Servers/resource.json | 17 + .../Embedded/OPC Servers/thumbnail.png | Bin 0 -> 4185 bytes .../Embedded/OPC Servers/view.json | 59 + .../Embedded/Redundancy/resource.json | 17 + .../Embedded/Redundancy/thumbnail.png | Bin 0 -> 2942 bytes .../Diagnostics/Embedded/Redundancy/view.json | 576 + .../Embedded/Session/resource.json | 17 + .../Embedded/Session/thumbnail.png | Bin 0 -> 4839 bytes .../Diagnostics/Embedded/Session/view.json | 880 + .../Embedded/System Performance/resource.json | 17 + .../Embedded/System Performance/thumbnail.png | Bin 0 -> 3296 bytes .../Embedded/System Performance/view.json | 603 + .../Diagnostics/Embedded/System/resource.json | 17 + .../Diagnostics/Embedded/System/thumbnail.png | Bin 0 -> 4454 bytes .../Diagnostics/Embedded/System/view.json | 478 + .../views/Docks/Alarm Windows/resource.json | 17 + .../views/Docks/Alarm Windows/thumbnail.png | Bin 0 -> 3926 bytes .../views/Docks/Alarm Windows/view.json | 98 + .../views/Docks/Menu/resource.json | 17 + .../views/Docks/Menu/thumbnail.png | Bin 0 -> 11502 bytes .../views/Docks/Menu/view.json | 187 + .../views/Docks/Site Menu/resource.json | 17 + .../views/Docks/Site Menu/thumbnail.png | Bin 0 -> 5735 bytes .../views/Docks/Site Menu/view.json | 100 + .../views/Framework/Card/Card/resource.json | 17 + .../views/Framework/Card/Card/thumbnail.png | Bin 0 -> 1738 bytes .../views/Framework/Card/Card/view.json | 131 + .../Table Card Layout/Cards/resource.json | 17 + .../Table Card Layout/Cards/thumbnail.png | Bin 0 -> 5352 bytes .../Table Card Layout/Cards/view.json | 123 + .../Responsive View/resource.json | 17 + .../Responsive View/thumbnail.png | Bin 0 -> 2534 bytes .../Responsive View/view.json | 185 + .../Table Card Layout/Table/resource.json | 17 + .../Table Card Layout/Table/thumbnail.png | Bin 0 -> 3194 bytes .../Table Card Layout/Table/view.json | 151 + .../Header/Header BP Large/resource.json | 17 + .../Header/Header BP Large/thumbnail.png | Bin 0 -> 4342 bytes .../views/Header/Header BP Large/view.json | 48 + .../Header/Header BP Medium/resource.json | 17 + .../Header/Header BP Medium/thumbnail.png | Bin 0 -> 2016 bytes .../views/Header/Header BP Medium/view.json | 51 + .../views/Header/Header/resource.json | 17 + .../views/Header/Header/thumbnail.png | Bin 0 -> 3495 bytes .../views/Header/Header/view.json | 613 + .../Header/Popups/Acknowledge/resource.json | 17 + .../Header/Popups/Acknowledge/thumbnail.png | Bin 0 -> 1023 bytes .../views/Header/Popups/Acknowledge/view.json | 247 + .../views/Header/Popups/Alarms/resource.json | 17 + .../views/Header/Popups/Alarms/thumbnail.png | Bin 0 -> 9603 bytes .../views/Header/Popups/Alarms/view.json | 199 + .../views/Header/Popups/Options/resource.json | 17 + .../views/Header/Popups/Options/thumbnail.png | Bin 0 -> 515 bytes .../views/Header/Popups/Options/view.json | 187 + .../Header/Popups/Popup Title/resource.json | 17 + .../Header/Popups/Popup Title/thumbnail.png | Bin 0 -> 1280 bytes .../views/Header/Popups/Popup Title/view.json | 120 + .../Alarm Summary Report/resource.json | 17 + .../Alarm Summary Report/thumbnail.png | Bin 0 -> 60369 bytes .../Alarm Summary Report/view.json | 27 + .../views/Main Windows/CDP/resource.json | 17 + .../views/Main Windows/CDP/thumbnail.png | Bin 0 -> 22274 bytes .../views/Main Windows/CDP/view.json | 2566 ++ .../Main Windows/Embedded/Title/resource.json | 17 + .../Main Windows/Embedded/Title/thumbnail.png | Bin 0 -> 297 bytes .../Main Windows/Embedded/Title/view.json | 94 + .../views/Main Windows/L24_CDP/resource.json | 17 + .../views/Main Windows/L24_CDP/thumbnail.png | Bin 0 -> 42212 bytes .../views/Main Windows/L24_CDP/view.json | 2452 + .../views/Main Windows/Map/resource.json | 17 + .../views/Main Windows/Map/thumbnail.png | Bin 0 -> 165633 bytes .../views/Main Windows/Map/view.json | 794 + .../PlantPAX_Instances/resource.json | 17 + .../PlantPAX_Instances/thumbnail.png | Bin 0 -> 57633 bytes .../Main Windows/PlantPAX_Instances/view.json | 898 + .../Popup/Examples/CV_Control/resource.json | 17 + .../Popup/Examples/CV_Control/thumbnail.png | Bin 0 -> 20174 bytes .../Popup/Examples/CV_Control/view.json | 645 + .../Popup/Examples/Chiller Data/resource.json | 17 + .../Popup/Examples/Chiller Data/thumbnail.png | Bin 0 -> 23737 bytes .../Popup/Examples/Chiller Data/view.json | 1085 + .../Popup/Examples/SDV_Control/resource.json | 17 + .../Popup/Examples/SDV_Control/thumbnail.png | Bin 0 -> 7976 bytes .../Popup/Examples/SDV_Control/view.json | 613 + .../Popup/Examples/Trend/resource.json | 17 + .../Popup/Examples/Trend/thumbnail.png | Bin 0 -> 2291 bytes .../Popup/Examples/Trend/view.json | 82 + .../Examples/Valve_Control/resource.json | 17 + .../Examples/Valve_Control/thumbnail.png | Bin 0 -> 5462 bytes .../Popup/Examples/Valve_Control/view.json | 430 + .../views/Main Windows/hmidemo/resource.json | 17 + .../views/Main Windows/hmidemo/thumbnail.png | Bin 0 -> 34371 bytes .../views/Main Windows/hmidemo/view.json | 1533 + .../Faceplates/AnalogInput/resource.json | 17 + .../Faceplates/AnalogInput/thumbnail.png | Bin 0 -> 1377 bytes .../Faceplates/AnalogInput/view.json | 153 + .../AnalogInputClassic/resource.json | 17 + .../AnalogInputClassic/thumbnail.png | Bin 0 -> 871 bytes .../Faceplates/AnalogInputClassic/view.json | 188 + .../Faceplates/AnalogInput_OLD/resource.json | 17 + .../Faceplates/AnalogInput_OLD/thumbnail.png | Bin 0 -> 96 bytes .../Faceplates/AnalogInput_OLD/view.json | 77 + .../Faceplates/AnalogTrend/resource.json | 17 + .../Faceplates/AnalogTrend/thumbnail.png | Bin 0 -> 83 bytes .../Faceplates/AnalogTrend/view.json | 208 + .../Faceplates/DigitalInput/resource.json | 17 + .../Faceplates/DigitalInput/thumbnail.png | Bin 0 -> 1105 bytes .../Faceplates/DigitalInput/view.json | 212 + .../DigitalInputClassic/resource.json | 17 + .../DigitalInputClassic/thumbnail.png | Bin 0 -> 773 bytes .../Faceplates/DigitalInputClassic/view.json | 192 + .../Faceplates/DigitalOutput/resource.json | 17 + .../Faceplates/DigitalOutput/thumbnail.png | Bin 0 -> 83 bytes .../Faceplates/DigitalOutput/view.json | 153 + .../Plant PAX/Faceplates/Motor/resource.json | 17 + .../Plant PAX/Faceplates/Motor/thumbnail.png | Bin 0 -> 1893 bytes .../Plant PAX/Faceplates/Motor/view.json | 273 + .../Faceplates/P_AIn/P_AIn1/resource.json | 17 + .../Faceplates/P_AIn/P_AIn1/thumbnail.png | Bin 0 -> 694 bytes .../Faceplates/P_AIn/P_AIn1/view.json | 418 + .../Faceplates/P_AOut/P_AOut1/resource.json | 17 + .../Faceplates/P_AOut/P_AOut1/thumbnail.png | Bin 0 -> 488 bytes .../Faceplates/P_AOut/P_AOut1/view.json | 510 + .../P_DIn1_20220525_0041/resource.json | 17 + .../P_DIn1_20220525_0041/thumbnail.png | Bin 0 -> 2148 bytes .../Archive/P_DIn1_20220525_0041/view.json | 286 + .../Faceplates/P_DIn/P_DIn1/resource.json | 17 + .../Faceplates/P_DIn/P_DIn1/thumbnail.png | Bin 0 -> 684 bytes .../Faceplates/P_DIn/P_DIn1/view.json | 296 + .../P_DIn/P_DIn1Circle/resource.json | 17 + .../P_DIn/P_DIn1Circle/thumbnail.png | Bin 0 -> 254 bytes .../Faceplates/P_DIn/P_DIn1Circle/view.json | 329 + .../P_DIn/P_DIn1CircleWLabel/resource.json | 17 + .../P_DIn/P_DIn1CircleWLabel/thumbnail.png | Bin 0 -> 571 bytes .../P_DIn/P_DIn1CircleWLabel/view.json | 370 + .../P_DOut1_20220524_2107/resource.json | 17 + .../P_DOut1_20220524_2107/thumbnail.png | Bin 0 -> 1523 bytes .../Archive/P_DOut1_20220524_2107/view.json | 342 + .../Faceplates/P_DOut/P_DOut1/resource.json | 17 + .../Faceplates/P_DOut/P_DOut1/thumbnail.png | Bin 0 -> 516 bytes .../Faceplates/P_DOut/P_DOut1/view.json | 432 + .../P_Motor/P_Motor_InlineL/resource.json | 17 + .../P_Motor/P_Motor_InlineL/thumbnail.png | Bin 0 -> 1560 bytes .../P_Motor/P_Motor_InlineL/view.json | 486 + .../P_Motor/P_Motor_InlineR/resource.json | 17 + .../P_Motor/P_Motor_InlineR/thumbnail.png | Bin 0 -> 1563 bytes .../P_Motor/P_Motor_InlineR/view.json | 487 + .../P_Motor/P_Motor_InlineU/resource.json | 17 + .../P_Motor/P_Motor_InlineU/thumbnail.png | Bin 0 -> 1680 bytes .../P_Motor/P_Motor_InlineU/view.json | 481 + .../P_Motor/P_Motor_MotorD/resource.json | 17 + .../P_Motor/P_Motor_MotorD/thumbnail.png | Bin 0 -> 1637 bytes .../P_Motor/P_Motor_MotorD/view.json | 608 + .../P_Motor/P_Motor_MotorR/resource.json | 17 + .../P_Motor/P_Motor_MotorR/thumbnail.png | Bin 0 -> 1591 bytes .../P_Motor/P_Motor_MotorR/view.json | 593 + .../P_Motor/P_Motor_MotorU/resource.json | 17 + .../P_Motor/P_Motor_MotorU/thumbnail.png | Bin 0 -> 1541 bytes .../P_Motor/P_Motor_MotorU/view.json | 598 + .../P_Motor/P_Motor_PumpL/resource.json | 17 + .../P_Motor/P_Motor_PumpL/thumbnail.png | Bin 0 -> 1024 bytes .../P_Motor/P_Motor_PumpL/view.json | 553 + .../P_Motor/P_Motor_PumpR/resource.json | 17 + .../P_Motor/P_Motor_PumpR/thumbnail.png | Bin 0 -> 1302 bytes .../P_Motor/P_Motor_PumpR/view.json | 552 + .../P_Motor/P_Motor_PumpU/resource.json | 17 + .../P_Motor/P_Motor_PumpU/thumbnail.png | Bin 0 -> 84 bytes .../P_Motor/P_Motor_PumpU/view.json | 561 + .../Faceplates/P_PIDE/P_PIDE/resource.json | 17 + .../Faceplates/P_PIDE/P_PIDE/thumbnail.png | Bin 0 -> 84 bytes .../Faceplates/P_PIDE/P_PIDE/view.json | 604 + .../P_VSD/P_VSD_MotorD/resource.json | 17 + .../P_VSD/P_VSD_MotorD/thumbnail.png | Bin 0 -> 2620 bytes .../Faceplates/P_VSD/P_VSD_MotorD/view.json | 685 + .../P_VSD/P_VSD_MotorR/resource.json | 17 + .../P_VSD/P_VSD_MotorR/thumbnail.png | Bin 0 -> 2585 bytes .../Faceplates/P_VSD/P_VSD_MotorR/view.json | 671 + .../P_VSD/P_VSD_MotorU/resource.json | 17 + .../P_VSD/P_VSD_MotorU/thumbnail.png | Bin 0 -> 2615 bytes .../Faceplates/P_VSD/P_VSD_MotorU/view.json | 676 + .../P_VSD/P_VSD_PumpL/resource.json | 17 + .../P_VSD/P_VSD_PumpL/thumbnail.png | Bin 0 -> 2814 bytes .../Faceplates/P_VSD/P_VSD_PumpL/view.json | 631 + .../P_VSD/P_VSD_PumpR/resource.json | 17 + .../P_VSD/P_VSD_PumpR/thumbnail.png | Bin 0 -> 1683 bytes .../Faceplates/P_VSD/P_VSD_PumpR/view.json | 630 + .../P_VSD/P_VSD_PumpU/resource.json | 17 + .../P_VSD/P_VSD_PumpU/thumbnail.png | Bin 0 -> 2736 bytes .../Faceplates/P_VSD/P_VSD_PumpU/view.json | 642 + .../P_ValveC/Archive/P_ValveSO/resource.json | 17 + .../P_ValveC/Archive/P_ValveSO/thumbnail.png | Bin 0 -> 1647 bytes .../P_ValveC/Archive/P_ValveSO/view.json | 721 + .../P_ValveC/P_ValveC/resource.json | 17 + .../P_ValveC/P_ValveC/thumbnail.png | Bin 0 -> 2081 bytes .../Faceplates/P_ValveC/P_ValveC/view.json | 726 + .../P_ValveC/P_ValveC_VerLeft/resource.json | 17 + .../P_ValveC/P_ValveC_VerLeft/thumbnail.png | Bin 0 -> 1882 bytes .../P_ValveC/P_ValveC_VerLeft/view.json | 759 + .../P_ValveC/P_ValveC_VerRight/resource.json | 17 + .../P_ValveC/P_ValveC_VerRight/thumbnail.png | Bin 0 -> 1848 bytes .../P_ValveC/P_ValveC_VerRight/view.json | 757 + .../P_ValveSO/Archive/P_ValveSO/resource.json | 17 + .../P_ValveSO/Archive/P_ValveSO/thumbnail.png | Bin 0 -> 491 bytes .../P_ValveSO/Archive/P_ValveSO/view.json | 385 + .../Archive/P_ValveSO_Block (1)/resource.json | 17 + .../Archive/P_ValveSO_Block (1)/thumbnail.png | Bin 0 -> 263 bytes .../Archive/P_ValveSO_Block (1)/view.json | 310 + .../Archive/P_ValveSO_Block/resource.json | 17 + .../Archive/P_ValveSO_Block/thumbnail.png | Bin 0 -> 264 bytes .../Archive/P_ValveSO_Block/view.json | 310 + .../P_ValveSO/P_ValveSO/resource.json | 17 + .../P_ValveSO/P_ValveSO/thumbnail.png | Bin 0 -> 411 bytes .../Faceplates/P_ValveSO/P_ValveSO/view.json | 371 + .../P_ValveSO/P_ValveSO_Block/resource.json | 17 + .../P_ValveSO/P_ValveSO_Block/thumbnail.png | Bin 0 -> 265 bytes .../P_ValveSO/P_ValveSO_Block/view.json | 310 + .../P_ValveSO/P_ValveSO_Hor/resource.json | 17 + .../P_ValveSO/P_ValveSO_Hor/thumbnail.png | Bin 0 -> 1443 bytes .../P_ValveSO/P_ValveSO_Hor/view.json | 3141 ++ .../P_ValveSO/P_ValveSO_VerLeft/resource.json | 17 + .../P_ValveSO/P_ValveSO_VerLeft/thumbnail.png | Bin 0 -> 2008 bytes .../P_ValveSO/P_ValveSO_VerLeft/view.json | 3101 ++ .../P_ValveSO_VerRight/resource.json | 17 + .../P_ValveSO_VerRight/thumbnail.png | Bin 0 -> 85 bytes .../P_ValveSO/P_ValveSO_VerRight/view.json | 3101 ++ .../Faceplates/ValveSolenoid/resource.json | 17 + .../Faceplates/ValveSolenoid/thumbnail.png | Bin 0 -> 1460 bytes .../Faceplates/ValveSolenoid/view.json | 289 + .../Process_PVwSP_DoNotUse/resource.json | 17 + .../Process_PVwSP_DoNotUse/thumbnail.png | Bin 0 -> 8144 bytes .../Archive/Process_PVwSP_DoNotUse/view.json | 444 + .../Process_PIDE/resource.json | 17 + .../Process_PIDE/thumbnail.png | Bin 0 -> 7280 bytes .../00_Trend_Popups/Process_PIDE/view.json | 933 + .../Process_PVCapture/resource.json | 17 + .../Process_PVCapture/thumbnail.png | Bin 0 -> 4413 bytes .../Process_PVCapture/view.json | 387 + .../Process_PVwSP/resource.json | 17 + .../Process_PVwSP/thumbnail.png | Bin 0 -> 6848 bytes .../00_Trend_Popups/Process_PVwSP/view.json | 511 + .../Process_PVwSP_DoNotUse/resource.json | 17 + .../Process_PVwSP_DoNotUse/thumbnail.png | Bin 0 -> 8144 bytes .../Process_PVwSP_DoNotUse/view.json | 444 + .../GO_AlarmDisplay/resource.json | 17 + .../GO_AlarmDisplay/thumbnail.png | Bin 0 -> 347 bytes .../GO_AlarmDisplay/view.json | 353 + .../GO_ControlVariable/resource.json | 17 + .../GO_ControlVariable/thumbnail.png | Bin 0 -> 238 bytes .../GO_ControlVariable/view.json | 128 + .../GO_LoopModeManualButton/resource.json | 17 + .../GO_LoopModeManualButton/thumbnail.png | Bin 0 -> 70 bytes .../GO_LoopModeManualButton/view.json | 137 + .../GO_PID_CV/resource.json | 17 + .../GO_PID_CV/thumbnail.png | Bin 0 -> 606 bytes .../GO_PID_CV/view.json | 253 + .../GO_PID_PV/resource.json | 17 + .../GO_PID_PV/thumbnail.png | Bin 0 -> 682 bytes .../GO_PID_PV/view.json | 253 + .../GO_PID_SP/resource.json | 17 + .../GO_PID_SP/thumbnail.png | Bin 0 -> 682 bytes .../GO_PID_SP/view.json | 253 + .../GO_SPPVBarGraph/resource.json | 17 + .../GO_SPPVBarGraph/thumbnail.png | Bin 0 -> 1294 bytes .../GO_SPPVBarGraph/view.json | 631 + .../GO_CVDecimalPlaces/resource.json | 17 + .../GO_CVDecimalPlaces/thumbnail.png | Bin 0 -> 278 bytes .../GO_CVDecimalPlaces/view.json | 167 + .../GO_Cfg_Area/resource.json | 16 + .../GO_Cfg_Area/view.json | 142 + .../GO_Cfg_EU/resource.json | 16 + .../GO_Cfg_EU/view.json | 121 + .../GO_Cfg_EUx/resource.json | 16 + .../GO_Cfg_EUx/view.json | 126 + .../GO_Cfg_HasFwdPermObj/resource.json | 17 + .../GO_Cfg_HasFwdPermObj/thumbnail.png | Bin 0 -> 2048 bytes .../GO_Cfg_HasFwdPermObj/view.json | 213 + .../GO_Cfg_HasIntlkObj/resource.json | 17 + .../GO_Cfg_HasIntlkObj/thumbnail.png | Bin 0 -> 323 bytes .../GO_Cfg_HasIntlkObj/view.json | 213 + .../GO_Cfg_HasPermObj/resource.json | 17 + .../GO_Cfg_HasPermObj/thumbnail.png | Bin 0 -> 307 bytes .../GO_Cfg_HasPermObj/view.json | 213 + .../GO_Cfg_HasRevPermObj/resource.json | 17 + .../GO_Cfg_HasRevPermObj/thumbnail.png | Bin 0 -> 2020 bytes .../GO_Cfg_HasRevPermObj/view.json | 213 + .../GO_Cfg_NoSubstPV/resource.json | 17 + .../GO_Cfg_NoSubstPV/thumbnail.png | Bin 0 -> 316 bytes .../GO_Cfg_NoSubstPV/view.json | 213 + .../GO_Cfg_OCmdResets/resource.json | 17 + .../GO_Cfg_OCmdResets/thumbnail.png | Bin 0 -> 254 bytes .../GO_Cfg_OCmdResets/view.json | 213 + .../GO_Cfg_OvrdIntlk/resource.json | 17 + .../GO_Cfg_OvrdIntlk/thumbnail.png | Bin 0 -> 1948 bytes .../GO_Cfg_OvrdIntlk/view.json | 213 + .../GO_Cfg_OvrdPermIntlk/resource.json | 17 + .../GO_Cfg_OvrdPermIntlk/thumbnail.png | Bin 0 -> 2047 bytes .../GO_Cfg_OvrdPermIntlk/view.json | 213 + .../GO_Cfg_RateFiltTC/resource.json | 17 + .../GO_Cfg_RateFiltTC/thumbnail.png | Bin 0 -> 1848 bytes .../GO_Cfg_RateFiltTC/view.json | 162 + .../GO_Cfg_SetTrack/resource.json | 17 + .../GO_Cfg_SetTrack/thumbnail.png | Bin 0 -> 267 bytes .../GO_Cfg_SetTrack/view.json | 213 + .../GO_Cfg_SetTrackOvrdHand/resource.json | 17 + .../GO_Cfg_SetTrackOvrdHand/thumbnail.png | Bin 0 -> 2004 bytes .../GO_Cfg_SetTrackOvrdHand/view.json | 213 + .../GO_Cfg_ShedOnFail/resource.json | 17 + .../GO_Cfg_ShedOnFail/thumbnail.png | Bin 0 -> 232 bytes .../GO_Cfg_ShedOnFail/view.json | 213 + .../GO_Cfg_ShedOnFailToStart/resource.json | 17 + .../GO_Cfg_ShedOnFailToStart/thumbnail.png | Bin 0 -> 213 bytes .../GO_Cfg_ShedOnFailToStart/view.json | 213 + .../GO_Cfg_ShedOnFullStall/resource.json | 17 + .../GO_Cfg_ShedOnFullStall/thumbnail.png | Bin 0 -> 222 bytes .../GO_Cfg_ShedOnFullStall/view.json | 213 + .../GO_Cfg_ShedOnIOFault/resource.json | 17 + .../GO_Cfg_ShedOnIOFault/thumbnail.png | Bin 0 -> 227 bytes .../GO_Cfg_ShedOnIOFault/view.json | 213 + .../GO_Cfg_ShedOnInterlockTrip/resource.json | 17 + .../GO_Cfg_ShedOnInterlockTrip/thumbnail.png | Bin 0 -> 184 bytes .../GO_Cfg_ShedOnInterlockTrip/view.json | 143 + .../GO_Cfg_ShedOnTransitStall/resource.json | 17 + .../GO_Cfg_ShedOnTransitStall/thumbnail.png | Bin 0 -> 228 bytes .../GO_Cfg_ShedOnTransitStall/view.json | 213 + .../GO_Cfg_SimFdbkT/resource.json | 17 + .../GO_Cfg_SimFdbkT/thumbnail.png | Bin 0 -> 1681 bytes .../GO_Cfg_SimFdbkT/view.json | 228 + .../GO_Cfg_StartHornT/resource.json | 17 + .../GO_Cfg_StartHornT/thumbnail.png | Bin 0 -> 1675 bytes .../GO_Cfg_StartHornT/view.json | 162 + .../GO_Cfg_XCmdResets/resource.json | 17 + .../GO_Cfg_XCmdResets/thumbnail.png | Bin 0 -> 271 bytes .../GO_Cfg_XCmdResets/view.json | 213 + .../GO_Desc_Label_Tag/resource.json | 17 + .../GO_Desc_Label_Tag/thumbnail.png | Bin 0 -> 91 bytes .../GO_Desc_Label_Tag/view.json | 245 + .../GO_PVDecimalPlaces/resource.json | 17 + .../GO_PVDecimalPlaces/thumbnail.png | Bin 0 -> 278 bytes .../GO_PVDecimalPlaces/view.json | 167 + .../GO_ProgOperKeep/resource.json | 17 + .../GO_ProgOperKeep/thumbnail.png | Bin 0 -> 409 bytes .../GO_ProgOperKeep/view.json | 713 + .../GO_Cfg_AllowLocal/resource.json | 17 + .../GO_Cfg_AllowLocal/thumbnail.png | Bin 0 -> 2094 bytes .../GO_Cfg_AllowLocal/view.json | 213 + .../GO_Cfg_ExtStopPrio/resource.json | 17 + .../GO_Cfg_ExtStopPrio/thumbnail.png | Bin 0 -> 281 bytes .../GO_Cfg_ExtStopPrio/view.json | 213 + .../GO_Cfg_HasJog/resource.json | 17 + .../GO_Cfg_HasJog/thumbnail.png | Bin 0 -> 245 bytes .../GO_Cfg_HasJog/view.json | 213 + .../GO_Cfg_HasReverse/resource.json | 17 + .../GO_Cfg_HasReverse/thumbnail.png | Bin 0 -> 198 bytes .../GO_Cfg_HasReverse/view.json | 213 + .../GO_Cfg_HasRunFdbk/resource.json | 17 + .../GO_Cfg_HasRunFdbk/thumbnail.png | Bin 0 -> 249 bytes .../GO_Cfg_HasRunFdbk/view.json | 213 + .../GO_Cfg_MaxJogT/resource.json | 17 + .../GO_Cfg_MaxJogT/thumbnail.png | Bin 0 -> 1331 bytes .../GO_Cfg_MaxJogT/view.json | 162 + .../GO_Cfg_OperStopPrio/resource.json | 17 + .../GO_Cfg_OperStopPrio/thumbnail.png | Bin 0 -> 272 bytes .../GO_Cfg_OperStopPrio/view.json | 213 + .../GO_Cfg_ResetPulseT/resource.json | 17 + .../GO_Cfg_ResetPulseT/thumbnail.png | Bin 0 -> 1496 bytes .../GO_Cfg_ResetPulseT/view.json | 162 + .../GO_Cfg_SimRampT/resource.json | 17 + .../GO_Cfg_SimRampT/thumbnail.png | Bin 0 -> 83 bytes .../GO_Cfg_SimRampT/view.json | 228 + .../GO_Cfg_StartHornT/resource.json | 17 + .../GO_Cfg_StartHornT/thumbnail.png | Bin 0 -> 1675 bytes .../GO_Cfg_StartHornT/view.json | 162 + .../GO_PVDecimalPlaces/resource.json | 17 + .../GO_PVDecimalPlaces/thumbnail.png | Bin 0 -> 83 bytes .../GO_PVDecimalPlaces/view.json | 167 + .../GO_StartStopFailTimers/resource.json | 17 + .../GO_StartStopFailTimers/thumbnail.png | Bin 0 -> 4542 bytes .../GO_StartStopFailTimers/view.json | 242 + .../GO_Cfg_StartHornT/resource.json | 17 + .../GO_Cfg_StartHornT/thumbnail.png | Bin 0 -> 1772 bytes .../GO_Cfg_StartHornT/view.json | 162 + .../GO_HasLimitSwitch/resource.json | 17 + .../GO_HasLimitSwitch/thumbnail.png | Bin 0 -> 6997 bytes .../GO_HasLimitSwitch/view.json | 711 + .../GO_ValveTimers/resource.json | 17 + .../GO_ValveTimers/thumbnail.png | Bin 0 -> 6398 bytes .../GO_ValveTimers/view.json | 242 + .../GO_InterlockCfg/resource.json | 16 + .../GO_InterlockCfg/view.json | 502 + .../GO_PermissiveCfg/resource.json | 16 + .../GO_PermissiveCfg/view.json | 372 + .../Popups/P_AIn/P_AIn/resource.json | 17 + .../Popups/P_AIn/P_AIn/thumbnail.png | Bin 0 -> 6668 bytes .../Plant PAX/Popups/P_AIn/P_AIn/view.json | 7142 +++ .../Popups/P_AIn/P_AIn_Advanced/resource.json | 17 + .../Popups/P_AIn/P_AIn_Advanced/thumbnail.png | Bin 0 -> 18012 bytes .../Popups/P_AIn/P_AIn_Advanced/view.json | 2228 + .../Popups/P_AOut/P_AOut/resource.json | 17 + .../Popups/P_AOut/P_AOut/thumbnail.png | Bin 0 -> 4523 bytes .../Plant PAX/Popups/P_AOut/P_AOut/view.json | 6175 +++ .../P_AOut/P_AOut_Advanced/resource.json | 17 + .../P_AOut/P_AOut_Advanced/thumbnail.png | Bin 0 -> 181 bytes .../Popups/P_AOut/P_AOut_Advanced/view.json | 4975 ++ .../Popups/P_Alarm/P_Alarm/resource.json | 17 + .../Popups/P_Alarm/P_Alarm/thumbnail.png | Bin 0 -> 128 bytes .../Popups/P_Alarm/P_Alarm/view.json | 2920 ++ .../P_Alarm/P_Alarm_Advanced/resource.json | 17 + .../P_Alarm/P_Alarm_Advanced/thumbnail.png | Bin 0 -> 17468 bytes .../Popups/P_Alarm/P_Alarm_Advanced/view.json | 1534 + .../Popups/P_CmdSrc/P_CmdSrc/resource.json | 17 + .../Popups/P_CmdSrc/P_CmdSrc/thumbnail.png | Bin 0 -> 5666 bytes .../Popups/P_CmdSrc/P_CmdSrc/view.json | 3592 ++ .../P_CmdSrc/P_CmdSrc_Advanced/resource.json | 17 + .../P_CmdSrc/P_CmdSrc_Advanced/thumbnail.png | Bin 0 -> 14662 bytes .../P_CmdSrc/P_CmdSrc_Advanced/view.json | 4158 ++ .../Popups/P_DIn/P_DIn/resource.json | 17 + .../Popups/P_DIn/P_DIn/thumbnail.png | Bin 0 -> 5924 bytes .../Plant PAX/Popups/P_DIn/P_DIn/view.json | 4013 ++ .../Popups/P_DIn/P_DIn_Advanced/resource.json | 17 + .../Popups/P_DIn/P_DIn_Advanced/thumbnail.png | Bin 0 -> 12111 bytes .../Popups/P_DIn/P_DIn_Advanced/view.json | 2635 ++ .../Popups/P_DOut/P_DOut/resource.json | 17 + .../Popups/P_DOut/P_DOut/thumbnail.png | Bin 0 -> 4998 bytes .../Plant PAX/Popups/P_DOut/P_DOut/view.json | 6069 +++ .../P_DOut/P_DOut_Advanced/resource.json | 17 + .../P_DOut/P_DOut_Advanced/thumbnail.png | Bin 0 -> 10160 bytes .../Popups/P_DOut/P_DOut_Advanced/view.json | 4371 ++ .../Popups/P_Intlk/P_Intlk/resource.json | 17 + .../Popups/P_Intlk/P_Intlk/thumbnail.png | Bin 0 -> 8613 bytes .../Popups/P_Intlk/P_Intlk/view.json | 7460 +++ .../P_Intlk/P_Intlk_Advanced/resource.json | 17 + .../P_Intlk/P_Intlk_Advanced/thumbnail.png | Bin 0 -> 18816 bytes .../Popups/P_Intlk/P_Intlk_Advanced/view.json | 1578 + .../Popups/P_Motor/P_Motor/resource.json | 17 + .../Popups/P_Motor/P_Motor/thumbnail.png | Bin 0 -> 156 bytes .../Popups/P_Motor/P_Motor/view.json | 7142 +++ .../P_Motor/P_Motor_Advanced/resource.json | 17 + .../P_Motor/P_Motor_Advanced/thumbnail.png | Bin 0 -> 9139 bytes .../Popups/P_Motor/P_Motor_Advanced/view.json | 2323 + .../Popups/P_PIDE/P_PIDE/resource.json | 17 + .../Popups/P_PIDE/P_PIDE/thumbnail.png | Bin 0 -> 5297 bytes .../Plant PAX/Popups/P_PIDE/P_PIDE/view.json | 8532 ++++ .../P_PIDE/P_PIDE_Advanced/resource.json | 17 + .../P_PIDE/P_PIDE_Advanced/thumbnail.png | Bin 0 -> 14211 bytes .../Popups/P_PIDE/P_PIDE_Advanced/view.json | 27161 +++++++++++ .../Popups/P_Perm/P_Perm/resource.json | 17 + .../Popups/P_Perm/P_Perm/thumbnail.png | Bin 0 -> 7614 bytes .../Plant PAX/Popups/P_Perm/P_Perm/view.json | 6678 +++ .../P_Perm/P_Perm_Advanced/resource.json | 17 + .../P_Perm/P_Perm_Advanced/thumbnail.png | Bin 0 -> 17049 bytes .../Popups/P_Perm/P_Perm_Advanced/view.json | 1557 + .../Popups/P_VSD/P_VSD/resource.json | 17 + .../Popups/P_VSD/P_VSD/thumbnail.png | Bin 0 -> 156 bytes .../Plant PAX/Popups/P_VSD/P_VSD/view.json | 8382 ++++ .../Popups/P_VSD/P_VSD_Advanced/resource.json | 17 + .../Popups/P_VSD/P_VSD_Advanced/thumbnail.png | Bin 0 -> 14367 bytes .../Popups/P_VSD/P_VSD_Advanced/view.json | 8597 ++++ .../Popups/P_ValveC/P_ValveC/resource.json | 17 + .../Popups/P_ValveC/P_ValveC/thumbnail.png | Bin 0 -> 156 bytes .../Popups/P_ValveC/P_ValveC/view.json | 7453 +++ .../P_ValveC/P_ValveC_Advanced/resource.json | 17 + .../P_ValveC/P_ValveC_Advanced/thumbnail.png | Bin 0 -> 14403 bytes .../P_ValveC/P_ValveC_Advanced/view.json | 7152 +++ .../Popups/P_ValveSO/P_ValveSO/resource.json | 17 + .../Popups/P_ValveSO/P_ValveSO/thumbnail.png | Bin 0 -> 7167 bytes .../Popups/P_ValveSO/P_ValveSO/view.json | 5447 +++ .../P_ValveSO_Advanced/resource.json | 17 + .../P_ValveSO_Advanced/thumbnail.png | Bin 0 -> 10796 bytes .../P_ValveSO/P_ValveSO_Advanced/view.json | 2232 + .../Embedded Views/Nav_Menu/resource.json | 17 + .../Embedded Views/Nav_Menu/thumbnail.png | Bin 0 -> 1950 bytes .../Embedded Views/Nav_Menu/view.json | 218 + .../AnalogInput/Popup/resource.json | 17 + .../AnalogInput/Popup/thumbnail.png | Bin 0 -> 15100 bytes .../Popups_Old/AnalogInput/Popup/view.json | 2235 + .../Embedded Views/Nav_Menu/resource.json | 17 + .../Embedded Views/Nav_Menu/thumbnail.png | Bin 0 -> 1487 bytes .../Embedded Views/Nav_Menu/view.json | 168 + .../DigitalInput/Popup/resource.json | 17 + .../DigitalInput/Popup/thumbnail.png | Bin 0 -> 9718 bytes .../Popups_Old/DigitalInput/Popup/view.json | 1184 + .../Popup_20220520_1335/resource.json | 17 + .../Popup_20220520_1335/thumbnail.png | Bin 0 -> 7264 bytes .../Popup_20220520_1335/view.json | 1077 + .../Embedded Views/Nav_Menu/resource.json | 17 + .../Embedded Views/Nav_Menu/thumbnail.png | Bin 0 -> 1242 bytes .../Embedded Views/Nav_Menu/view.json | 140 + .../DigitalOutput/Popup/resource.json | 17 + .../DigitalOutput/Popup/thumbnail.png | Bin 0 -> 137 bytes .../Popups_Old/DigitalOutput/Popup/view.json | 902 + .../Embedded Views/Icon/resource.json | 17 + .../Embedded Views/Icon/thumbnail.png | Bin 0 -> 314 bytes .../Popups_Old/Embedded Views/Icon/view.json | 123 + .../Embedded Views/Nav_Menu/resource.json | 17 + .../Embedded Views/Nav_Menu/thumbnail.png | Bin 0 -> 2189 bytes .../Motor/Embedded Views/Nav_Menu/view.json | 203 + .../Popups_Old/Motor/Popup/resource.json | 17 + .../Popups_Old/Motor/Popup/thumbnail.png | Bin 0 -> 10124 bytes .../Popups_Old/Motor/Popup/view.json | 1373 + .../Embedded Views/Nav_Menu/resource.json | 17 + .../Embedded Views/Nav_Menu/thumbnail.png | Bin 0 -> 2002 bytes .../Embedded Views/Nav_Menu/view.json | 203 + .../ValveSolenoid/Popup/resource.json | 17 + .../ValveSolenoid/Popup/thumbnail.png | Bin 0 -> 12526 bytes .../Popups_Old/ValveSolenoid/Popup/view.json | 1556 + .../Popups/General/Nav_Menu/resource.json | 17 + .../Popups/General/Nav_Menu/thumbnail.png | Bin 0 -> 1938 bytes .../Popups/General/Nav_Menu/view.json | 358 + .../Popups/Velocity/PF525/resource.json | 17 + .../Popups/Velocity/PF525/thumbnail.png | Bin 0 -> 23705 bytes .../Popups/Velocity/PF525/view.json | 4815 ++ .../reports/Alarm Report Standard/data.bin | Bin 0 -> 84149 bytes .../Alarm Report Standard/resource.json | 16 + .../client-event-scripts/data.bin | Bin 0 -> 765 bytes .../client-event-scripts/resource.json | 16 + .../client-tags/data.bin | Bin 0 -> 2553 bytes .../client-tags/resource.json | 16 + .../launch-properties/data.bin | Bin 0 -> 451 bytes .../launch-properties/resource.json | 16 + .../login-properties/data.bin | Bin 0 -> 363 bytes .../login-properties/resource.json | 16 + .../polling-properties/data.bin | Bin 0 -> 357 bytes .../polling-properties/resource.json | 16 + .../Core/ignition/event-scripts/data.bin | Bin 0 -> 1220 bytes .../Core/ignition/event-scripts/resource.json | 16 + .../Core/ignition/global-props/data.bin | Bin 0 -> 649 bytes .../Core/ignition/global-props/resource.json | 16 + .../Alarms/Alarm History Report/query.sql | 15 + .../Alarms/Alarm History Report/resource.json | 75 + .../Alarms/Alarm History/query.sql | 18 + .../Alarms/Alarm History/resource.json | 75 + .../Alarms/Alarm Summary Table/query.sql | 27 + .../Alarms/Alarm Summary Table/resource.json | 45 + .../Alarms/Alarm Summary/query.sql | 19 + .../Alarms/Alarm Summary/resource.json | 45 + .../Alarms/Alarms By Hour/query.sql | 13 + .../Alarms/Alarms By Hour/resource.json | 45 + .../Alarms/Alarms Duration/query.sql | 13 + .../Alarms/Alarms Duration/resource.json | 50 + .../Alarms/Alarms Frequency/query.sql | 12 + .../Alarms/Alarms Frequency/resource.json | 50 + .../Alarms/Longest Duration Alarm/query.sql | 12 + .../Longest Duration Alarm/resource.json | 45 + .../Alarms/Most Frequent Alarm/query.sql | 11 + .../Alarms/Most Frequent Alarm/resource.json | 45 + .../named-query/Audit Log/Audit Log/query.sql | 18 + .../Audit Log/Audit Log/resource.json | 50 + .../PlantPAX/securityCheck/code.py | 40 + .../PlantPAX/securityCheck/resource.json | 16 + .../Core/ignition/script-python/nav/code.py | 18 + .../ignition/script-python/nav/resource.json | 16 + .../mobile/mobile.project.settings/data.bin | Bin 0 -> 365 bytes .../mobile.project.settings/resource.json | 16 + project/dcframe1-hmi1/Core/project.json | 7 + 806 files changed, 284707 insertions(+), 12 deletions(-) create mode 100644 config/dcframe1-hmi1/resources/core/com.inductiveautomation.historian/historian-provider/dcframe-hist/config.json create mode 100644 config/dcframe1-hmi1/resources/core/com.inductiveautomation.historian/historian-provider/dcframe-hist/resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/alarm-journal/dcframe-journal/config.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/alarm-journal/dcframe-journal/resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/audit-profile/dcframe-auditlog/config.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/audit-profile/dcframe-auditlog/resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/database-connection/dcframe-db/config.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/database-connection/dcframe-db/resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/identity-provider/temp_0/config.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/identity-provider/temp_0/resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/store-and-forward-engine/dcframe-db/config.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/store-and-forward-engine/dcframe-db/resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/Database/dcframe-db/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/Database/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/ForwardMetric/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataSink/StoreMetric/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataSink/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/PendingSummary/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/QuarantineSummary/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/StoreMetric/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/TakeMetric/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/DroppedSummary/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/PendingSummary/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/StoreMetric/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/TakeMetric/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/ForwardMetric/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/StoreMetric/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/Control/tags.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/Control/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/udts.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/Pipelines/Default/tags.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/Pipelines/Default/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/Pipelines/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/tags.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/SupportDataTypes/udts.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/SupportDataTypes/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/udts.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/unary-resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/udts.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/user-source/temp_0/config.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/user-source/temp_0/resource.json create mode 100644 config/dcframe1-hmi1/resources/core/ignition/user-source/temp_0/users.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Critical/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Critical/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Default/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Default/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Diagnostic/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Diagnostic/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Notify/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Notify/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/general-properties/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/general-properties/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/page-config/config.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/page-config/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-permissions/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-permissions/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-props/props.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-props/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButton/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButton/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButtonMobile/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButtonMobile/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Control/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Control/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/ControlBar/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/ControlBar/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/DropDown/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/DropDown/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadius/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadius/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadiusMobile/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadiusMobile/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionBar/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionBar/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionTitle/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionTitle/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Header/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Header/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/HeaderTitle/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/HeaderTitle/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadius/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadius/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadiusMobile/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadiusMobile/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControl/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControl/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControlBar/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControlBar/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileFunctionBar/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileFunctionBar/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadius/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadius/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadiusMobile/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadiusMobile/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButton/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButton/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButtonMobile/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButtonMobile/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmAnalysis/Label/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmAnalysis/Label/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Ack/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Ack/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Ack/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Ack/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Unack/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Unack/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Ack/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Ack/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Unack/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Unack/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/None/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/None/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Bold_Text/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Bold_Text/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Card/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Card/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Embedded/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Embedded/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item_Border/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item_Border/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Label/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Label/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Row/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Row/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Title/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Title/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Value/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Value/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/TableCardLayout/Label/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/TableCardLayout/Label/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Clickable/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Clickable/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Fault/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Fault/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Header/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Header/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/High_Performance_HMI_On/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/High_Performance_HMI_On/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Action/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Action/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_All_Header/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_All_Header/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item_Selected/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item_Selected/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab_Selected/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab_Selected/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOff/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOff/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOn/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOn/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/background/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/background/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/core/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/core/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/description/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/description/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/label/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/label/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/faulted/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/faulted/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/normal/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/normal/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Selected/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Selected/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Unselected/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Unselected/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/background/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/background/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/core/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/core/style.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/AdHocTrends/AdHocTrends/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/AdHocTrends/AdHocTrends/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/AdHocTrends/AdHocTrends/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Analysis/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Analysis/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Analysis/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Summary Card/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Summary Card/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Summary Card/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarm Journal/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarm Journal/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarm Journal/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarms/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarms/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarms/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Card/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Card/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Card/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/State/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/State/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/State/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Audit Log/Audit Log/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Audit Log/Audit Log/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Audit Log/Audit Log/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Audit Log/Card/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Audit Log/Card/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Audit Log/Card/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Diagnostics/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Diagnostics/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Diagnostics/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Database/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Database/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Database/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Databases/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Databases/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Databases/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Device/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Device/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Device/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connection/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connection/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connection/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connections/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connections/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connections/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Label/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Label/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Label/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Device/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Device/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Device/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Devices/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Devices/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Devices/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Server/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Server/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Server/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Servers/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Servers/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Servers/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Redundancy/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Redundancy/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Redundancy/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Session/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Session/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Session/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System Performance/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System Performance/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System Performance/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Alarm Windows/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Alarm Windows/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Alarm Windows/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Menu/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Menu/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Menu/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Site Menu/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Site Menu/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Site Menu/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Card/Card/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Card/Card/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Card/Card/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Cards/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Cards/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Cards/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Responsive View/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Responsive View/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Responsive View/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Table/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Table/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Table/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Large/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Large/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Large/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Medium/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Medium/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Medium/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Acknowledge/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Acknowledge/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Acknowledge/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Alarms/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Alarms/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Alarms/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Options/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Options/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Options/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Popup Title/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Popup Title/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Popup Title/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Alarm Summary Report/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Alarm Summary Report/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Alarm Summary Report/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/CDP/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/CDP/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/CDP/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Embedded/Title/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Embedded/Title/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Embedded/Title/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/L24_CDP/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/L24_CDP/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/L24_CDP/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Map/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Map/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Map/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/PlantPAX_Instances/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/PlantPAX_Instances/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/PlantPAX_Instances/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/CV_Control/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/CV_Control/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/CV_Control/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Chiller Data/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Chiller Data/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Chiller Data/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/SDV_Control/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/SDV_Control/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/SDV_Control/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Trend/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Trend/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Trend/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Valve_Control/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Valve_Control/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Valve_Control/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/hmidemo/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/hmidemo/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/hmidemo/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInputClassic/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInputClassic/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInputClassic/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput_OLD/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput_OLD/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput_OLD/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogTrend/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogTrend/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogTrend/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInput/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInput/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInput/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInputClassic/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInputClassic/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInputClassic/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalOutput/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalOutput/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalOutput/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/Motor/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/Motor/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/Motor/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_AIn/P_AIn1/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_AIn/P_AIn1/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_AIn/P_AIn1/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_AOut/P_AOut1/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_AOut/P_AOut1/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_AOut/P_AOut1/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/Archive/P_DIn1_20220525_0041/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/Archive/P_DIn1_20220525_0041/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/Archive/P_DIn1_20220525_0041/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/P_DIn1/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/P_DIn1/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/P_DIn1/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/P_DIn1Circle/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/P_DIn1Circle/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/P_DIn1Circle/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/P_DIn1CircleWLabel/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/P_DIn1CircleWLabel/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/P_DIn1CircleWLabel/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/Archive/P_DOut1_20220524_2107/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/Archive/P_DOut1_20220524_2107/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/Archive/P_DOut1_20220524_2107/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/P_DOut1/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/P_DOut1/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/P_DOut1/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineL/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineL/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineL/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineR/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineR/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineR/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineU/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineU/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineU/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorD/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorD/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorD/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorR/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorR/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorR/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorU/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorU/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorU/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpL/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpL/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpL/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpR/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpR/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpR/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpU/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpU/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpU/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_PIDE/P_PIDE/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_PIDE/P_PIDE/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_PIDE/P_PIDE/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorD/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorD/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorD/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorR/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorR/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorR/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorU/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorU/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorU/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpL/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpL/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpL/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpR/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpR/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpR/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpU/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpU/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpU/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/Archive/P_ValveSO/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/Archive/P_ValveSO/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/Archive/P_ValveSO/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerLeft/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerLeft/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerLeft/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerRight/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerRight/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerRight/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO_Block (1)/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO_Block (1)/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO_Block (1)/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO_Block/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO_Block/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO_Block/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_Block/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_Block/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_Block/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_Hor/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_Hor/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_Hor/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerLeft/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerLeft/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerLeft/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerRight/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerRight/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerRight/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/ValveSolenoid/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/ValveSolenoid/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/ValveSolenoid/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Archive/Process_PVwSP_DoNotUse/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Archive/Process_PVwSP_DoNotUse/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Archive/Process_PVwSP_DoNotUse/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PIDE/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PIDE/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PIDE/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVCapture/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVCapture/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVCapture/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVwSP/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVwSP/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVwSP/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVwSP_DoNotUse/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVwSP_DoNotUse/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVwSP_DoNotUse/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_ControlVariable/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_ControlVariable/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_ControlVariable/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_LoopModeManualButton/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_LoopModeManualButton/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_LoopModeManualButton/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_PV/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_PV/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_PV/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_SPPVBarGraph/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_SPPVBarGraph/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_SPPVBarGraph/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_CVDecimalPlaces/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_CVDecimalPlaces/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_CVDecimalPlaces/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EU/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EU/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EUx/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EUx/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasFwdPermObj/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasFwdPermObj/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasFwdPermObj/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasIntlkObj/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasIntlkObj/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasIntlkObj/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasPermObj/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasPermObj/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasPermObj/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasRevPermObj/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasRevPermObj/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasRevPermObj/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_NoSubstPV/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_NoSubstPV/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_NoSubstPV/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OCmdResets/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OCmdResets/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OCmdResets/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OvrdIntlk/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OvrdIntlk/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OvrdIntlk/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OvrdPermIntlk/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OvrdPermIntlk/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OvrdPermIntlk/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_RateFiltTC/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_RateFiltTC/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_RateFiltTC/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrackOvrdHand/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrackOvrdHand/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrackOvrdHand/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFail/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFail/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFail/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFailToStart/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFailToStart/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFailToStart/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFullStall/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFullStall/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFullStall/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnInterlockTrip/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnInterlockTrip/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnInterlockTrip/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnTransitStall/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnTransitStall/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnTransitStall/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SimFdbkT/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SimFdbkT/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SimFdbkT/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_StartHornT/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_StartHornT/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_StartHornT/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_ProgOperKeep/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_ProgOperKeep/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_ProgOperKeep/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_AllowLocal/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_AllowLocal/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_AllowLocal/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_ExtStopPrio/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_ExtStopPrio/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_ExtStopPrio/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasJog/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasJog/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasJog/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasReverse/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasReverse/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasReverse/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasRunFdbk/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasRunFdbk/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasRunFdbk/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_MaxJogT/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_MaxJogT/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_MaxJogT/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_OperStopPrio/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_OperStopPrio/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_OperStopPrio/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_ResetPulseT/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_ResetPulseT/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_ResetPulseT/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_SimRampT/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_SimRampT/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_SimRampT/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_StartHornT/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_StartHornT/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_StartHornT/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_PVDecimalPlaces/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_PVDecimalPlaces/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_PVDecimalPlaces/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_StartStopFailTimers/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_StartStopFailTimers/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_StartStopFailTimers/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_Cfg_StartHornT/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_Cfg_StartHornT/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_Cfg_StartHornT/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_HasLimitSwitch/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_HasLimitSwitch/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_HasLimitSwitch/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_ValveTimers/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_ValveTimers/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_ValveTimers/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_PermissiveCfg/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_PermissiveCfg/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO_Advanced/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO_Advanced/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO_Advanced/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Embedded Views/Nav_Menu/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Embedded Views/Nav_Menu/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Embedded Views/Nav_Menu/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Popup/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Popup/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Popup/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Embedded Views/Nav_Menu/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Embedded Views/Nav_Menu/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Embedded Views/Nav_Menu/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup_20220520_1335/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup_20220520_1335/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup_20220520_1335/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Embedded Views/Nav_Menu/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Embedded Views/Nav_Menu/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Embedded Views/Nav_Menu/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Popup/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Popup/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Popup/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Embedded Views/Icon/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Embedded Views/Icon/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Embedded Views/Icon/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Embedded Views/Nav_Menu/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Embedded Views/Nav_Menu/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Embedded Views/Nav_Menu/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Popup/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Popup/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Popup/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/ValveSolenoid/Embedded Views/Nav_Menu/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/ValveSolenoid/Embedded Views/Nav_Menu/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/ValveSolenoid/Embedded Views/Nav_Menu/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/ValveSolenoid/Popup/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/ValveSolenoid/Popup/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/ValveSolenoid/Popup/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/General/Nav_Menu/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/General/Nav_Menu/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/General/Nav_Menu/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/Velocity/PF525/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/Velocity/PF525/thumbnail.png create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/Velocity/PF525/view.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.reporting/reports/Alarm Report Standard/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.reporting/reports/Alarm Report Standard/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.vision/client-event-scripts/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.vision/client-event-scripts/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.vision/client-tags/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.vision/client-tags/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.vision/launch-properties/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.vision/launch-properties/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.vision/login-properties/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.vision/login-properties/resource.json create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.vision/polling-properties/data.bin create mode 100644 project/dcframe1-hmi1/Core/com.inductiveautomation.vision/polling-properties/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/event-scripts/data.bin create mode 100644 project/dcframe1-hmi1/Core/ignition/event-scripts/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/global-props/data.bin create mode 100644 project/dcframe1-hmi1/Core/ignition/global-props/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History Report/query.sql create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History Report/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History/query.sql create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary Table/query.sql create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary Table/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary/query.sql create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms By Hour/query.sql create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms By Hour/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Duration/query.sql create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Duration/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Frequency/query.sql create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Frequency/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Longest Duration Alarm/query.sql create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Longest Duration Alarm/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Most Frequent Alarm/query.sql create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Most Frequent Alarm/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Audit Log/Audit Log/query.sql create mode 100644 project/dcframe1-hmi1/Core/ignition/named-query/Audit Log/Audit Log/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/script-python/PlantPAX/securityCheck/code.py create mode 100644 project/dcframe1-hmi1/Core/ignition/script-python/PlantPAX/securityCheck/resource.json create mode 100644 project/dcframe1-hmi1/Core/ignition/script-python/nav/code.py create mode 100644 project/dcframe1-hmi1/Core/ignition/script-python/nav/resource.json create mode 100644 project/dcframe1-hmi1/Core/mobile/mobile.project.settings/data.bin create mode 100644 project/dcframe1-hmi1/Core/mobile/mobile.project.settings/resource.json create mode 100644 project/dcframe1-hmi1/Core/project.json diff --git a/config/dcframe1-hmi1/resources/core/com.inductiveautomation.historian/historian-provider/dcframe-hist/config.json b/config/dcframe1-hmi1/resources/core/com.inductiveautomation.historian/historian-provider/dcframe-hist/config.json new file mode 100644 index 0000000..9faceb9 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/com.inductiveautomation.historian/historian-provider/dcframe-hist/config.json @@ -0,0 +1,8 @@ +{ + "profile": { + "type": "WideDbHistorian" + }, + "settings": { + "datasource": "dcframe-db" + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/com.inductiveautomation.historian/historian-provider/dcframe-hist/resource.json b/config/dcframe1-hmi1/resources/core/com.inductiveautomation.historian/historian-provider/dcframe-hist/resource.json new file mode 100644 index 0000000..935e1cf --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/com.inductiveautomation.historian/historian-provider/dcframe-hist/resource.json @@ -0,0 +1,19 @@ +{ + "scope": "A", + "description": "", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "config.json" + ], + "attributes": { + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:46:12Z" + }, + "uuid": "3a22c659-0a05-49b3-8a84-3973e085412c", + "lastModificationSignature": "2bf4f35c29566d204a538ab926d13b2bb80165a2954b5f505943773df08231e6", + "enabled": true + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/alarm-journal/dcframe-journal/config.json b/config/dcframe1-hmi1/resources/core/ignition/alarm-journal/dcframe-journal/config.json new file mode 100644 index 0000000..9db7e69 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/alarm-journal/dcframe-journal/config.json @@ -0,0 +1,35 @@ +{ + "profile": { + "queryOnly": false, + "type": "DATASOURCE" + }, + "settings": { + "advanced": { + "dataTableName": "alarm_event_data", + "tableName": "alarm_events", + "useStoreAndForward": true + }, + "dataFilters": { + "pathFilterName": "", + "pathOrSourceFilterName": "", + "sourceFilterName": "" + }, + "datasource": "dcframe-db", + "eventData": { + "dynamicAssociatedData": true, + "dynamicConfig": true, + "staticAssociatedData": true, + "staticConfig": false + }, + "events": { + "minPriority": "Low", + "storeFromEnabledChange": false, + "storeShelvedEvents": false + }, + "pruning": { + "age": 1, + "ageUnits": "YEAR", + "enabled": false + } + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/alarm-journal/dcframe-journal/resource.json b/config/dcframe1-hmi1/resources/core/ignition/alarm-journal/dcframe-journal/resource.json new file mode 100644 index 0000000..59ca12f --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/alarm-journal/dcframe-journal/resource.json @@ -0,0 +1,19 @@ +{ + "scope": "A", + "description": "", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "config.json" + ], + "attributes": { + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:47:21Z" + }, + "uuid": "078c81e8-e74e-43ab-8231-ec828c59cfe2", + "lastModificationSignature": "fdc8772645df15427fed0e9d3f8fba1e1f8e8d624305023732de03a325236ba0", + "enabled": true + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/audit-profile/dcframe-auditlog/config.json b/config/dcframe1-hmi1/resources/core/ignition/audit-profile/dcframe-auditlog/config.json new file mode 100644 index 0000000..9067089 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/audit-profile/dcframe-auditlog/config.json @@ -0,0 +1,22 @@ +{ + "profile": { + "retentionDays": 90, + "type": "database" + }, + "settings": { + "actionColumn": "action", + "actionTargetColumn": "action_target", + "actionValueColumn": "action_value", + "actorColumn": "actor", + "actorHostColumn": "actor_host", + "autoCreate": true, + "databaseName": "dcframe-db", + "keyColumn": "audit_events_id", + "originatingContextColumn": "originating_context", + "originatingSystemColumn": "originating_system", + "pruneEnabled": false, + "statusCodeColumn": "status_code", + "tableName": "audit_events", + "timestampColumn": "event_timestamp" + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/audit-profile/dcframe-auditlog/resource.json b/config/dcframe1-hmi1/resources/core/ignition/audit-profile/dcframe-auditlog/resource.json new file mode 100644 index 0000000..ee5b127 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/audit-profile/dcframe-auditlog/resource.json @@ -0,0 +1,19 @@ +{ + "scope": "A", + "description": "", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "config.json" + ], + "attributes": { + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:47:46Z" + }, + "uuid": "332aee7c-8559-4647-93c4-7afa108ae646", + "lastModificationSignature": "114ffbef453018bed98e57a29af55b030fcf60fc9a661cabec289fc66bb64670", + "enabled": true + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/database-connection/dcframe-db/config.json b/config/dcframe1-hmi1/resources/core/ignition/database-connection/dcframe-db/config.json new file mode 100644 index 0000000..9c2df4f --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/database-connection/dcframe-db/config.json @@ -0,0 +1,36 @@ +{ + "connectURL": "jdbc:postgresql://dcframe-db:5432/ignition", + "connectionProps": "", + "connectionResetParams": "", + "defaultTransactionLevel": "DEFAULT", + "driver": "PostgreSQL", + "evictionRate": -1, + "evictionTests": 3, + "evictionTime": 1800000, + "failoverMode": "STANDARD", + "failoverProfile": "", + "includeSchemaInTableName": false, + "password": { + "data": { + "ciphertext": "ZQvIf2RfAjL8lQ", + "encrypted_key": "k0Zvnp7PW4My99k_WqJ04UpTJrNSB7XJ3iydEMK3SQyOuVPQ-hsiYA", + "iv": "Z7ZM1pZNZgkd_g37", + "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiaWF0IjoxNzYyMzgyNTQ1LCJ6aXAiOiJERUYifQ", + "tag": "sjfbtv-S-KDOENLXdxZIcg" + }, + "type": "Embedded" + }, + "poolInitSize": 0, + "poolMaxActive": 8, + "poolMaxIdle": 8, + "poolMaxWait": 5000, + "poolMinIdle": 0, + "slowQueryLogThreshold": 60000, + "testOnBorrow": true, + "testOnReturn": false, + "testWhileIdle": false, + "translator": "POSTGRES", + "username": "ignition", + "validationQuery": "SELECT 1", + "validationSleepTime": 10000 +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/database-connection/dcframe-db/resource.json b/config/dcframe1-hmi1/resources/core/ignition/database-connection/dcframe-db/resource.json new file mode 100644 index 0000000..926baa4 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/database-connection/dcframe-db/resource.json @@ -0,0 +1,19 @@ +{ + "scope": "A", + "description": "", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "config.json" + ], + "attributes": { + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:43:30Z" + }, + "uuid": "f01ad521-bb74-432b-8fbd-ad11a16bf975", + "lastModificationSignature": "cdb82d654a656a575f3a0fc3074284a632311c6b46976007b4a80012c70a5f23", + "enabled": true + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/identity-provider/temp_0/config.json b/config/dcframe1-hmi1/resources/core/ignition/identity-provider/temp_0/config.json new file mode 100644 index 0000000..29d11bd --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/identity-provider/temp_0/config.json @@ -0,0 +1,62 @@ +{ + "profile": { + "securityLevelRules": { + "nodes": [] + }, + "type": "internal", + "userAttributeMapper": { + "email": { + "config": { + "attributePath": "email" + }, + "type": "direct" + }, + "firstName": { + "config": { + "attributePath": "given_name" + }, + "type": "direct" + }, + "id": { + "config": { + "attributePath": "sub" + }, + "type": "direct" + }, + "lastName": { + "config": { + "attributePath": "family_name" + }, + "type": "direct" + }, + "roles": { + "config": { + "attributePath": "roles" + }, + "type": "direct" + }, + "userName": { + "config": { + "attributePath": "preferred_username" + }, + "type": "direct" + } + }, + "userGrants": { + "id": {}, + "username": {} + } + }, + "settings": { + "authMethods": [ + { + "config": {}, + "type": "basic" + } + ], + "rememberMeExp": 0, + "sessionExp": 0, + "sessionInactivityTimeout": 30, + "userSource": "temp_0" + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/identity-provider/temp_0/resource.json b/config/dcframe1-hmi1/resources/core/ignition/identity-provider/temp_0/resource.json new file mode 100644 index 0000000..8115dbc --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/identity-provider/temp_0/resource.json @@ -0,0 +1,18 @@ +{ + "scope": "A", + "description": "Temporary Ignition Identity Provider created during password reset which uses the User Source Profile named \"temp_0\".", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "config.json" + ], + "attributes": { + "lastModification": { + "actor": "system-init", + "timestamp": "2025-11-05T21:48:19Z" + }, + "uuid": "93f29178-119e-4f37-9f93-2464edbd3e32", + "lastModificationSignature": "499f45e6e078b309c8a775fbd1ebe24f81cda7bcdc43fa42c39a8f721b744242" + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/quickstart/resource.json b/config/dcframe1-hmi1/resources/core/ignition/quickstart/resource.json index 143b6a9..8ad3c96 100644 --- a/config/dcframe1-hmi1/resources/core/ignition/quickstart/resource.json +++ b/config/dcframe1-hmi1/resources/core/ignition/quickstart/resource.json @@ -9,8 +9,8 @@ "attributes": { "lastModification": { "actor": "unknown", - "timestamp": "2025-11-04T23:29:23Z" + "timestamp": "2025-11-05T22:37:31Z" }, - "lastModificationSignature": "732b352c0666159e7cae4d14efd047b15c6cfe3d0d97aff8c8b892f86f981987" + "lastModificationSignature": "ee3695e53658e8b3c7fe3d3fe1fd735286ef145f33c031ccbe7cd1c6e23136a5" } } \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/security-properties/config.json b/config/dcframe1-hmi1/resources/core/ignition/security-properties/config.json index d60a0ee..977a999 100644 --- a/config/dcframe1-hmi1/resources/core/ignition/security-properties/config.json +++ b/config/dcframe1-hmi1/resources/core/ignition/security-properties/config.json @@ -52,8 +52,8 @@ ], "type": "AnyOf" }, - "systemAuthProfile": "temp", - "systemIdentityProvider": "temp", + "systemAuthProfile": "temp_0", + "systemIdentityProvider": "temp_0", "userInactivityTimeout": 10, "writePermissions": { "securityLevels": [ diff --git a/config/dcframe1-hmi1/resources/core/ignition/security-properties/resource.json b/config/dcframe1-hmi1/resources/core/ignition/security-properties/resource.json index 62066ee..cacbf59 100644 --- a/config/dcframe1-hmi1/resources/core/ignition/security-properties/resource.json +++ b/config/dcframe1-hmi1/resources/core/ignition/security-properties/resource.json @@ -9,8 +9,8 @@ "attributes": { "lastModification": { "actor": "system-init", - "timestamp": "2025-11-04T23:29:24Z" + "timestamp": "2025-11-05T21:48:19Z" }, - "lastModificationSignature": "79da6375b35c968eb98329a550e2165624469f75743c49eddac1626c1c3ea2f5" + "lastModificationSignature": "a84192cff6bce011aaf637339f30db5d8c5dd7c5507b8b0aca92bd9240c503cd" } } \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/store-and-forward-engine/dcframe-db/config.json b/config/dcframe1-hmi1/resources/core/ignition/store-and-forward-engine/dcframe-db/config.json new file mode 100644 index 0000000..060cfea --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/store-and-forward-engine/dcframe-db/config.json @@ -0,0 +1,23 @@ +{ + "batchSize": 10000, + "dataThreshold": 10000, + "forwardRateMs": 1000, + "forwardingPolicy": "ALL", + "isThirdParty": false, + "primaryMaintenancePolicy": { + "action": "PREVENT_NEW_DATA", + "limit": { + "limitType": "COUNT", + "value": 0 + } + }, + "scanRateMs": 100, + "secondaryMaintenancePolicy": { + "action": "PREVENT_NEW_DATA", + "limit": { + "limitType": "COUNT", + "value": 0 + } + }, + "timeThresholdMs": 30000 +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/store-and-forward-engine/dcframe-db/resource.json b/config/dcframe1-hmi1/resources/core/ignition/store-and-forward-engine/dcframe-db/resource.json new file mode 100644 index 0000000..f0d17ed --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/store-and-forward-engine/dcframe-db/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "A", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "config.json" + ], + "attributes": { + "lastModification": { + "actor": "unknown", + "timestamp": "2025-11-05T22:43:30Z" + }, + "uuid": "c3d32d9b-eb63-445a-9bb2-beec6c3c5b1d", + "lastModificationSignature": "d7687814a9bcf1e0d8932a5700d8c5549982057364156c77ceaf6ac28e51b579" + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/system-properties/resource.json b/config/dcframe1-hmi1/resources/core/ignition/system-properties/resource.json index c76ee84..6002cbc 100644 --- a/config/dcframe1-hmi1/resources/core/ignition/system-properties/resource.json +++ b/config/dcframe1-hmi1/resources/core/ignition/system-properties/resource.json @@ -9,8 +9,8 @@ "attributes": { "lastModification": { "actor": "unknown", - "timestamp": "2025-11-04T23:29:26Z" + "timestamp": "2025-11-05T22:37:33Z" }, - "lastModificationSignature": "07849218588e1bda99d33779b155252457cf592c79f3b1802008e7264e9634b1" + "lastModificationSignature": "ee7d4208213f4f60e00cb912677439c9290ca79a8620d39cd1456669656a308e" } } \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/Database/dcframe-db/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/Database/dcframe-db/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/Database/dcframe-db/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/Database/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/Database/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/Database/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/ForwardMetric/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/ForwardMetric/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/ForwardMetric/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataSink/StoreMetric/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataSink/StoreMetric/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataSink/StoreMetric/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataSink/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataSink/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataSink/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/PendingSummary/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/PendingSummary/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/PendingSummary/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/QuarantineSummary/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/QuarantineSummary/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/QuarantineSummary/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/StoreMetric/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/StoreMetric/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/StoreMetric/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/TakeMetric/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/TakeMetric/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/TakeMetric/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/LocalCache/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/DroppedSummary/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/DroppedSummary/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/DroppedSummary/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/PendingSummary/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/PendingSummary/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/PendingSummary/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/StoreMetric/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/StoreMetric/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/StoreMetric/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/TakeMetric/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/TakeMetric/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/TakeMetric/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/MemoryBuffer/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/DataStores/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/ForwardMetric/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/ForwardMetric/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/ForwardMetric/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/Auditing/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/Pipelines/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/StoreMetric/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/StoreMetric/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/StoreMetric/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/dcframe-db/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/System/Gateway/StoreAndForward/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/Control/tags.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/Control/tags.json new file mode 100644 index 0000000..bc7f5c6 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/Control/tags.json @@ -0,0 +1,50 @@ +[ + { + "valueSource": "opc", + "opcItemPath": "ns\u003d1;s\u003d[Prime Dev L24]Alm_Rst", + "dataType": "Boolean", + "name": "Alm_Rst", + "tagType": "AtomicTag", + "opcServer": "Ignition OPC-UA Server" + }, + { + "valueSource": "opc", + "opcItemPath": "ns\u003d1;s\u003d[Prime Dev L24]HMI_SD_PB", + "dataType": "Boolean", + "name": "HMI_SD_PB", + "tagType": "AtomicTag", + "opcServer": "Ignition OPC-UA Server" + }, + { + "valueSource": "opc", + "opcItemPath": "ns\u003d1;s\u003d[Prime Dev L24]Simulated_Open", + "dataType": "Boolean", + "name": "Simulated_Open", + "tagType": "AtomicTag", + "opcServer": "Ignition OPC-UA Server" + }, + { + "valueSource": "opc", + "opcItemPath": "ns\u003d1;s\u003d[Prime Dev L24]Simulated_FB", + "dataType": "Boolean", + "name": "Simulated_FB", + "tagType": "AtomicTag", + "opcServer": "Ignition OPC-UA Server" + }, + { + "valueSource": "opc", + "opcItemPath": "ns\u003d1;s\u003d[Prime Dev L24]Simulated_Din", + "dataType": "Boolean", + "name": "Simulated_Din", + "tagType": "AtomicTag", + "opcServer": "Ignition OPC-UA Server" + }, + { + "valueSource": "opc", + "opcItemPath": "ns\u003d1;s\u003d[Prime Dev L24]Simulated_Close", + "dataType": "Boolean", + "name": "Simulated_Close", + "tagType": "AtomicTag", + "opcServer": "Ignition OPC-UA Server" + } +] \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/Control/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/Control/unary-resource.json new file mode 100644 index 0000000..79e9663 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/Control/unary-resource.json @@ -0,0 +1,12 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "tags.json" + ], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/udts.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/udts.json new file mode 100644 index 0000000..a221f40 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/udts.json @@ -0,0 +1,465 @@ +[ + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_VSD_Intlk", + "typeId": "Plant PAX/P_Intlk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "name": "P_AIn 1", + "typeId": "Plant PAX/P_AIn", + "parameters": { + "BlockName": { + "dataType": "String", + "value": "P_AIn" + }, + "PLCName": { + "dataType": "String", + "value": "PLC" + } + }, + "tagType": "UdtInstance" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_Motor_Intlk", + "typeId": "Plant PAX/P_Intlk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "name": "P_VSD", + "typeId": "Plant PAX/P_VSD", + "parameters": { + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + } + }, + "tagType": "UdtInstance" + }, + { + "name": "P_Motor", + "typeId": "Plant PAX/P_Motor", + "parameters": { + "BlockName": { + "dataType": "String", + "value": "P_Motor" + }, + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + } + }, + "tagType": "UdtInstance" + }, + { + "name": "P_DOut_Intlk", + "typeId": "Plant PAX/P_Intlk", + "parameters": { + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + } + }, + "tagType": "UdtInstance" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_VSD_FwdPerm", + "typeId": "Plant PAX/P_Perm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "name": "P_ValveSO", + "typeId": "Plant PAX/P_ValveSO", + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + } + }, + "tagType": "UdtInstance" + }, + { + "name": "P_DOut_Perm", + "typeId": "Plant PAX/P_Perm", + "parameters": { + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + } + }, + "tagType": "UdtInstance" + }, + { + "name": "P_Din", + "typeId": "Plant PAX/P_DIn", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagType": "UdtInstance" + }, + { + "name": "P_Perm", + "typeId": "Plant PAX/P_Perm", + "parameters": { + "PLCName": { + "dataType": "String", + "value": "Slot2_BE" + } + }, + "tagType": "UdtInstance" + }, + { + "name": "Flow_PID", + "typeId": "Plant PAX/P_PIDE", + "parameters": { + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + } + }, + "tagType": "UdtInstance" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "HMI_SD", + "typeId": "Plant PAX/P_DIn", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": "Historian" + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "name": "P_Valve_C", + "typeId": "Plant PAX/P_ValveC", + "parameters": { + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + } + }, + "tagType": "UdtInstance" + }, + { + "name": "P_AIn", + "typeId": "Plant PAX/P_AIn", + "parameters": { + "HistoryProvider": { + "dataType": "String", + "value": "Historian" + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "Slot2_BE" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagType": "UdtInstance" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_Motor_Perm", + "typeId": "Plant PAX/P_Perm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_VSD_RevPerm", + "typeId": "Plant PAX/P_Perm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "name": "P_DOut", + "typeId": "Plant PAX/P_DOut", + "parameters": { + "BlockName": { + "dataType": "String", + "value": "P_Dout" + }, + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + } + }, + "tagType": "UdtInstance" + }, + { + "name": "SC_01", + "typeId": "Plant PAX/P_AOut", + "parameters": { + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + } + }, + "tagType": "UdtInstance" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_Valve_C_Intlk", + "typeId": "Plant PAX/P_Intlk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "Slot4_LO" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "name": "P_Intlk", + "typeId": "Plant PAX/P_Intlk", + "parameters": { + "PLCName": { + "dataType": "String", + "value": "Slot2_BE" + } + }, + "tagType": "UdtInstance" + } +] \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/unary-resource.json new file mode 100644 index 0000000..8fb3cc0 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/Test_Tags/unary-resource.json @@ -0,0 +1,12 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "udts.json" + ], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/Pipelines/Default/tags.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/Pipelines/Default/tags.json new file mode 100644 index 0000000..a11a1cb --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/Pipelines/Default/tags.json @@ -0,0 +1,30 @@ +[ + { + "valueSource": "memory", + "dataType": "DataSet", + "documentation": "Roster dataset linked to \"Alarms/Custom Roster\" template and utilized in an alarm pipeline", + "tooltip": "Roster dataset linked to \"Alarms/Custom Roster\" template and utilized in an alarm pipeline", + "name": "Roster", + "defaultValue": "{\"columns\":[{\"name\":\"number\",\"type\":\"java.lang.Integer\"},{\"name\":\"username\",\"type\":\"java.lang.String\"},{\"name\":\"contactType\",\"type\":\"java.lang.String\"},{\"name\":\"contactValue\",\"type\":\"java.lang.String\"},{\"name\":\"delay\",\"type\":\"java.lang.Integer\"},{\"name\":\"attempts\",\"type\":\"java.lang.Integer\"},{\"name\":\"delete\",\"type\":\"java.lang.Boolean\"}],\"rows\":[]}", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "documentation": "Notification delay units used for the \"Alarms/Custom Roster\" template and matching alarm pipeline.", + "tooltip": "Notification delay units used for the \"Alarms/Custom Roster\" template and matching alarm pipeline.", + "name": "Delay Units", + "defaultValue": "SEC", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Int4", + "engHigh": 3600.0, + "documentation": "Initial Notification Delay used for the \"Alarms/Custom Roster\" template and matching alarm pipeline.", + "tooltip": "Initial Notification Delay used for the \"Alarms/Custom Roster\" template and matching alarm pipeline.", + "name": "Initial Delay", + "defaultValue": 0, + "tagType": "AtomicTag" + } +] \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/Pipelines/Default/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/Pipelines/Default/unary-resource.json new file mode 100644 index 0000000..79e9663 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/Pipelines/Default/unary-resource.json @@ -0,0 +1,12 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "tags.json" + ], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/Pipelines/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/Pipelines/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/Pipelines/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/unary-resource.json new file mode 100644 index 0000000..77ed304 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/Alarms/unary-resource.json @@ -0,0 +1,10 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/tags.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/tags.json new file mode 100644 index 0000000..40f9614 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/tags.json @@ -0,0 +1,11 @@ +[ + { + "valueSource": "expr", + "expression": "if(isNull({[.]PlantPAXBlink}),False,!{[.]PlantPAXBlink})", + "dataType": "Boolean", + "name": "PlantPAXBlink", + "executionMode": "FixedRate", + "executionRate": 2000, + "tagType": "AtomicTag" + } +] \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/unary-resource.json new file mode 100644 index 0000000..79e9663 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-definition/default/_Settings/unary-resource.json @@ -0,0 +1,12 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "tags.json" + ], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/SupportDataTypes/udts.json b/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/SupportDataTypes/udts.json new file mode 100644 index 0000000..78cf265 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/SupportDataTypes/udts.json @@ -0,0 +1,646 @@ +[ + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_CondTxt", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "0", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "1", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "2", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "3", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "4", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "5", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "6", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "7", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "8", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "9", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "10", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "11", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "12", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "13", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "14", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "15", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "rawHigh": 4.0, + "valueSource": "memory", + "scaledLow": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "clampMode": "Clamp_Both", + "enabled": true, + "tagType": "AtomicTag", + "scaledHigh": 4.0, + "scaleMode": "Linear", + "readOnly": false, + "dataType": "Int4", + "name": "Severity", + "rawLow": 1.0, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "value": 1 + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_NavTag", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "0", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "1", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "2", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "3", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "4", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "5", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "6", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "7", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "8", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "9", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "10", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "11", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "12", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "13", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "14", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}[{TagName}]" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "15", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "rawHigh": 4.0, + "valueSource": "memory", + "scaledLow": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "clampMode": "Clamp_Both", + "enabled": true, + "tagType": "AtomicTag", + "scaledHigh": 4.0, + "scaleMode": "Linear", + "readOnly": false, + "dataType": "Int4", + "name": "Severity", + "rawLow": 1.0, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "value": 1 + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "tagType": "AtomicTag" + } + ] + } +] \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/SupportDataTypes/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/SupportDataTypes/unary-resource.json new file mode 100644 index 0000000..8fb3cc0 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/SupportDataTypes/unary-resource.json @@ -0,0 +1,12 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "udts.json" + ], + "attributes": { + "config": {} + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/udts.json b/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/udts.json new file mode 100644 index 0000000..9b43799 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/udts.json @@ -0,0 +1,37835 @@ +[ + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_VSD", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": "Historian" + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_DriveFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_FailToStart", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_FailToStop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_DriveFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_FailToStart", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_FailToStop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_AllowLocal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Area", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_DecPlcs", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Description for display on HMI", + "tooltip": "Description for display on HMI", + "name": "Cfg_Desc", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_DriveFaultAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_DriveFaultResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_DriveFaultSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "Cfg_ExtKeep", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ExtStopPrio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FailToStartAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FailToStartResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_FailToStartSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Time after Start to get Run Feedback before Fault (sec)", + "tooltip": "Time after Start to get Run Feedback before Fault (sec) ", + "name": "Cfg_FailToStartT", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FailToStopAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FailToStopResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_FailToStopSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Time after Start to get Run Feedback before Fault (sec)", + "tooltip": "Time after Start to get Run Feedback before Fault (sec) ", + "name": "Cfg_FailToStopT", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_FwdText", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasDriveFaultAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasFailToStartAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasFailToStopAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasFwdPermObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIOFaultAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasInpDatalink", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkTripAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasJog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMoreObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasOutDatalink", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasResInhObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasRevPermObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasReverse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dDrive provides feedback signal on Inp_Running when running", + "tooltip": "1\u003dDrive provides feedback signal on Inp_Running when running ", + "name": "Cfg_HasRunFdbk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasRunTimeObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasSpeedFdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IOFaultSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_InpDLDecPlcs", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_InpDatalinkEU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_InpDatalinkEUMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_InpDatalinkEUMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_InpDatalinkLabel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_InpDatalinkRawMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_InpDatalinkRawMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IntlkTripSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Label for graphic symbol displayed on HMI", + "tooltip": "Label for graphic symbol displayed on HMI ", + "name": "Cfg_Label", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MaxJogT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MaxSpdRef", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MinSpdRef", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OCmdResets", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "Cfg_OperKeep", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Enabled\u003dOCmd_Stop has priority, accepted any time, Disabled\u003dOCmd_Stop only in Oper, Maint Mode.\n", + "tooltip": "1\u003dOCmd_Stop has priority, accepted any time, 0\u003dOCmd_Stop only in Oper, Maint Mode. ", + "name": "Cfg_OperStopPrio", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_OutDLDecPlcs", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_OutDatalinkEU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OutDatalinkEUMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OutDatalinkEUMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_OutDatalinkLabel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OutDatalinkMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OutDatalinkMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OutDatalinkRawMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OutDatalinkRawMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OvrdPermIntlk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "Cfg_ProgKeep", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_ResetPulseT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_RevText", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SetTrack", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SetTrackOvrdHand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedOnFailToStart", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedOnIOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SimRampT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SimScaleEU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SimScaleRaw", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_SpeedFdbkEU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SpeedFdbkEUMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SpeedFdbkEUMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SpeedFdbkRawMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SpeedFdbkRawMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_SpeedRefEU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SpeedRefEUMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SpeedRefEUMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SpeedRefRawMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SpeedRefRawMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_StartHornT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Tagname for display on HMI", + "tooltip": "Tagname for display on HMI ", + "name": "Cfg_Tag", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_UseRunFdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_UseSpeedFdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_XCmdResets", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "CmdSrc", + "typeId": "Plant PAX/P_CmdSrc", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "DriveFault", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Alarm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_FdbkEU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_FdbkRaw", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_InpDLEU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_InpDLRaw", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_OutDLEU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_OutDLLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_OutDLRaw", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_RefEU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_RefLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_RefRaw", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Sim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Timer", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "FailToStart", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "FailToStop", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Lib", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "HMI_Tab", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Type", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "max({[.]DriveFault/Alarm.AlertCurrentSeverity},\n\t{[.]FailToStart/Alarm.AlertCurrentSeverity},\n\t{[.]FailToStop/Alarm.AlertCurrentSeverity},\n\t{[.]IntlkTrip/Alarm.AlertCurrentSeverity},\n\t{[.]IOFault/Alarm.AlertCurrentSeverity},\n\t{[.]Sts_Alarm.AlertCurrentSeverity}\n\t )\n", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "HighestPriority", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "IOFault", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Accelerating", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_ActualDir", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Alarm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_AtSpeed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_CommandDir", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_Datalink", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Decelerating", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_ExtInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Faulted", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_FwdNBPermOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_FwdPermOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_HornInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkAvail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_LastFaultCode", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_NBIntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_OvrdCmd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_OvrdOutDatalink", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_OvrdSpeed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Ready", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_RevNBPermOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_RevPermOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Running", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Sim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_SpeedFdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "IntlkTrip", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Mode", + "typeId": "Plant PAX/P_Mode", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_CfgErr", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_DriveNR", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Fail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Nrdy_Intlk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Perm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_PrioStop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Trip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_JogFwd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_JogRev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Reset and Acknowledge all Alarms\n", + "tooltip": "Operator Command to Reset and Acknowledge all Alarms ", + "name": "OCmd_ResetAckAll", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_StartFwd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_StartRev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Acquire (Prog to Oper) / Lock Ownership", + "tooltip": "Operator Command to Acquire (Prog to Oper) / Lock Ownership ", + "name": "OCmd_Stop", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_JogFwd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_JogRev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_OSet", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_ResetAckAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_SpeedRef", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_StartFwd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_StartRev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Stop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "OSet_OutDatalink", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Setting of Speed Reference (EU)", + "tooltip": "Operator Setting of Speed Reference (EU)", + "name": "OSet_SpeedRef", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "SourceDataType": "Float4", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_ClearFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Out_Datalink", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Fwd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Horn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Jog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Rev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Run", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Out_SpeedRef", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Start", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Stop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_DriveFaultAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_DriveFaultSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_DriveFaultUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_DriveFaultUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStartAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStartSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStartUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStartUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStopAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStopSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStopUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStopUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Lock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_StartFwd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_StartRev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Stop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "PSet_OutDatalink", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "PSet_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "PSet_SpeedRef", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ_IO", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Accel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ActualDir", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "historicalDeadbandStyle": "Discrete", + "alarms": [ + { + "setpointA": 1.0, + "name": "Alarm", + "priority": "High", + "ackMode": "Auto", + "displayPath": { + "bindType": "UDTParameter", + "value": "{PathToTag}" + } + } + ], + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "Historian", + "name": "Sts_Alarm", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "Sts_AlmInh", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_AtSpeed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Available", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_BypActive", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Cmd},\n0,1,2,3,4,5, \n0, //0 Device Command 0\u003dNone, 1\u003dStop, 2\u003dStartFwd 3\u003dStartRev 4\u003dJogFwd 5\u003dJogRev\n0, //1\n1, //2\n1, //3\n1, //4\n1, //5\n0)\n", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "historicalDeadbandStyle": "Discrete", + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SweetWater", + "name": "Sts_Cmd", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_CommandDir", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Decel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_DriveFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_DriveFaultDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_DriveFaultShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_DriveFaultSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Err", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ext", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ExtReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStart", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStartDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStartShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStartSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStopDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStopShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStopSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Horn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_JoggingFwd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_JoggingRev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MAcqRcvd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Maint", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MaintByp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "Sts_NotRdy", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_NotReady", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OperLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyReset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "historyProvider": "Historian", + "name": "Sts_RunningFwd", + "historyEnabled": true, + "tagGroup": "Process Variable", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RunningRev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_SpeedLimited", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_StartingFwd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_StartingRev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Stopped", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_StoppingFwd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_StoppingRev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Command 0\u003dNone, 1\u003dStop, 2\u003dStartFwd 3\u003dStartRev 4\u003dJogFwd 5\u003dJogRev\n", + "tooltip": "Device Command 0\u003dNone, 1\u003dStop, 2\u003dStartFwd 3\u003dStartRev 4\u003dJogFwd 5\u003dJogRev ", + "name": "Val_Cmd", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Cmd},\n0,1,2,3,4,5,\n\n\"No Cmd\", //0\n\"Stop\", //1\n\"Start Forward\", //2\n\"Start Reverse\", //3\n\"Jog F\",//4\n\"Jog R\",//5\n\nforceQuality(\"!BAD STATE!\",0)) //other", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Val_Cmd Text", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Fault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Val_FaultDesc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Fdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_InpDatalink", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float8", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Val_LastFaultCode", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Notify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_NotifyAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_OutDatalink", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "historicalDeadband": 0.2, + "dataType": "Float4", + "historyProvider": "Historian", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Val_SpeedFdbk", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_SpeedFdbkEUMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_SpeedFdbkEUMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "historicalDeadband": 0.2, + "dataType": "Float4", + "historyProvider": "Historian", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Val_SpeedRef", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_SpeedRefEUMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_SpeedRefEUMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Val_Sts", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Sts},\n1,2,3,4,5,6,7,8,33,\n\"Stop\", //1\n\"Run Forward\", //2\n\"Run Reverse\", //3\n\"Jog F\",//4\n\"Jog R\",//5\n\"Stopping\", //6\n\"Starting F\", //7\n\"Starting R\", //8\n\"Disabled\", //33\nforceQuality(\"!BAD STATE!\",0)) //other", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Val_Sts Text", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_UnackAlmC", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "value": "4.10.05", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Acq", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_JogFwd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_JogRev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_StartFwd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_StartRev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Stop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "XSet_OutDatalink", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "XSet_SpeedRef", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_Mode", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Program Command to Lock Mode in Prog\n", + "tooltip": "Program Command to Lock Mode in Prog ", + "name": "PCmd_Lock", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Program Command to Unlock Mode\n", + "tooltip": "Program Command to Unlock Mode ", + "name": "PCmd_Unlock", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "value": "1.0", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maintenance command to acquire ownership (Operator/Program/Override to Maintenance).", + "tooltip": "Maintenance command to acquire ownership (Operator/Program/Override to Maintenance).", + "name": "XCmd_Acq", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maintenance command to release ownership (Maint to Operator/Program/Override).", + "tooltip": "Maintenance command to release ownership (Maint to Operator/Program/Override).", + "name": "XCmd_Rel", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_Perm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Area", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int2", + "name": "Cfg_Bypassable", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "Cfg_CondTxt", + "typeId": "Plant PAX/SupportDataTypes/Cfg_CondTxt", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Desc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMoreObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int2", + "name": "Cfg_HasNav", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Label", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int2", + "name": "Cfg_OKState", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Tag", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Lib", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "HMI_Tab", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Type", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_BypActive", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm00", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm01", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm02", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm03", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm04", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm05", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm06", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm07", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm08", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm09", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm10", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm11", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm12", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm13", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm14", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Perm15", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int2", + "name": "MSet_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "P_Perm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_BypActive", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_NBPermOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int2", + "name": "Sts_Perm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_PermOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_Gate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_GateCond", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_GateDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_InpCond", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_OffDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_OnDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Timer", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Gate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "P_Gate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "rawHigh": 4.0, + "valueSource": "memory", + "scaledLow": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "clampMode": "Clamp_Both", + "enabled": true, + "tagType": "AtomicTag", + "scaledHigh": 4.0, + "scaleMode": "Linear", + "readOnly": false, + "dataType": "Int4", + "name": "Severity", + "rawLow": 1.0, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "value": 1 + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Err", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Gate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.Ack" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.Alm" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "historicalDeadband": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "historicalDeadbandStyle": "Discrete", + "alarms": [ + { + "setpointA": 1.0, + "activePipeline": "All Sites", + "name": "Alarm", + "displayPath": { + "bindType": "UDTParameter", + "value": "{PathToTag}" + }, + "priority": { + "bindType": "Tag", + "value": "[.]Severity" + } + } + ], + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Boolean", + "name": "Alarm", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.Cfg_AckReqd" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_AckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.Cfg_AllowDisable" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_AllowDisable", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.Cfg_AllowShelve" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_AllowShelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.Cfg_AlmMinOnT" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_AlmMinOnT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.Cfg_Cond" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Cond", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.Cfg_Exists" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_Exists", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.Cfg_Has{InstanceName}Alm" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_Has_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.Cfg_MaxShelfT" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_MaxShelfT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.Cfg_ResetReqd" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.Cfg_Severity" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_Severity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.Cfg_Tag" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Tag", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int2", + "name": "Com_AE", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Disabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Severity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Timer", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Lib", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "HMI_Tab", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Type", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "documentation": "Alarm Condition Input 1\u003dAlarm", + "name": "Inp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Disable", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Enable", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Test", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Disable", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Enable", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Test", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Ack", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Shelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Unshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Ack", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Shelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Unshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCfg_AllowExist", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "documentation": "Program Command to Acknowledge alarm", + "name": "PCmd_Ack", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Suppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Unshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Unsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "rawHigh": 4.0, + "valueSource": "expr", + "scaledLow": 1.0, + "expression": "if ({[.]Cfg_Severity}\u003e\u003d751, 4, \r\n\tif({[.]Cfg_Severity}\u003e\u003d501, 3,\r\n\t\tif({[.]Cfg_Severity}\u003e\u003d251, 2,\r\n\t\t\tif({[.]Cfg_Severity}\u003e\u003d1, 1, 4\r\n\t))))", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "clampMode": "Clamp_Both", + "enabled": true, + "tagType": "AtomicTag", + "scaledHigh": 4.0, + "scaleMode": "Linear", + "readOnly": false, + "dataType": "Int4", + "name": "Severity", + "rawLow": 1.0, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "value": 1 + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Shelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_AlmInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Err", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyReset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Suppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_MinToUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Notify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_SecToUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_DIn", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": "Historian" + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_TgtDisagree", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "AlarmGroup", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "value": "Unassigned", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_TgtDisagree", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Text to display in PV\u003d0 State", + "tooltip": "Text to display in PV\u003d0 State", + "name": "Cfg_0StText", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Text to display in PV\u003d1 State", + "tooltip": "Text to display in PV\u003d1 State", + "name": "Cfg_1StText", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Area", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Minimum time Input Sts must maintain state (sec)", + "tooltip": "Minimum time Input Sts must maintain state (sec)", + "name": "Cfg_Debounce", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Description for display on HMI", + "tooltip": "Description for display on HMI", + "name": "Cfg_Desc", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_GateDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIOFaultAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMoreObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasTgtDisagreeAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IOFaultSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Label for graphic symbol displayed on HMI", + "tooltip": "Label for graphic symbol displayed on HMI ", + "name": "Cfg_Label", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_NoSubstPV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_NormTextVis", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Tagname for display on HMI", + "tooltip": "Tagname for display on HMI ", + "name": "Cfg_Tag", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dTarget Disagree Alarm must be acknowledged", + "tooltip": "1\u003dTarget Disagree Alarm must be acknowledged", + "name": "Cfg_TgtDisagreeAckReqd", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Minimum time for Input to agree with Target to clear Status (sec)", + "tooltip": "Minimum time for Input to agree with Target to clear Status (sec)", + "name": "Cfg_TgtDisagreeOffDly", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Minimum time for Input to disagree with Target to raise Status (sec)", + "tooltip": "Minimum time for Input to disagree with Target to raise Status (sec)", + "name": "Cfg_TgtDisagreeOnDly", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_TgtDisagreeResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_TgtDisagreeSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Alarm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Timer", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "FieldVerified", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "value": false, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Lib", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "HMI_Tab", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Type", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "IOFault", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Gate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Input Signal (process variable) from Sensor", + "tooltip": "Input Signal (process variable) from Sensor", + "name": "Inp_PV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_PVNotify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dReset all Alarms requiring reset", + "tooltip": "1\u003dReset all Alarms requiring reset ", + "name": "Inp_Reset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Sim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Target State of Input (Disagree Status if not in Target State)", + "tooltip": "Target State of Input (Disagree Status if not in Target State)", + "name": "Inp_Target", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maintenance Command to use Input PV (normal)", + "tooltip": "Maintenance Command to use Input PV (normal)", + "name": "MCmd_InpPV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maintenance Command to use Substitute PV (override input)", + "tooltip": "Maintenance Command to use Substitute PV (override input)", + "name": "MCmd_SubstPV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_InpPV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_SubstPV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maintenance-Entered Substitute PV", + "tooltip": "Maintenance-Entered Substitute PV", + "name": "MSet_SubstPV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Reset and Acknowledge all Alarms", + "tooltip": "Operator Command to Reset and Acknowledge all Alarms", + "name": "OCmd_ResetAckAll", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_ResetAckAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dDevice has a Maintenance Bypass function active", + "tooltip": "1\u003dDevice has a Maintenance Bypass function active", + "name": "Set_SimPV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "SrcQ", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "SrcQ_IO", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "historicalDeadband": 0.1, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "historicalDeadbandStyle": "Discrete", + "documentation": "Discrete Input Status (incl. Debounce, Manual Override, if used)", + "tooltip": "Discrete Input Status (incl. Debounce, Manual Override, if used)", + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Boolean", + "name": "Sts", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "Sts_AlmInh", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dDevice has a Maintenance Bypass function active", + "tooltip": "1\u003dDevice has a Maintenance Bypass function active", + "name": "Sts_MaintByp", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "Sts_PV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_RdyReset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dDevice has a Maintenance Bypass function active", + "tooltip": "1\u003dDevice has a Maintenance Bypass function active", + "name": "Sts_SubstPV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_TgtDisagree", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "TgtDisagree", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "name": "TgtDisagreeGate", + "typeId": "Plant PAX/P_Gate", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "Val_NotifyAll", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "historicalDeadband": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "historicalDeadbandStyle": "Discrete", + "documentation": "Device Confirmed Sts 0\u003dPV Good, 6\u003dPV Bad, 7\u003dSubstitute PV", + "tooltip": "Device Confirmed Sts 0\u003dPV Good, 6\u003dPV Bad, 7\u003dSubstitute PV", + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Int4", + "name": "Val_Sts", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Sts},\n0,6,7,\n\"PV Good\", //0\n\"PV Bad\", //6\n\"Substitute PV\", //7\nforceQuality(\"!BAD STATE!\",0)) //other\n\n//Device Confirmed Sts 0\u003dPV Good, 6\u003dPV Bad, 7\u003dSubstitute PV\n", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Confirmed Sts 0\u003dPV Good, 6\u003dPV Bad, 7\u003dSubstitute PV", + "tooltip": "Device Confirmed Sts 0\u003dPV Good, 6\u003dPV Bad, 7\u003dSubstitute PV", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "String", + "name": "Val_Sts Text", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "Val_UnackAlmC", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_Motor", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": "Historian" + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_FailToStart", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_FailToStop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_FailToStart", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_FailToStop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAllow Local Start/Stop without alarm, 0\u003dStart/Stop from HMI/prog only\n", + "tooltip": "1\u003dAllow Local Start/Stop without alarm, 0\u003dStart/Stop from HMI/prog only ", + "name": "Cfg_AllowLocal", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Area", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Description for display on HMI", + "tooltip": "Description for display on HMI", + "name": "Cfg_Desc", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ExtStopPrio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FailToStartAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FailToStartResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_FailToStartSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Time after Start to get Run Feedback before Fault (sec)", + "tooltip": "Time after Start to get Run Feedback before Fault (sec) ", + "name": "Cfg_FailToStartT", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FailToStopAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FailToStopResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_FailToStopSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Time after Stop to get Run Feedback before Fault (sec)", + "tooltip": "Time after Stop to get Run Feedback before Fault (sec) ", + "name": "Cfg_FailToStopT", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasFailToStartAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasFailToStopAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIOFaultAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dTells HMI a P_Intlk is connected to Inp_Intlk", + "tooltip": "1\u003dTells HMI a P_Intlk is connected to Inp_Intlk", + "name": "Cfg_HasIntlkObj", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkTripAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasJog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMoreObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasOvldObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasPermObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasResInhObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dDrive provides feedback signal on Inp_Running when running", + "tooltip": "1\u003dDrive provides feedback signal on Inp_Running when running ", + "name": "Cfg_HasRunFdbk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasRunTimeObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IOFaultSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IntlkTripSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Label for graphic symbol displayed on HMI", + "tooltip": "Label for graphic symbol displayed on HMI ", + "name": "Cfg_Label", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MaxJogT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OCmdResets", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Enabled\u003dOCmd_Stop has priority, accepted any time, Disabled\u003dOCmd_Stop only in Oper, Maint Mode.\n", + "tooltip": "1\u003dOCmd_Stop has priority, accepted any time, 0\u003dOCmd_Stop only in Oper, Maint Mode. ", + "name": "Cfg_OperStopPrio", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OvrdPermIntlk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedOnFailToStart", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedOnIOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SimFdbkT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_StartHornT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Tagname for display on HMI", + "tooltip": "Tagname for display on HMI ", + "name": "Cfg_Tag", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dMotor run feedback should be used for failure checking", + "tooltip": "1\u003dMotor run feedback should be used for failure checking ", + "name": "Cfg_UseRunFdbk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_XCmdResets", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "CmdSrc", + "typeId": "Plant PAX/P_CmdSrc", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Alarm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Sim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Timer", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "FailToStart", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "Integer", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "FailToStop", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "Integer", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Lib", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "HMI_Tab", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Type", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "IOFault", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "Integer", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_ExtInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_HornInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkAvail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_NBIntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_NBPermOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_OvldNotify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_OvrdCmd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_PermOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "name": "Inp_RunFdbk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Sim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "IntlkTrip", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "Integer", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_CfgErr", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Fail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dDevice Not Ready: I/O Fault (Shed Requires Reset)", + "tooltip": "1\u003dDevice Not Ready: I/O Fault (Shed Requires Reset) ", + "name": "Nrdy_IOFault", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Nrdy_Intlk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Perm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_PrioStop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Jog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Reset all Alarms requiring Reset", + "tooltip": "Operator Command to Reset all Alarms requiring Reset ", + "name": "OCmd_Reset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Reset and Acknowledge all Alarms\n", + "tooltip": "Operator Command to Reset and Acknowledge all Alarms ", + "name": "OCmd_ResetAckAll", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Acquire (Prog to Oper) / Lock Ownership", + "tooltip": "Operator Command to Acquire (Prog to Oper) / Lock Ownership ", + "name": "OCmd_Start", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Acquire (Prog to Oper) / Lock Ownership", + "tooltip": "Operator Command to Acquire (Prog to Oper) / Lock Ownership ", + "name": "OCmd_Stop", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Jog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_ResetAckAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Start", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Stop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Horn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "name": "Out_Run", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Start", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Stop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStartAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStartSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStartUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStartUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStopAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStopSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStopUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailToStopUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Program Command to Lock Mode in Prog\n", + "tooltip": "Program Command to Lock Mode in Prog ", + "name": "PCmd_Lock", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "name": "PCmd_Oper", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "name": "PCmd_Prog", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "name": "PCmd_Reset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "name": "PCmd_Start", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "name": "PCmd_Stop", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Program Command to Unlock Mode\n", + "tooltip": "Program Command to Unlock Mode ", + "name": "PCmd_Unlock", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "PSet_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "value": "1.0", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ_IO", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "Sts_AlmInh", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Available", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dBypassing Active (Bypassed or Maintenance)", + "tooltip": "1\u003dBypassing Active (Bypassed or Maintenance) ", + "name": "Sts_BypActive", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dBypassable Interlocks and Permissives are Bypassed", + "tooltip": "1\u003dBypassable Interlocks and Permissives are Bypassed ", + "name": "Sts_Bypass", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Cmd},\n0,1,2,3,4,5, \n0, //0 Device Command 0\u003dNone, 1\u003dStop, 2\u003dStartFwd 3\u003dStartRev 4\u003dJogFwd 5\u003dJogRev\n0, //1\n1, //2\n1, //3\n1, //4\n1, //5\n0)\n", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "historicalDeadbandStyle": "Discrete", + "documentation": "Evaluates if any command to run is being given or not. ", + "tooltip": "Evaluates if any command to run is being given or not. ", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SweetWater", + "name": "Sts_Cmd", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Err", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ext", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ExtReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStart", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStartDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStartShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStartSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStopDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStopShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailToStopSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Horn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Cmd},\n0,1,2,3,4,5, \n0, //0 Device Command 0\u003dNone, 1\u003dStop, 2\u003dStartFwd 3\u003dStartRev 4\u003dJogFwd 5\u003dJogRev\n0, //1\n1, //2\n1, //3\n1, //4\n1, //5\n0)\n", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "historicalDeadbandStyle": "Discrete", + "documentation": "", + "tooltip": "", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SweetWater", + "name": "Sts_IntlkTrip", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Jogging", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MAcqRcvd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Maint", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MaintByp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "Sts_NotRdy", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OperLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyReset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "historicalDeadband": 0.1, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "historicalDeadbandStyle": "Discrete", + "name": "Sts_Running", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "historicalDeadbandStyle": "Discrete", + "documentation": "1\u003dMotor requested to run and awaiting run feedback", + "tooltip": "1\u003dMotor requested to run and awaiting run feedback ", + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "Database", + "name": "Sts_Starting", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Stopped", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Stopping", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Command 0\u003dNone, 1\u003dStop, 2\u003dStart\n", + "tooltip": "Device Command 0\u003dNone, 1\u003dStop, 2\u003dStart ", + "name": "Val_Cmd", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Cmd},\n0,1,2,\n\"No Cmd\", //0\n\"Stop\", //1\n\"Start\", //2\n\nforceQuality(\"!BAD STATE!\",0)) //other\n//Device Command 0\u003dNone, 1\u003dStop, 2\u003dStart\n", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Command 0\u003dNone, 1\u003dStop, 2\u003dStart\n", + "tooltip": "Device Command 0\u003dNone, 1\u003dStop, 2\u003dStart ", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "String", + "name": "Val_Cmd Text", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Fault Status 0\u003dNone, 16\u003dFail to Start, 17 \u003d Fail to Stop, 32\u003dI/O Fault, 34\u003dConfig Error\n", + "tooltip": "Device Fault Status 0\u003dNone, 16\u003dFail to Start, 17 \u003d Fail to Stop, 32\u003dI/O Fault, 34\u003dConfig Error ", + "name": "Val_Fault", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Fault},\n0,16,17,32,34,\n\"None\", //0\n\"Fail to Start\", //16\n\"Fail to Stop\", //17\n\"IO Fault\", //32\n\"Config Error\", //34\n\nforceQuality(\"!BAD STATE!\",0)) //other\n//Device Fault Status 0\u003dNone, 16\u003dFail to Start, 17 \u003d Fail to Stop, 32\u003dI/O Fault, 34\u003dConfig Error\n", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Fault Status 0\u003dNone, 16\u003dFail to Start, 17 \u003d Fail to Stop, 32\u003dI/O Fault, 34\u003dConfig Error", + "tooltip": "Device Fault Status 0\u003dNone, 16\u003dFail to Start, 17 \u003d Fail to Stop, 32\u003dI/O Fault, 34\u003dConfig Error ", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "String", + "name": "Val_Fault Text", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Confirmed Sts 0\u003d? 1\u003dStopped, 2\u003dRunning, 7\u003dStopping, 8\u003dStarting, 33\u003dDisabled", + "tooltip": "Device Confirmed Sts 0\u003d? 1\u003dStopped, 2\u003dRunning, 7\u003dStopping, 8\u003dStarting, 33\u003dDisabled ", + "name": "Val_Fdbk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Confirmed Sts 0\u003d? 1\u003dStopped, 2\u003dRunning, 7\u003dStopping, 8\u003dStarting, 33\u003dDisabled", + "tooltip": "Device Confirmed Sts 0\u003d? 1\u003dStopped, 2\u003dRunning, 7\u003dStopping, 8\u003dStarting, 33\u003dDisabled ", + "name": "Val_NotifyAll", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Confirmed Sts 0\u003d? 1\u003dStopped, 2\u003dRunning, 7\u003dStopping, 8\u003dStarting, 33\u003dDisabled", + "tooltip": "Device Confirmed Sts 0\u003d? 1\u003dStopped, 2\u003dRunning, 7\u003dStopping, 8\u003dStarting, 33\u003dDisabled ", + "name": "Val_Sts", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Sts},\n0,1,2,7,8,33,\n\"Unknown\", //0\n\"Stop\", //1\n\"Running\", //2\n\"Stopping\",//7\n\"Starting\",//8\n\"Disabled\", //33\nforceQuality(\"!BAD STATE!\",0)) //other\n\n//Device Confirmed Sts 0\u003d? 1\u003dStopped, 2\u003dRunning, 7\u003dStopping, 8\u003dStarting, 33\u003dDisabled\n", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Confirmed Sts 0\u003d? 1\u003dStopped, 2\u003dRunning, 7\u003dStopping, 8\u003dStarting, 33\u003dDisabled\n", + "tooltip": "Device Confirmed Sts 0\u003d? 1\u003dStopped, 2\u003dRunning, 7\u003dStopping, 8\u003dStarting, 33\u003dDisabled ", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "String", + "name": "Val_Sts Text", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "valueSource": "memory", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "2019/3/7 - added P_motor udt, faceplate, templates", + "tooltip": "Ignition PlantPax objects version tracking", + "name": "Version", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maintenance command to acquire ownership (Operator/Program/Override to Maintenance).", + "tooltip": "Maintenance command to acquire ownership (Operator/Program/Override to Maintenance).", + "name": "XCmd_Acq", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maintenance command to release ownership (Maint to Operator/Program/Override).", + "tooltip": "Maintenance command to release ownership (Maint to Operator/Program/Override).", + "name": "XCmd_Rel", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_AIn", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": "Historian" + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Area", + "tooltip": "Process Area for security", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Description for display on HMI", + "tooltip": "Description for display on HMI", + "name": "Cfg_Desc", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Engineering Units for display on HMI", + "tooltip": "Engineering Units for display on HMI", + "name": "Cfg_EU", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FailAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Out-of-Range (fail) High/Low Deadband (EU)", + "tooltip": "Out-of-Range (fail) High/Low Deadband (EU)", + "name": "Cfg_FailDB", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_FailGateDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Out-of-Range (fail) High Limit (EU)", + "tooltip": "Out-of-Range (fail) High Limit (EU)", + "name": "Cfg_FailHiLim", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Out-of-Range (fail) Low Limit (EU)", + "tooltip": "Out-of-Range (fail) Low Limit (EU)", + "name": "Cfg_FailLoLim", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_FailOffDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_FailOnDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FailResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "documentation": "Failure Alarm Severity: 1..250\u003dLow, 251..500\u003dMedium, 501..750\u003dHigh, 751..1000\u003dUrgent", + "name": "Cfg_FailSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_FiltTC", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasChanObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasFailAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasHiAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasHiHiAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasLoAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasLoLoAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMoreObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HiAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_HiDB", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiGateDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HiHiAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_HiHiDB", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiHiGateDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Out-of-Range (fail) High Limit (EU)", + "tooltip": "Out-of-Range (fail) High Limit (EU)", + "name": "Cfg_HiHiLim", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiHiOffDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiHiOnDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HiHiResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiHiSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Out-of-Range (fail) High Limit (EU)", + "tooltip": "Out-of-Range (fail) High Limit (EU)", + "name": "Cfg_HiLim", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiOffDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiOnDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HiResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Input (unscaled) Maximum for Scaling", + "tooltip": "Input (unscaled) Maximum for Scaling ", + "name": "Cfg_InpRawMax", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Input (unscaled) Minimum for Scaling", + "tooltip": "Input (unscaled) Minimum for Scaling ", + "name": "Cfg_InpRawMin", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Label for graphic symbol displayed on HMI", + "tooltip": "Label for graphic symbol displayed on HMI ", + "name": "Cfg_Label", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_LoAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_LoDB", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoGateDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Out-of-Range (fail) High Limit (EU)", + "tooltip": "Out-of-Range (fail) High Limit (EU)", + "name": "Cfg_LoLim", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_LoLoAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_LoLoDB", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoLoGateDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Out-of-Range (fail) High Limit (EU)", + "tooltip": "Out-of-Range (fail) High Limit (EU)", + "name": "Cfg_LoLoLim", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoLoOffDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoLoOnDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_LoLoResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoLoSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoOffDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoOnDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_LoResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_NoSubstPV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_PVDecPlcs", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "PV (Output) Maximum for Scaling to EU", + "tooltip": "PV (Output) Maximum for Scaling to EU ", + "name": "Cfg_PVEUMax", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "SourceDataType": "Float4", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "PV (Output) Minimum for Scaling to EU", + "tooltip": "PV (Output) Minimum for Scaling to EU ", + "name": "Cfg_PVEUMin", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "SourceDataType": "Float4", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Tagname for display on HMI", + "tooltip": "Tagname for display on HMI ", + "name": "Cfg_Tag", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_UseChanSrcQ", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Alarm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_EU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Filt", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Raw", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Timer", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Fail", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "name": "FailGate", + "typeId": "Plant PAX/P_Gate", + "parameters": { + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Lib", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "HMI_Tab", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Type", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Hi", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "HiGate", + "typeId": "Plant PAX/P_Gate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "HiHi", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "name": "HiHiGate", + "typeId": "Plant PAX/P_Gate", + "parameters": { + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_FailGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_HiGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_HiHiGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_LoGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_LoLoGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": true, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Input Signal (process variable) from Sensor", + "tooltip": "Input Signal (process variable) from Sensor ", + "name": "Inp_PV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_PVBad", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_PVNotify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_PVSrcQ", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_PVUncertain", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dReset all Alarms requiring reset", + "tooltip": "1\u003dReset all Alarms requiring reset ", + "name": "Inp_Reset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Sim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Lo", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "name": "LoGate", + "typeId": "Plant PAX/P_Gate", + "parameters": { + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "LoLo", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "name": "LoLoGate", + "typeId": "Plant PAX/P_Gate", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maintenance Command to use Input PV (normal)", + "tooltip": "Maintenance Command to use Input PV (normal)", + "name": "MCmd_InpPV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maintenance Command to use Substitute PV (override input)", + "tooltip": "Maintenance Command to use Substitute PV (override input) ", + "name": "MCmd_SubstPV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_InpPV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_SubstPV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maintenance-Entered Substitute PV (EU)", + "tooltip": "Maintenance-Entered Substitute PV (EU) ", + "name": "MSet_SubstPV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Mode", + "typeId": "Plant PAX/P_Mode", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "Integer", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": false, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_ClearCapt", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Reset and Acknowledge all Alarms\n", + "tooltip": "Operator Command to Reset and Acknowledge all Alarms ", + "name": "OCmd_ResetAckAll", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_ResetAckAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_ClearCapt", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiHiAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiHiSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiHiUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiHiUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoLoAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoLoSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoLoUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoLoUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "documentation": "Program Command to Reset all Alarms requiring Reset", + "name": "PCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "P_AIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "name": "Prime Version", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dUse simulated PV (Set_SimPV); 0\u003dUse Input (Inp_PV)", + "tooltip": "1\u003dUse simulated PV (Set_SimPV); 0\u003dUse Input (Inp_PV) ", + "name": "Set_SimPV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ_IO", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "Sts_AlmInh", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Err", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": true, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dUsing Substitute PV (Input being overridden)", + "tooltip": "1\u003dUsing Substitute PV (Input being overridden)", + "name": "Sts_Fail", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailCmp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Hi", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiCmp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiHi", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiHiCmp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiHiDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiHiGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiHiShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiHiSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Lo", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoCmp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoLo", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoLoCmp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoLoDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoLoGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoLoShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoLoSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MaintByp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": true, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "name": "Sts_PVBad", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_PVUncertain", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dReset all Alarms requiring reset", + "tooltip": "1\u003dReset all Alarms requiring reset ", + "name": "Sts_RdyReset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": true, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dUsing Substitute PV (Input being overridden)", + "tooltip": "1\u003dUsing Substitute PV (Input being overridden)", + "name": "Sts_SubstPV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "historicalDeadband": 0.1, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Analog Value (after Substitute PV, if used)\n", + "tooltip": "Analog Value (after Substitute PV, if used) ", + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Float4", + "name": "Val", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "historicalDeadband": 0.1, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Fault Status 0\u003dnone, 20\u003dLo, 21\u003dHi, 24\u003dLoLo, 25\u003dHiHi, 32\u003dFail, 34\u003dCfgErr", + "tooltip": "", + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Int4", + "name": "Val_Fault", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_InpPV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Notify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_NotifyAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_PVEUMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_PVEUMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_PVMaxCapt", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_PVMinCapt", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_UnackAlmC", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "name": "Version", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "enabled": true, + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_Intlk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Area", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_Bypassable", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "SourceDataType": "Int4", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "name": "Cfg_CondTxt", + "typeId": "Plant PAX/SupportDataTypes/Cfg_CondTxt", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_Desc", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_HasNav", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "SourceDataType": "Int4", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_Label", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_Latched", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "SourceDataType": "Int4", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "name": "Cfg_NavTag", + "typeId": "Plant PAX/SupportDataTypes/Cfg_NavTag", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_OKState", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "SourceDataType": "Int4", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_Tag", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "EnableIn", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "EnableOut", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_BypActive", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk00", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk01", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk02", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk03", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk04", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk05", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk06", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk07", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk08", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk09", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk10", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk11", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk12", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk13", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk14", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Intlk15", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_LatchDefeat", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Inp_Reset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "MSet_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "OCmd_Reset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "PCmd_Reset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "value": "1.0", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_BypActive", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "BooleanArray", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_FirstOut", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "SourceDataType": "BooleanArray", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_Intlk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "SourceDataType": "BooleanArray", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_IntlkOK", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_NBIntlkOK", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_RdyReset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_PIDE", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": "Historian" + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_Fail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_HiDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_HiHiDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_LoDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_LoLoDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_Fail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_HiDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_HiHiDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_LoDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_LoLoDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Area", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_CVDecPlcs", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "CV Engineering Units for display on HMI", + "tooltip": "CV Engineering Units for display on HMI", + "name": "Cfg_CVEU", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "CV Engineering Units Maximum Value (CVEU)\n", + "tooltip": "CV Engineering Units Maximum Value (CVEU) ", + "name": "Cfg_CVEUMax", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "CV Engineering Units Minimum Value (CVEU)\n", + "tooltip": "CV Engineering Units Minimum Value (CVEU) ", + "name": "Cfg_CVEUMin", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_CVFailCVAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_CVFailLMAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_CVFailLatch", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_CVFailSPAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_CVNavTag", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CVRawMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CVRawMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CVRoCLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_CascSPNavTag", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_CtrlAction", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Derivitave gain. When the independent form of the PID algorithm is selected, enter the derivative gain in units of minutes into this value. When the dependent PID algorithm is used, enter the derivative time constant in units of minutes into this value. Enter 0 to disable the derivative control If DGain \u003c 0, the instruction sets the appropriate bit in Status and uses a value of DGain \u003d 0.\nValid \u003d 0.0 to maximum positive float\nDefault \u003d 0.0", + "name": "Cfg_DGain", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "NonPV Historized", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_Depend", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_DerivSPAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_DerivSmooth", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Description for display on HMI", + "tooltip": "Description for display on HMI", + "name": "Cfg_Desc", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_ExecT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "Cfg_ExtKeep", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FailAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FailResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_FailSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasAuto", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasCVNav", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasCasc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasCascSPNav", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasFailAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasHiDevAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasHiHiDevAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkTripAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasLoDevAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasLoLoDevAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMan", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMoreObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasPVNav", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasRatio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasSPRamp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HiDevAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_HiDevDB", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiDevGateDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_HiDevLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiDevOffDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiDevOnDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HiDevResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiDevSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HiHiDevAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_HiHiDevDB", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiHiDevGateDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_HiHiDevLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiHiDevOffDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiHiDevOnDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HiHiDevResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_HiHiDevSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Integral gain. When the independent form of the PID algorithm is selected, enter the integral gain in units of 1/minutes into this value. When the depenedent PID algorithm is selected, enter the integral time constant in units of minutes/repeat into this value. Enter 0 to disable the integral control If IGain \u003c 0, the instruction sets the appropriate bit in Status and uses a value of IGain \u003d 0.\nValid \u003d 0.0 to maximum positive float\nDefault \u003d 0.0", + "name": "Cfg_IGain", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "NonPV Historized", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_InitToMan", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_IntlkCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_IntlkSP", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IntlkTripCVAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IntlkTripLMAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripLatch", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IntlkTripSPAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IntlkTripSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Label for graphic symbol displayed on HMI", + "tooltip": "Label for graphic symbol displayed on HMI ", + "name": "Cfg_Label", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_LimitManCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_LoDevAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_LoDevDB", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoDevGateDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_LoDevLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoDevOffDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoDevOnDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_LoDevResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoDevSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_LoLoDevAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_LoLoDevDB", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoLoDevGateDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_LoLoDevLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoLoDevOffDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoLoDevOnDly", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_LoLoDevResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_LoLoDevSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_LockLM", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MaxCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MaxInactiveCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MaxRatio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maximum allowed Setpoint (SP) value (PVEU)", + "tooltip": "Maximum allowed Setpoint (SP) value (PVEU)", + "name": "Cfg_MaxSP", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MaxSPRoCDec", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MaxSPRoCInc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MinCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MinRatio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Minimum allowed Setpoint (SP) value (PVEU)", + "tooltip": "Minimum allowed Setpoint (SP) value (PVEU)", + "name": "Cfg_MinSP", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_NormLM", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "Cfg_OperKeep", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OvrdIntlk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Proportional gain. When the independent form of the PID algorighm is selected, enter the unitless porportional gain into this value. When the dependent PID algorithm is selected, enter the unitless controller gain into this value. Enter 0 to disable the proportional contorl. If PGain \u003c 0, the instruction sets the appropriate bit in Status and uses a value of PGain \u003d 0.\nValid \u003d 0.0 to maximum positive float.\nDefault \u003d 0.0", + "name": "Cfg_PGain", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "NonPV Historized", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_PVDecPlcs", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "PV Engineering Units for display on HMI", + "tooltip": "PV Engineering Units for display on HMI", + "name": "Cfg_PVEU", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "PV Engineering Units Maximum Value (PVEU)\n", + "tooltip": "PV Engineering Units Maximum Value (PVEU) ", + "name": "Cfg_PVEUMax", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "PV Engineering Units Mimimum Value (PVEU)\n", + "tooltip": "PV Engineering Units Mimimum Value (PVEU) ", + "name": "Cfg_PVEUMin", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_PVFailCVAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_PVFailLMAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_PVFailLatch", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_PVFailSPAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_PVNavTag", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_PVTrack", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "Cfg_ProgKeep", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_PropSPAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_PwrupCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_PwrupLM", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_PwrupSP", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_SPFailCVAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_SPFailLMAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SPFailLatch", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_SPFailSPAct", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SPRampMaxDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SetTrack", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SetTrackOvrdHand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SkipSPRoCLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Tagname for display on HMI", + "tooltip": "Tagname for display on HMI ", + "name": "Cfg_Tag", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_ZCDB", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ZCOff", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "CmdSrc", + "typeId": "Plant PAX/P_CmdSrc", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Alarm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_CVEU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_CVLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_CVRaw", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_PVEU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_RatioLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_SPLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Timer", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_ZCDB", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "Fail", + "typeId": "Plant PAX/P_Alarm", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "HMI_HasAutotune", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Lib", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "HMI_Tab", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Type", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "HiDev", + "typeId": "Plant PAX/P_Alarm", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "name": "HiDevGate", + "typeId": "Plant PAX/P_Gate", + "tagType": "UdtInstance" + }, + { + "name": "HiHiDev", + "typeId": "Plant PAX/P_Alarm", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "name": "HiHiDevGate", + "typeId": "Plant PAX/P_Gate", + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_CVIOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_CVInitVal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_CVNotify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_CascSP", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_CascSPNotify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_ExtInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_FF", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_FFPrev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_HandFdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_HandFdbkBad", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_HiDevGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_HiHiDevGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkAvail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_LoDevGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_LoLoDevGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_NBIntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "CV override value. CV equals this value when in override mode. This value should correspond to a safe state output of the PID loop. If CVOverride \u003c 0 or \u003e 100, the instructions sets the appropriate bit in Status and limits the CV value.\nValid \u003d 0.0 to 100.0\nDefault \u003d 0.0", + "name": "Inp_OvrdCV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_OvrdCmd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_OvrdRatio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Setpoint to use in Override Mode (PVEU)\n", + "tooltip": "Setpoint to use in Override Mode (PVEU) ", + "name": "Inp_OvrdSP", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_OvrdSPRampT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_OvrdSPRoCLimDec", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_OvrdSPRoCLimInc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_OvrdSPTarget", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Scaled process variable input. This value is typically read from an analog input module.\nValid \u003d any float\nDefault \u003d 0.0", + "name": "Inp_PV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_PVBad", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_PVNotify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_PVSrcQ", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_PVUncertain", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_UseCVInitVal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_UseCVPrev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_UseFFPrev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_WindupHi", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_WindupLo", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "IntlkTrip", + "typeId": "Plant PAX/P_Alarm", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "name": "LoDev", + "typeId": "Plant PAX/P_Alarm", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "name": "LoDevGate", + "typeId": "Plant PAX/P_Gate", + "tagType": "UdtInstance" + }, + { + "name": "LoLoDev", + "typeId": "Plant PAX/P_Alarm", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "name": "LoLoDevGate", + "typeId": "Plant PAX/P_Gate", + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Mode", + "typeId": "Plant PAX/P_Mode", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + } + }, + "tagGroup": "Default", + "enabled": false, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_CfgErr", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Init", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Intlk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Auto mode indicator. Set when in the Auto mode.", + "tooltip": "Operator Command to select Automatic control ", + "name": "OCmd_Auto", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Casc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Auto mode indicator. Set when in the Auto mode.", + "tooltip": "Operator Command to select Manual control ", + "name": "OCmd_Man", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_NormLM", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Reset and Acknowledge all Alarms\n", + "tooltip": "Operator Command to Reset and Acknowledge all Alarms ", + "name": "OCmd_ResetAckAll", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_SPRampStart", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_SPRampStop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Auto", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_CV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Casc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Man", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_NormLM", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Ratio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_ResetAckAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_SP", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_SPRampStart", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_SPRampStop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_SPRampT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_SPRoCLimDec", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_SPRoCLimInc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_SPTarget", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "CV program manual value. CV equals this value when in Program Manual mode. If CVProg \u003c 0 or \u003e 100, or \u003c CVLLimit or \u003e CVHLimit when CVManLimiting is set, the instruction sets the appropriate bit in Status and limits the CV value.\nValid \u003d 0.0 to 100.0\nDefault \u003d 0.0", + "name": "OSet_CV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "OSet_Ratio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Program Setting for Setpoint (loop Auto) (PVEU)\n", + "tooltip": "Program Setting for Setpoint (loop Auto) (PVEU) ", + "name": "OSet_SP", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "OSet_SPRampT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "OSet_SPRoCLimDec", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "OSet_SPRoCLimInc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "OSet_SPTarget", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Control variable output. This value is expressed as 0 to 100 percent. CV is limited by CVHLimit and CVLLimit when in auto or cascade/ratio mode or manual mode if CVManLimiting is set. Otherwise this value is limited by 0 and 100 percent. Arithmetic flags are set for this output.", + "name": "Out_CV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Auto", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Casc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FailUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiDevAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiDevSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiDevUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiDevUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiHiDevAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiHiDevSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiHiDevUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_HiHiDevUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoDevAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoDevSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoDevUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoDevUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoLoDevAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoLoDevSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoLoDevUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_LoLoDevUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Lock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Man", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_NormLM", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_SPRampStart", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_SPRampStop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "PSet_CV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "PSet_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "PSet_Ratio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Program Setting for Setpoint (loop Auto) (PVEU)\n\n", + "tooltip": "Program Setting for Setpoint (loop Auto) (PVEU) ", + "name": "PSet_SP", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "PSet_SPRampT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "PSet_SPRoCLimDec", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "PSet_SPRoCLimInc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "PSet_SPTarget", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ_IO", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Active", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_AlmInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "historicalDeadbandStyle": "Discrete", + "documentation": "Manual mode indicator. Set when in the Manual mode.", + "name": "Sts_Auto", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "NonPV Historized", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Available", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_BypActive", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_CVBad", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_CVClamped", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_CVHeld", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_CVPrevBad", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_CVRamping", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_CVShed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Casc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Err", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ext", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ExtReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FFBad", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FFPrevBad", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Fail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FailSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HandFdbkBad", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiDevCmp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiDevDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiDevGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiDevShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiDevSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiHiDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiHiDevCmp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiHiDevDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiHiDevGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiHiDevShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_HiHiDevSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_InitReq", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Initializing", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Sts_InstrFaults1", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Sts_InstrFaults2", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkSP", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoDevCmp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoDevDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoDevGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoDevShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoDevSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoLoDev", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoLoDevCmp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoLoDevDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoLoDevGate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoLoDevShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LoLoDevSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MAcqRcvd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Maint", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MaintByp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "historicalDeadbandStyle": "Discrete", + "documentation": "Manual mode indicator. Set when in the Manual mode.", + "name": "Sts_Man", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "NonPV Historized", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_NormLM", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_NotRdy", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OperLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Override mode indicator. Set when in the Override mode.", + "name": "Sts_Ovrd", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_PVBad", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_PVUncertain", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RatioClamped", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyReset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_SPBad", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_SPClamped", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_SPHeld", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_SPRamping", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_SPShed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_SPShedPV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_SPTrackPV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_SkipSPRoCLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_WindupHi", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_WindupLo", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ZCDBOn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_ActExecT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_CVEUMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_CVEUMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Value of CV Output (after ramping and clamping (CV%)\n", + "tooltip": "Value of CV Output (after ramping and clamping (CV%) ", + "name": "Val_CVOut", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_CVPercent", + "historyEnabled": true, + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_CVSet", + "historyEnabled": true, + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Process error. Difference between SP and PV, scaled in PV units.", + "name": "Val_E", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_EPercent", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Fault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_Init", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Notify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_NotifyAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Loop PV (PVEU)\n", + "tooltip": "Loop PV (PVEU) ", + "name": "Val_PV", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_PVEUMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_PVEUMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_PVPercent", + "historyEnabled": true, + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_Ratio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Value of SP being used (after clamping) (PVEU)\n", + "tooltip": "Value of SP being used (after clamping) (PVEU) ", + "name": "Val_SP", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_SPPercent", + "historyEnabled": true, + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_SPRampRoC", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_SPRampT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_SPRoCDec", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_SPRoCInc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_SPSet", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_SPTarget", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_State", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Sts", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_UnackAlmC", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "value": "4.10.05", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Acq", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Auto", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Casc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Man", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_NormLM", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_SPRampStart", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_SPRampStop", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "XSet_CV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "XSet_Ratio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "XSet_SP", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "XSet_SPRampT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "XSet_SPRoCLimDec", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "XSet_SPRoCLimInc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "XSet_SPTarget", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Totalizer", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": "Historian" + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d[Slot2_BE]P_Ain.Val" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "valueSource": "memory", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_Desc", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "value": "Description", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_Label", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "value": "Label", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_RateEU", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "value": "", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_TotalEU", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "value": "", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[{PLCName}]{BlockName}.{TagName}" + }, + "valueSource": "opc", + "historicalDeadband": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tooltip": "Current Rate", + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Float4", + "historyProvider": "SwiftWater", + "name": "In", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "opcServer": "Ignition OPC-UA Server" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "valueSource": "opc", + "historicalDeadband": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tooltip": "Previous Total", + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Float4", + "name": "OldTotal", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "opcServer": "Ignition OPC-UA Server" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[{PLCName}]{BlockName}.{TagName}" + }, + "valueSource": "opc", + "historicalDeadband": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tooltip": "Operator reset totalizer request.", + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "name": "OperResetReq", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "opcServer": "Ignition OPC-UA Server" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[{PLCName}]{BlockName}.{TagName}" + }, + "valueSource": "opc", + "historicalDeadband": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tooltip": "Operator start totalizer request.", + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "name": "OperStartReq", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "opcServer": "Ignition OPC-UA Server" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[{PLCName}]{BlockName}.{TagName}" + }, + "valueSource": "opc", + "historicalDeadband": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tooltip": "Operator stop totalizer request.", + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "name": "OperStopReq", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "opcServer": "Ignition OPC-UA Server" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[{PLCName}]{BlockName}.{TagName}" + }, + "valueSource": "opc", + "historicalDeadband": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tooltip": "Totalizer run/stop status", + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Float4", + "historyProvider": "SwiftWater", + "name": "RunStop", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "opcServer": "Ignition OPC-UA Server" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "valueSource": "opc", + "historicalDeadband": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tooltip": "Current total", + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Float4", + "name": "Total", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "opcServer": "Ignition OPC-UA Server" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_DOut", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": "Historian" + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IntlkTrip", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_OffFail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_OnFail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_OffFail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_OnFail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_0StText", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_1StText", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Area", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_CompletePulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Desc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ExtOffPrio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FdbkFail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIOFaultAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkTripAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMoreObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasOffFailAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasOffFdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasOnFailAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasOnFdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasPermObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HornOnChange", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IOFaultSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IntlkTripSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Label", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OCmdResets", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OffDelayT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OffFailAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OffFailResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_OffFailSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OffFailT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OffPulseT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OnDelayT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OnFailAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OnFailResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_OnFailSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OnFailT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OnPulseT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OperOffPrio", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OvrdPermIntlk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedOnFail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedOnIOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SimFdbkT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_StartHornT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Tag", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_UseOffFdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_UseOnFdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_XCmdResets", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "CmdSrc", + "typeId": "Plant PAX/P_CmdSrc", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Alarm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Sim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Timer", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Lib", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "HMI_Tab", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Type", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "IOFault", + "typeId": "Plant PAX/P_Alarm", + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_ExtInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_HornInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkAvail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_NBIntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_NBPermOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_OffFdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_OnFdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_OvrdCmd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_PermOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Sim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "IntlkTrip", + "typeId": "Plant PAX/P_Alarm", + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_CfgErr", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Fail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Intlk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Perm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_PrioOff", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_ContPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Off", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_OffPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_On", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_OnPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_ResetAckAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_ContPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Off", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_OffPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_On", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_OnPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_ResetAckAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "OffFail", + "typeId": "Plant PAX/P_Alarm", + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "name": "OnFail", + "typeId": "Plant PAX/P_Alarm", + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Horn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_ContPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Lock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Off", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_OffFailAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_OffFailSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_OffFailUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_OffFailUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_OffPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_On", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_OnFailAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_OnFailSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_OnFailUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_OnFailUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_OnPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "PSet_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "P_DOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ_IO", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_AlmInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Available", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_BypActive", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Err", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ext", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ExtReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FdbkFail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FdbkOff", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FdbkOn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Horn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MAcqRcvd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Maint", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MaintByp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_NotRdy", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OffFail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OffFailDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OffFailShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OffFailSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OnFail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OnFailDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OnFailShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OnFailSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OperLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Out", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Pulsing", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyReset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Cmd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Fault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Fdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Notify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_NotifyAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_State", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Sts", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_UnackAlmC", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Acq", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_ContPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Off", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_OffPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_On", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_OnPulse", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_ValveC", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": "Historian" + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_ActuatorFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "ActuatorFault", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_ActuatorFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ActuatorFaultAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ActuatorFaultResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_ActuatorFaultSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Area", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_BumpT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_CVEUMax", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_CVEUMin", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_CVNavTag", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Position Feedback Maximum in raw input units (for scaling)\n", + "tooltip": "Position Feedback Maximum in raw input units (for scaling) ", + "name": "Cfg_CVRawMax", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "CV Minimum in I/O (raw) Units (for scaling)", + "tooltip": "CV Minimum in I/O (raw) Units (for scaling) ", + "name": "Cfg_CVRawMin", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CVRoCLimDec", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CVRoCLimInc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ClampPosToLS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CloseRate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CycleT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_Deadtime", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_DecPlcs", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Description for display on HMI", + "tooltip": "Description for display on HMI", + "name": "Cfg_Desc", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Engineering Units for display on HMI", + "tooltip": "Engineering Units for display on HMI", + "name": "Cfg_EU", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Position Feedback Maximum in raw input units (for scaling)\n", + "tooltip": "Position Feedback Maximum in raw input units (for scaling) ", + "name": "Cfg_FdbkRawMax", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Position Feedback Minimum in raw input units (for scaling)", + "tooltip": "Position Feedback Minimum in raw input units (for scaling) ", + "name": "Cfg_FdbkRawMin", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasActuatorFaultAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasCVNav", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_HasClosedLS", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIOFaultAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkTripAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMoreObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_HasOpenLS", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasPosFdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IOFaultSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_IntlkCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IntlkTripSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_LSFail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Label for graphic symbol displayed on HMI", + "tooltip": "Label for graphic symbol displayed on HMI ", + "name": "Cfg_Label", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_MaxCV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MaxClosedPos", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MaxOnT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_MinCV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MinOnT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_OpenRate", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OvrdIntlk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SetTrack", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SetTrackOvrdHand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedHold", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedOnIOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SkipRoCLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Tagname for display on HMI", + "tooltip": "Tagname for display on HMI ", + "name": "Cfg_Tag", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dValve Closed LS should be used for failure checking\n", + "tooltip": "1\u003dValve Closed LS should be used for failure checking ", + "name": "Cfg_UseClosedLS", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dValve Open LS should be used for failure checking\n", + "tooltip": "1\u003dValve Open LS should be used for failure checking ", + "name": "Cfg_UseOpenLS", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "name": "CmdSrc", + "typeId": "Plant PAX/P_CmdSrc", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Alarm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_EU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Fdbk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Limit", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Raw", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Timer", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Lib", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "HMI_Tab", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Type", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "max({[.]ActuatorFault/Alarm.AlertCurrentSeverity},\n\t{[.]IntlkTrip/Alarm.AlertCurrentSeverity},\n\t{[.]IOFault/Alarm.AlertCurrentSeverity})\n", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Calculated highest priority alarm, all alarms need to be added to \"max()\"expression", + "tooltip": "Calculated highest priority alarm", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Int4", + "name": "HighestPriority", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "IOFault", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_ActuatorFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_ClosedLS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_ExtInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkAvail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_NBIntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_OpenLS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_OvrdCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": true, + "dataType": "Float4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Position Feedback from Valve (in Raw Input units)\n", + "tooltip": "Position Feedback from Valve (in Raw Input units) ", + "name": "Inp_PosFdbk", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dReset all Alarms requiring reset", + "tooltip": "1\u003dReset all Alarms requiring reset ", + "name": "Inp_Reset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Sim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "IntlkTrip", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Mode", + "typeId": "Plant PAX/P_Mode", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_CfgErr", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Intlk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_BumpClose", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_BumpOpen", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Reset and Acknowledge all Alarms\n", + "tooltip": "Operator Command to Reset and Acknowledge all Alarms ", + "name": "OCmd_ResetAckAll", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_BumpClose", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_BumpOpen", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_CV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_ResetAckAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "historicalDeadband": 0.1, + "dataType": "Float4", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "OSet_CV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Out_CV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Close", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Open", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_ActuatorFaultAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_ActuatorFaultSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_ActuatorFaultUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_ActuatorFaultUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Lock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "historicalDeadband": 0.1, + "dataType": "Float4", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "PSet_CV", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "PSet_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ_IO", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Active", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ActuatorFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ActuatorFaultDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ActuatorFaultShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ActuatorFaultSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "Sts_AlmInh", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Available", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_BumpClose", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_BumpOpen", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_BypActive", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_Bypass", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_CVInfNaN", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Clamped", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Err", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ext", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ExtReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_Hand", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LSFail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MAcqRcvd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Maint", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MaintByp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_NotRdy", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OperLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_PosInfNaN", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ramping", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyReset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_SkipRoCLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_CVEUMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_CVEUMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "historicalDeadband": 0.1, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Value of CV output (after clamping and ramping) (CV EU)", + "tooltip": "Value of CV output (after clamping and ramping) (CV EU) ", + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Float4", + "name": "Val_CVOut", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_CVSet", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Fault", + "historyEnabled": true, + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Val_Fdbk", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Fdbk},\n0,1,2,3,\n\"Moving\", //0\n\"Closed\", //1\n\"Opened\", //2\n\"Lim Switch Fail\", //3\nforceQuality(\"!BAD STATE!\",0)) //other", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Val_Fdbk Text", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Notify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_NotifyAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "historicalDeadband": 0.1, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Valve actual position from feedback (CV EU)\n", + "tooltip": "Valve actual position from feedback (CV EU) ", + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Float4", + "name": "Val_Pos", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "historicalDeadband": 1.0, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Val_Sts", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Sts},\n0,1,2,3,4,5,6,33,\n\"At Target\", //0\n\"Ramp Close\", //1\n\"Run Open\", //2\n\"Clamp @ Min\", //3\n\"Clamp @ Max\",//4\n\"Bump Close\",//5\n\"Bump Open\", //6\n\"Disabled\", //33\nforceQuality(\"!BAD STATE!\",0)) //other", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Val_Sts Text", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_UnackAlmC", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "value": "4.10.05", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Acq", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "XSet_CV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_AOut", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": "Historian" + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Area", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CVEUMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CVEUMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_CVNavTag", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CVRawMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CVRawMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CVRoCLimDec", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_CVRoCLimInc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_DecPlcs", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Desc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_EU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasCVNav", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIOFaultAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkTripAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMoreObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IOFaultSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_IntlkCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IntlkTripSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Label", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MaxCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MaxInactiveCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_MinCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OvrdIntlk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SetTrack", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SetTrackOvrdHand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedHold", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedOnIOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_SkipRoCLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Tag", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "CmdSrc", + "typeId": "Plant PAX/P_CmdSrc", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Alarm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_EU", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Limit", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Raw", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Lib", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "HMI_Tab", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Type", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "IOFault", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_ExtInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkAvail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_NBIntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_OvrdCV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Sim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Inp_Tieback", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "IntlkTrip", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_CfgErr", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Intlk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_ResetAckAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_CV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_ResetAckAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "OSet_CV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "historyProvider": "Historian", + "historicalDeadband": 0.1, + "name": "Out_CV", + "historyEnabled": true, + "tagGroup": "Process Variable", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Lock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "PSet_CV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "PSet_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "P_AOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "name": "Prime Version", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ_IO", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Active", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_AlmInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Available", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_BypActive", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Clamped", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Err", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ext", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ExtReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MAcqRcvd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Maint", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MaintByp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_NotRdy", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OperLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ramping", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyReset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_SkipRoCLim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_CVEUMax", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_CVEUMin", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "historicalDeadbandStyle": "Analog_Compressed", + "name": "Val_CVOut", + "historyEnabled": true, + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Val_CVSet", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Fault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "Val_Notify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_NotifyAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Sts", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_UnackAlmC", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "name": "Version", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "XSet_CV", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_ValveSO", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{InstanceName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": "Historian" + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": "" + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_FullStall", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Ack_TransitStall", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_FullStall", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Alm_TransitStall", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Cfg_Area", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Description for display on HMI", + "tooltip": "Description for display on HMI", + "name": "Cfg_Desc", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dFail Open (energize to close), 0\u003dFail Closed (energize to open)\n", + "tooltip": "1\u003dFail Open (energize to close), 0\u003dFail Closed (energize to open) ", + "name": "Cfg_FailOpen", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FullStallAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_FullStallResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_FullStallSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_FullStallT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_HasClosedLS", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasFullStallAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIOFaultAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasIntlkTripAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMoreObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Cfg_HasOpenLS", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasPermObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasStatsObj", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasTransitStallAlm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IOFaultResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IOFaultSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_IntlkTripResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_IntlkTripSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dboth switches ON\u003dfail, 0\u003dboth switches OFF\u003dfail\n", + "tooltip": "1\u003dboth switches ON\u003dfail, 0\u003dboth switches OFF\u003dfail ", + "name": "Cfg_LSFail", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Label for graphic symbol displayed on HMI", + "tooltip": "Label for graphic symbol displayed on HMI ", + "name": "Cfg_Label", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OCmdResets", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OvrdPermIntlk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedOnFullStall", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedOnIOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ShedOnTransitStall", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_SimFdbkT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_StartHornT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Tagname for display on HMI", + "tooltip": "Tagname for display on HMI ", + "name": "Cfg_Tag", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_TransitStallAckReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_TransitStallResetReqd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Cfg_TransitStallSeverity", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Float4", + "name": "Cfg_TransitStallT", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dValve Closed LS should be used for failure checking\n", + "tooltip": "1\u003dValve Closed LS should be used for failure checking ", + "name": "Cfg_UseClosedLS", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dValve Open LS should be used for failure checking\n", + "tooltip": "1\u003dValve Open LS should be used for failure checking ", + "name": "Cfg_UseOpenLS", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_XCmdResets", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "name": "CmdSrc", + "typeId": "Plant PAX/P_CmdSrc", + "parameters": { + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Alarm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Sim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Err_Timer", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "FullStall", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Lib", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int1", + "name": "HMI_Tab", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "String", + "name": "HMI_Type", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "IOFault", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dReset all Alarms requiring reset", + "tooltip": "1\u003dReset all Alarms requiring reset ", + "name": "Inp_ClosedLS", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_ExtInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_HornInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkAvail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_IntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_NBIntlkOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_NBPermOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dReset all Alarms requiring reset", + "tooltip": "1\u003dReset all Alarms requiring reset ", + "name": "Inp_OpenLS", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Inp_OvrdCmd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_PermOK", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dReset all Alarms requiring reset", + "tooltip": "1\u003dReset all Alarms requiring reset ", + "name": "Inp_Reset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Sim", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "IntlkTrip", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Bypass", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Check", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_CfgErr", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Fail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Intlk", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Nrdy_Perm", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Close Valve\n", + "tooltip": "Operator Command to Close Valve ", + "name": "OCmd_Close", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Open Valve", + "tooltip": "Operator Command to Open Valve ", + "name": "OCmd_Open", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Operator Command to Reset and Acknowledge all Alarms\n", + "tooltip": "Operator Command to Reset and Acknowledge all Alarms ", + "name": "OCmd_ResetAckAll", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Close", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Open", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_ResetAckAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Out_Horn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Close", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FullStallAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FullStallSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FullStallUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_FullStallUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IOFaultUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_IntlkTripUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Program Command to Lock Mode in Prog\n", + "tooltip": "Program Command to Lock Mode in Prog ", + "name": "PCmd_Lock", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Open", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Program Command to Unlock Mode\n", + "tooltip": "Program Command to Unlock Mode ", + "name": "PCmd_Oper", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Program Command to Unlock Mode\n", + "tooltip": "Program Command to Unlock Mode ", + "name": "PCmd_Prog", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Program Command to Unlock Mode\n", + "tooltip": "Program Command to Unlock Mode ", + "name": "PCmd_Reset", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_TransitStallAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_TransitStallSuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_TransitStallUnshelve", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_TransitStallUnsuppress", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Program Command to Unlock Mode\n", + "tooltip": "Program Command to Unlock Mode ", + "name": "PCmd_Unlock", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "PSet_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "SrcQ_IO", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "tooltip": "1\u003dAn Alarm is Shelved, Disabled or Suppressed: display icon", + "name": "Sts_AlmInh", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Available", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_BypActive", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_Bypass", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Closed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Closing", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Err", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ext", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ExtReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FullStall", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FullStallDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FullStallShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_FullStallSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_Hand", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Horn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFault", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IOFaultSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTrip", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_IntlkTripSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_LSFail", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MAcqRcvd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Maint", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MaintByp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_NotRdy", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Opened", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Opening", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_Oper", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OperLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Sts_Prog", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyAck", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_RdyReset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_TransitStall", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_TransitStallDisabled", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_TransitStallShelved", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_TransitStallSuppressed", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "TransitStall", + "typeId": "Plant PAX/P_Alarm", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "OPC Server": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPC Server}" + } + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{OPCPrefix}" + } + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtInstance" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "historicalDeadband": 0.1, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Command 0\u003dNone, 1\u003dClose, 2\u003dOpen\n", + "tooltip": "Device Command 0\u003dNone, 1\u003dClose, 2\u003dOpen ", + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Int4", + "name": "Val_Cmd", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Cmd},\n0,1,2,\n\"None\", //0\n\"Close\", //1\n\"Open\", //2\n\nforceQuality(\"!BAD STATE!\",0)) //other", + "readOnly": false, + "dataType": "String", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Val_Cmd Text", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "historicalDeadband": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "", + "tooltip": "", + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Int4", + "name": "Val_Fault", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Feedback 0\u003dMoving, 1\u003dClosed, 2\u003dOpened, 3\u003dLimit Switch Failure\n", + "tooltip": "Device Feedback 0\u003dMoving, 1\u003dClosed, 2\u003dOpened, 3\u003dLimit Switch Failure ", + "name": "Val_Fdbk", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Fdbk},\n0,1,2,3,\n\"Moving\", //0\n\"Closed\", //1\n\"Opened\", //2\n\"Lim Switch Fail\", //3\nforceQuality(\"!BAD STATE!\",0)) //other", + "readOnly": false, + "dataType": "String", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "Val_Fdbk Text", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Notify", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_NotifyAll", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_Owner", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "historyProvider": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "historicalDeadband": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Confirmed Sts 0\u003d? 1\u003dClosed 2\u003dOpen 5\u003dClosing, 6\u003dOpening, 33\u003dDisabled\n", + "tooltip": "Device Confirmed Sts 0\u003d? 1\u003dClosed 2\u003dOpen 5\u003dClosing, 6\u003dOpening, 33\u003dDisabled ", + "tagGroup": "Process Variable", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "Int4", + "name": "Val_Sts", + "historyEnabled": true, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "valueSource": "expr", + "expression": "switch({[.]Val_Sts},\n0,1,2,5,6,33,\n\"?\", //0\n\"Closed\", //1\n\"Open\", //2\n\"Closing\",//5\n\"Opening\", //6\n\"Disabled\", //33\nforceQuality(\"!BAD STATE!\",0)) //other\n\n//Device Confirmed Sts 0\u003d? 1\u003dClosed 2\u003dOpen 5\u003dClosing, 6\u003dOpening, 33\u003dDisabled\n", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Device Confirmed Sts 0\u003d? 1\u003dClosed 2\u003dOpen 5\u003dClosing, 6\u003dOpening, 33\u003dDisabled\n", + "tooltip": "Device Confirmed Sts 0\u003d? 1\u003dClosed 2\u003dOpen 5\u003dClosing, 6\u003dOpening, 33\u003dDisabled ", + "tagGroup": "Default", + "enabled": true, + "tagType": "AtomicTag", + "readOnly": false, + "dataType": "String", + "name": "Val_Sts Text", + "executionMode": "TagGroupRate", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + } + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Val_UnackAlmC", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "value": "4.10.05", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maintenance command to acquire ownership (Operator/Program/Override to Maintenance).", + "tooltip": "Maintenance command to acquire ownership (Operator/Program/Override to Maintenance).", + "name": "XCmd_Acq", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "XCmd_Close", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "XCmd_Open", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "readOnly": false, + "dataType": "Boolean", + "historyProvider": "SwiftWater", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "documentation": "Maintenance command to release ownership (Maint to Operator/Program/Override).", + "tooltip": "Maintenance command to release ownership (Maint to Operator/Program/Override).", + "name": "XCmd_Rel", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "enabled": true, + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Reset", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + } + ] + }, + { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "name": "P_CmdSrc", + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "parameters": { + "BlockName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{BlockName}" + } + }, + "HistoryProvider": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{HistoryProvider}" + } + }, + "OPC Server": { + "dataType": "String", + "value": "FactoryTalkLinxGateway" + }, + "PLCName": { + "dataType": "String", + "value": { + "bindType": "parameter", + "binding": "{PLCName}" + } + }, + "OPCPrefix": { + "dataType": "String", + "value": "nsu\u003dhttp://www.rockwellautomation.com/OpcUa;s\u003d" + } + }, + "tagGroup": "Default", + "enabled": true, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ExtAcqAsLevel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ExtOverLock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasExt", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMOoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasMaint", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasOper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasOperLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasProg", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_HasProgLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_OvrdOverLock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_PCmdLockAsLevel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_PCmdPriority", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_PCmdProgAsLevel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ProgNormal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Cfg_ProgPwrUp", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableIn", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "EnableOut", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_ExtInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Inp_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Acq", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_IS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Acq", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_IS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "MRdy_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Lock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "OCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Lock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "ORdy_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Lock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "PCmd_Unlock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "P_CmdSrc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Prime Version", + "tagGroup": "OnlyWhenViewed", + "value": "1.0", + "tagType": "AtomicTag" + }, + { + "rawHigh": 4.0, + "valueSource": "memory", + "scaledLow": 1.0, + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "OnlyWhenViewed", + "clampMode": "Clamp_Both", + "enabled": true, + "tagType": "AtomicTag", + "scaledHigh": 4.0, + "scaleMode": "Linear", + "readOnly": false, + "dataType": "Int4", + "name": "Severity", + "rawLow": 1.0, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "value": 1 + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ext", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ExtReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Hand", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_MAcqRcvd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Maint", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Normal", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OoS", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Oper", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_OperLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Ovrd", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_Prog", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgLocked", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgOperLock", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgOperSel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Sts_ProgReqInh", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Sts_bSrc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Int4", + "name": "Sts_eSrc", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "Version", + "tagGroup": "OnlyWhenViewed", + "value": "4.10.05", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Acq", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XCmd_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XRdy_Acq", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{OPCPrefix}[{PLCName}]{BlockName}.{InstanceName}.{TagName}" + }, + "opcServer": { + "bindType": "parameter", + "binding": "{OPC Server}" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "XRdy_Rel", + "tagGroup": "OnlyWhenViewed", + "tagType": "AtomicTag" + } + ] + } +] \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/unary-resource.json new file mode 100644 index 0000000..df351a6 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/Plant PAX/unary-resource.json @@ -0,0 +1,25 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "udts.json" + ], + "attributes": { + "config": { + "readOnly": false, + "dataType": "Int4", + "writePermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "readPermissions": { + "type": "AllOf", + "securityLevels": [] + }, + "tagGroup": "Default", + "enabled": true + } + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/udts.json b/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/udts.json new file mode 100644 index 0000000..7c94603 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/udts.json @@ -0,0 +1,50 @@ +[ + { + "name": "AB_Diagnostics", + "parameters": { + "DeviceName": { + "dataType": "String", + "value": "" + } + }, + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[{DeviceName}][Diagnostics]/Hostname" + }, + "valueSource": "opc", + "dataType": "String", + "name": "Hostname", + "tagType": "AtomicTag", + "opcServer": "Ignition OPC-UA Server" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[{DeviceName}][Diagnostics]/Is Connected" + }, + "valueSource": "opc", + "dataType": "Boolean", + "historyProvider": "Tag_History_Splitter", + "alarms": [ + { + "setpointA": 0.0, + "activePipeline": "Jetta/CDP Alarms", + "timeOnDelaySeconds": 600.0, + "name": "Connection Lost", + "label": "{PerspectivePage}{DeviceName}", + "displayPath": "{InstanceName} Connection Lost", + "priority": "High", + "enabled": true + } + ], + "name": "Is Connected", + "historyEnabled": true, + "tagType": "AtomicTag", + "opcServer": "Ignition OPC-UA Server" + } + ] + } +] \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/unary-resource.json b/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/unary-resource.json index 77ed304..8fb3cc0 100644 --- a/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/unary-resource.json +++ b/config/dcframe1-hmi1/resources/core/ignition/tag-type-definition/default/unary-resource.json @@ -3,7 +3,9 @@ "version": 1, "restricted": false, "overridable": true, - "files": [], + "files": [ + "udts.json" + ], "attributes": { "config": {} } diff --git a/config/dcframe1-hmi1/resources/core/ignition/user-source/temp_0/config.json b/config/dcframe1-hmi1/resources/core/ignition/user-source/temp_0/config.json new file mode 100644 index 0000000..a8cc136 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/user-source/temp_0/config.json @@ -0,0 +1,20 @@ +{ + "profile": { + "cacheValidationTimeout": 15, + "failoverMode": "HARD", + "lockoutAttempts": 5, + "lockoutEnabled": true, + "lockoutWindow": 15, + "scheduleRestricted": false, + "type": "INTERNAL" + }, + "settings": { + "passwordComplexity": 3, + "passwordContainsPassword": true, + "passwordContainsUserName": true, + "passwordHistory": 0, + "passwordMaxAge": 0, + "passwordMaxRepeatedChars": 3, + "passwordMinLength": 8 + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/user-source/temp_0/resource.json b/config/dcframe1-hmi1/resources/core/ignition/user-source/temp_0/resource.json new file mode 100644 index 0000000..c6ac9a0 --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/user-source/temp_0/resource.json @@ -0,0 +1,19 @@ +{ + "scope": "A", + "description": "Temporary user source profile created during password reset", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "config.json", + "users.json" + ], + "attributes": { + "lastModification": { + "actor": "system-init", + "timestamp": "2025-11-05T21:48:19Z" + }, + "uuid": "b9df768a-f430-4544-aa08-b1d43a4a2634", + "lastModificationSignature": "f73e451bc51835143980ec5ba837793edcf3e3f68ed79cf9e8688f859fa1fc98" + } +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/core/ignition/user-source/temp_0/users.json b/config/dcframe1-hmi1/resources/core/ignition/user-source/temp_0/users.json new file mode 100644 index 0000000..efd8a7e --- /dev/null +++ b/config/dcframe1-hmi1/resources/core/ignition/user-source/temp_0/users.json @@ -0,0 +1,28 @@ +{ + "users": [ + { + "uuid": "16e52ab8-9aa1-4a24-a6ee-1d01287f7d26", + "username": "admin", + "schedule": "Always", + "password": "[BBB74369]d5d089ef3e4b4a0664211dcc3497b621a1b2bccb207292043ed2b58b717eb7e5", + "passwordDate": "20251105.154819584-0600", + "passwordHistory": [], + "createdDate": "20251105.154819583-0600", + "lastModifiedDate": "20251105.154819583-0600", + "roles": [ + "8b758ede-ac6e-443f-9e52-c8b6d2801cea" + ], + "extraProps": [], + "scheduleAdjustments": [], + "contactInfos": [] + } + ], + "roles": [ + { + "uuid": "8b758ede-ac6e-443f-9e52-c8b6d2801cea", + "rolename": "Administrator", + "createdDate": "20251105.154819583-0600", + "lastModifiedDate": "20251105.154819583-0600" + } + ] +} \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/local/ignition/local-system-properties/config.json b/config/dcframe1-hmi1/resources/local/ignition/local-system-properties/config.json index 32d1e2b..6826b58 100644 --- a/config/dcframe1-hmi1/resources/local/ignition/local-system-properties/config.json +++ b/config/dcframe1-hmi1/resources/local/ignition/local-system-properties/config.json @@ -1,3 +1,3 @@ { - "demoTimeRemaining": 7198 + "demoTimeRemaining": 7195 } \ No newline at end of file diff --git a/config/dcframe1-hmi1/resources/local/ignition/local-system-properties/resource.json b/config/dcframe1-hmi1/resources/local/ignition/local-system-properties/resource.json index 3c28e83..be328ff 100644 --- a/config/dcframe1-hmi1/resources/local/ignition/local-system-properties/resource.json +++ b/config/dcframe1-hmi1/resources/local/ignition/local-system-properties/resource.json @@ -9,8 +9,8 @@ "attributes": { "lastModification": { "actor": "unknown", - "timestamp": "2025-11-04T23:29:19Z" + "timestamp": "2025-11-05T22:37:27Z" }, - "lastModificationSignature": "c6147f4b24e159c3d08b59e2c0319be84ce434d1de5aa32ee049e22ab643e905" + "lastModificationSignature": "53ad7e9e84054f81c944163d8c9f37733adc4abd750a3c1894f5d3e85c02c618" } } \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Critical/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Critical/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..e7d15752a5af1cfd360fd55fa7a19e3129aeeea3 GIT binary patch literal 1332 zcmV-41ze6TS~E=Qd*!bvmbmEC~f&z+hU~< zEc#H5xeRydrL#Me`GBI)e?Sc{#+aDun-7gi6O;OGjEVZ-TVIUPL}N^R&_<(1U+|oJ z2X+>U?#?#EO=j=+IluEezjJ5z?XJ~3<9|Li_2C;|3}1fh?&pM%2qB8wfB)6fVX9~C!&FwgJ3-G83>~X!fv}h&$84r+!tPigt|Px z;3P&3YUiB9v~S-@jN3o~Ku=7_w5TF4ZD2wnq%ms)fMwIZsVyb3A#uPbivA#*B_A>W1z>2HdjZz1vNdOrh12Z2Z#Fl)XB^>HJwa@K1d5F zqmoohM^Izg|FlApMu>mi+>B^Sk<8gXMI5P7_@2NdLD_N1qV){ zDtcv(bKJH~o1r>(!_I=LE>q`*RKoxmD=*7+w@$hMIq5+aDdu2#p>t;#g^w-C`=WRqW4o^%<=iCC1kP^^8H?hIl9d)slo$b zUpJ_OHCYWVT%Kc~-yE_w2wJuU4+YNaAZ8uf6VPS1ESovL@Q;EDMVX?delV7$hJ&b2 zLISr#ZEe*<;c~13IH{zT)KdK#D!3k8Q){*al#sRqh5$3a9wK?Vg5$B~(4B8?CwF1?UwT*4#Oaanvs!A&&^UU9WDQ$%Tz z7)c!-sgKK>iZs+I@-p6hW;fd0dS;I}6OnQgPo((V-k`50MQo4C8x*4vN201ffuQ%R zGVfv_f;(7jvE?Ba{{?iUB+#w?CK4X_p&;;9Rn{iHQ{*Q&fw(%#!li`AbvTIYh#*w; z@ieZz^23*Z-+FK4>yPgJ6uX~(@YPOa_-GJN+eU_uMb<6is6Ddg@2ILM{WWFL91S1U z@kdTGIxUh7ULy@9A5{wOe|_*<^LMeS4_3c<^WLY!@4jCaCspA&IT7S!U%S5&@h3Wh zTRY3bR2?2uR}m(Wr*&X4fA(ZqSSqN5Q$Z}J(NFhA5#av?4W|-#FL&eg*0p3=NNd9* zO%<_*2O`1cbVW59FIm$96Fwm|y}6{684|LjMnAjq{a+oIe!M;T`*T0v`PM4gMpclv zo|2CV#m7qCE(zX=+q^fZj6USIUwoAewKiz&%nn@kn}ifPlR+Ux@TXiTA+65zeEj^~ zD{HT1UVrC6=P#dx6Vkx{KuBAXIapCLOZ&CCDVd?ztgr%xa8Ue42`--vC#XM2IfAMV qdK}(~sLutX7IlAKeC>qq3qju_8;p-g>Y~fgzWfhdbSU$S6951t8GD`p literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Critical/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Critical/resource.json new file mode 100644 index 0000000..307f5df --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Critical/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "2f450bb64391441e5c794e84145f44bc4ee7f3abe3beca08148a033a11496625", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Default/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Default/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..12947d91634bec4c36d93fdfb80634ff62a8d3ad GIT binary patch literal 1330 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 Bcgp|( literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Notify/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Notify/resource.json new file mode 100644 index 0000000..8224a93 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.alarm-notification/alarm-pipelines/Notify/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "7c9600d70a4a56427b89b01e588dd4fdd2523754667445ceaf0c459c611d8617", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/general-properties/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/general-properties/data.bin new file mode 100644 index 0000000..929483e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/general-properties/data.bin @@ -0,0 +1,15 @@ +{ + "updateMode": "Notify", + "updateMessage": "This project has been changed. Please save your work, this session will automatically update in {timeLeft} seconds.", + "updateTimeout": 60, + "locale": "Browser", + "idp": null, + "timezone": "Gateway Timezone", + "desktopPageTimeoutSeconds": 60, + "mobilePageTimeoutSeconds": 600, + "hideFromLaunchListings": false, + "thumbnailPath": "", + "sessionClosedMessage": "This Perspective session has been closed.", + "pageClosedMessage": "This Perspective page has been closed.", + "loggedOutMessage": "You are now logged out of your Perspective session. If you are on a shared device, it is recommended to log out of all other sessions before walking away." +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/general-properties/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/general-properties/resource.json new file mode 100644 index 0000000..a63a155 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/general-properties/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "101589ca5233f424b5377ca3d9bb64cbf1c467d33f56936c5e255fd168ba9986", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/page-config/config.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/page-config/config.json new file mode 100644 index 0000000..3423bed --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/page-config/config.json @@ -0,0 +1,81 @@ +{ + "pages": { + "/": { + "title": "", + "viewPath": "Main Windows/Map" + }, + "/alarm_analysis": { + "viewPath": "Alarm Analysis/Alarm Analysis" + }, + "/alarm_journal": { + "viewPath": "Alarm Journal/Alarm Journal" + }, + "/alarm_windows": { + "viewPath": "Docks/Alarm Windows" + }, + "/alarms": { + "title": "", + "viewPath": "Alarm Journal/Alarms" + }, + "/audit_log": { + "viewPath": "Audit Log/Audit Log" + }, + "/diagnostics": { + "viewPath": "Diagnostics/Diagnostics" + }, + "/hmi_demo": { + "title": "", + "viewPath": "Main Windows/hmidemo" + }, + "/plantpax": { + "title": "", + "viewPath": "Main Windows/PlantPAX_Instances" + }, + "/report": { + "title": "", + "viewPath": "Main Windows/Alarm Summary Report" + }, + "/site_menu": { + "title": "", + "viewPath": "Docks/Site Menu" + }, + "/trends": { + "viewPath": "AdHocTrends/AdHocTrends" + } + }, + "sharedDocks": { + "cornerPriority": "top-bottom", + "left": [ + { + "anchor": "fixed", + "autoBreakpoint": 1024, + "content": "push", + "handle": "hide", + "iconUrl": "", + "id": "menu", + "modal": false, + "resizable": false, + "show": "auto", + "size": 160, + "viewParams": {}, + "viewPath": "Docks/Menu" + } + ], + "top": [ + { + "anchor": "fixed", + "autoBreakpoint": 480, + "content": "push", + "handle": "hide", + "iconUrl": "", + "id": "", + "modal": false, + "resizable": false, + "show": "visible", + "size": 60, + "viewParams": {}, + "viewPath": "Header/Header BP Large" + } + ] + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/page-config/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/page-config/resource.json new file mode 100644 index 0000000..569ee80 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/page-config/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "config.json" + ], + "attributes": { + "lastModificationSignature": "67f75678b2e0ca347a2b3e71e6220d5b6b54af6069de1f979ba9ef41cd8e7596", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-permissions/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-permissions/data.bin new file mode 100644 index 0000000..923c43f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-permissions/data.bin @@ -0,0 +1,9 @@ +{ + "type": "AllOf", + "securityLevels": [ + { + "name": "Authenticated", + "children": [] + } + ] +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-permissions/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-permissions/resource.json new file mode 100644 index 0000000..d673d61 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-permissions/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "55ea632c05c4416e7f624b68b47ae3306afd44380c8beccded114b22ff6e2f23", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-props/props.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-props/props.json new file mode 100644 index 0000000..0aa9b6f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-props/props.json @@ -0,0 +1,92 @@ +{ + "custom": { + "breakpoint": 500, + "clickToGraph": { + "filters": { + "endDate": "value", + "mode": "realtime", + "mostRecent": { + "units": "min", + "value": 5 + } + }, + "pollRate": { + "units": "min", + "value": 1 + }, + "showOverlay": false, + "startDate": null, + "tags": [] + } + }, + "propConfig": { + "props.auth": { + "access": "PRIVATE", + "persistent": false + }, + "props.device.accelerometer": { + "access": "SYSTEM", + "persistent": false + }, + "props.device.identifier": { + "access": "SYSTEM", + "persistent": false + }, + "props.device.timezone": { + "access": "SYSTEM", + "persistent": false + }, + "props.device.type": { + "access": "SYSTEM", + "persistent": false + }, + "props.device.userAgent": { + "access": "SYSTEM", + "persistent": false + }, + "props.gateway": { + "access": "SYSTEM", + "persistent": false + }, + "props.geolocation.data": { + "access": "SYSTEM", + "persistent": false + }, + "props.geolocation.permissionGranted": { + "access": "SYSTEM", + "persistent": false + }, + "props.host": { + "access": "SYSTEM", + "persistent": false + }, + "props.id": { + "access": "SYSTEM", + "persistent": false + }, + "props.lastActivity": { + "access": "SYSTEM", + "persistent": false + }, + "props.offline.capable": { + "access": "SYSTEM", + "persistent": false + }, + "props.offline.enabled": { + "access": "SYSTEM", + "persistent": false + }, + "props.offline.lastSynced": { + "access": "SYSTEM", + "persistent": false + } + }, + "props": { + "address": "192.168.51.67", + "device": {}, + "geolocation": {}, + "locale": "en-US", + "offline": {}, + "timeZoneId": "America/Chicago" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-props/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-props/resource.json new file mode 100644 index 0000000..afcb716 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/session-props/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "props.json" + ], + "attributes": { + "lastModificationSignature": "2e211095f5ad5482b2da991f47f6532051b34ca0fc655e4dd1f7066098bed0b5", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:49:04Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButton/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButton/resource.json new file mode 100644 index 0000000..ee16717 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButton/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "4c91509f3a55a5d87901959568797031fcb8d4b3756df2c0cf8b5c8fb23c48bb", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButton/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButton/style.json new file mode 100644 index 0000000..4d77235 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButton/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "borderTopLeftRadius": "4px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "4px", + "borderBottomRightRadius": "0px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButtonMobile/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButtonMobile/resource.json new file mode 100644 index 0000000..3fb5cda --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButtonMobile/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "8d4ba3a23d263cd0a887a86a08f354cd980aa7d4f45f9ab10ac8106a13844efb", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButtonMobile/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButtonMobile/style.json new file mode 100644 index 0000000..e1f1f25 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/CancelButtonMobile/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "borderTopLeftRadius": "8px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "8px", + "borderBottomRightRadius": "0px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Control/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Control/resource.json new file mode 100644 index 0000000..62ccc8d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Control/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "deb573f4c6b14d4357892ce7335eb6f83685d82e4bb3ed16ea2aa3b81ca24691", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Control/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Control/style.json new file mode 100644 index 0000000..8e50623 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Control/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "padding": "1px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/ControlBar/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/ControlBar/resource.json new file mode 100644 index 0000000..bc27ff2 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/ControlBar/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "1e91c7b03e6a791230bc0732b95fc538aeef89574be8b6232a7738884f378059", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/ControlBar/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/ControlBar/style.json new file mode 100644 index 0000000..5a80e5c --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/ControlBar/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "paddingBottom": "8px", + "paddingLeft": "14px", + "paddingRight": "16px", + "paddingTop": "16px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/DropDown/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/DropDown/resource.json new file mode 100644 index 0000000..9f79ee5 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/DropDown/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "f2a0d9e00a2a689be08917d849c9400bf975c7f200ab75caf7fbf62d7bc2f087", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/DropDown/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/DropDown/style.json new file mode 100644 index 0000000..1ea8821 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/DropDown/style.json @@ -0,0 +1,8 @@ +{ + "base": { + "style": { + "backgroundColor": "var(--neutral-10)", + "color": "var(--neutral-90)" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadius/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadius/resource.json new file mode 100644 index 0000000..df7fd2d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadius/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "6987fb3142e81fef2c3af5ef29a44cadce596026ad7ce60826a7a6387d822a68", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadius/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadius/style.json new file mode 100644 index 0000000..b7b9f77 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadius/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "borderTopLeftRadius": "4px", + "borderTopRightRadius": "4px", + "borderBottomLeftRadius": "4px", + "borderBottomRightRadius": "4px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadiusMobile/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadiusMobile/resource.json new file mode 100644 index 0000000..fb1858e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadiusMobile/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "7bdf132807d06eca780d8dc975e94036622ff295d9d3449a201ff0957dc2bc0f", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadiusMobile/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadiusMobile/style.json new file mode 100644 index 0000000..0d239df --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FullRadiusMobile/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "borderTopLeftRadius": "8px", + "borderTopRightRadius": "8px", + "borderBottomLeftRadius": "8px", + "borderBottomRightRadius": "8px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionBar/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionBar/resource.json new file mode 100644 index 0000000..a209125 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionBar/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "47861466b3f4061a661ea2598a757ecfd9d06568f21ab5dda40e6916321e92f8", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionBar/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionBar/style.json new file mode 100644 index 0000000..b127cf5 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionBar/style.json @@ -0,0 +1,11 @@ +{ + "base": { + "style": { + "backgroundColor": "var(--neutral-20)", + "paddingBottom": "2px", + "paddingLeft": "8px", + "paddingRight": "16px", + "paddingTop": "2px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionTitle/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionTitle/resource.json new file mode 100644 index 0000000..d6b13f9 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionTitle/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "1ec1e056011addaaadb639fb9c72d159d9318beb8392f2f7c669e01b79f0e321", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionTitle/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionTitle/style.json new file mode 100644 index 0000000..d7095a2 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/FunctionTitle/style.json @@ -0,0 +1,9 @@ +{ + "base": { + "style": { + "fontSize": "12px", + "fontWeight": "bold", + "textAlign": "right" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Header/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Header/resource.json new file mode 100644 index 0000000..0558807 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Header/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "c09fc3377b18fa11ba08784e7376e802e455f3d0ce6836f3cdfaf5a8535e840c", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Header/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Header/style.json new file mode 100644 index 0000000..ec29520 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/Header/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "backgroundColor": "var(--neutral-30)", + "borderColor": "var(--neutral-50)", + "borderStyle": "solid", + "borderWidth": "1px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/HeaderTitle/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/HeaderTitle/resource.json new file mode 100644 index 0000000..a23c766 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/HeaderTitle/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "76ad49bdbd464da08c4ee3330658b0759546590d95540fe0ebeee799e03b5437", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/HeaderTitle/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/HeaderTitle/style.json new file mode 100644 index 0000000..b21b980 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/HeaderTitle/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "fontWeight": "bold" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadius/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadius/resource.json new file mode 100644 index 0000000..cab75b7 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadius/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "992b33a74ed0bf386f864013428105205375df98b89240091cca7d5d475cd272", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadius/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadius/style.json new file mode 100644 index 0000000..4d77235 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadius/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "borderTopLeftRadius": "4px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "4px", + "borderBottomRightRadius": "0px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadiusMobile/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadiusMobile/resource.json new file mode 100644 index 0000000..eb97083 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadiusMobile/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "0cd44ef6bc8bade7cfd09e1dcf1af55d0ac18cb19b9818ebf733fedb2ef51a11", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadiusMobile/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadiusMobile/style.json new file mode 100644 index 0000000..e1f1f25 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/LeftRadiusMobile/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "borderTopLeftRadius": "8px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "8px", + "borderBottomRightRadius": "0px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControl/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControl/resource.json new file mode 100644 index 0000000..62ccc8d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControl/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "deb573f4c6b14d4357892ce7335eb6f83685d82e4bb3ed16ea2aa3b81ca24691", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControl/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControl/style.json new file mode 100644 index 0000000..8e50623 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControl/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "padding": "1px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControlBar/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControlBar/resource.json new file mode 100644 index 0000000..d7f916f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControlBar/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "0865c2eb2913843e654266c39d1b92b4330496c411db357b186b0d0161c89eb1", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControlBar/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControlBar/style.json new file mode 100644 index 0000000..bded29c --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileControlBar/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "paddingBottom": "6px", + "paddingLeft": "12px", + "paddingRight": "12px", + "paddingTop": "8px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileFunctionBar/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileFunctionBar/resource.json new file mode 100644 index 0000000..e31bc8e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileFunctionBar/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "d68beeabff84fcc697be4be0956b175716d321d54811011c846819911aaa9a94", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileFunctionBar/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileFunctionBar/style.json new file mode 100644 index 0000000..98cc0ee --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/MobileFunctionBar/style.json @@ -0,0 +1,11 @@ +{ + "base": { + "style": { + "backgroundColor": "var(--neutral-20)", + "paddingBottom": "8px", + "paddingLeft": "8px", + "paddingRight": "8px", + "paddingTop": "8px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadius/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadius/resource.json new file mode 100644 index 0000000..cacddd8 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadius/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "865b772cd60bf3619dad0bfe1d021faea35ffd7be4fae97e865135d243eaf029", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadius/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadius/style.json new file mode 100644 index 0000000..080b7e5 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadius/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "4px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "4px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadiusMobile/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadiusMobile/resource.json new file mode 100644 index 0000000..331eb4d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadiusMobile/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "29a9476fa02cc64a3daa0f7894913b6237330e0479fe0bda6ab5e092c41cb3e4", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadiusMobile/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadiusMobile/style.json new file mode 100644 index 0000000..7eeaad8 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/RightRadiusMobile/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "8px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "8px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButton/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButton/resource.json new file mode 100644 index 0000000..93b5848 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButton/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "7726525029f3db8a77882ef14082517e531bb52f7c03a176248a18a3d9eec129", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButton/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButton/style.json new file mode 100644 index 0000000..080b7e5 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButton/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "4px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "4px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButtonMobile/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButtonMobile/resource.json new file mode 100644 index 0000000..09a8efd --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButtonMobile/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "a1c844f832b2703e9781d132add5a538fd9ffd13df63afa23f17c3bf2fc2fe4c", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButtonMobile/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButtonMobile/style.json new file mode 100644 index 0000000..7eeaad8 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AdHocTrends/SaveLoadButtonMobile/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "8px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "8px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmAnalysis/Label/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmAnalysis/Label/data.bin new file mode 100644 index 0000000..ea5bf55 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmAnalysis/Label/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"color":"#2B2B2B","fontSize":"14px","fontWeight":"300","lineHeight":"16px"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmAnalysis/Label/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmAnalysis/Label/resource.json new file mode 100644 index 0000000..788ba25 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmAnalysis/Label/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "4685188d8cf3b5c8b3261dc52fa9c25914fc989a118bcb7befcfacdb4e244ffc", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Ack/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Ack/data.bin new file mode 100644 index 0000000..71f55c3 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Ack/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#FFFF8A","borderColor":"#CCCCCC","borderStyle":"solid","borderWidth":"1px","borderRadius":"4px","color":"#2E2E2E","fontSize":"14px","fontWeight":"normal","textAlign":"center"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Ack/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Ack/resource.json new file mode 100644 index 0000000..7eba39a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Ack/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "a48978e09f69f8642bf6cabcff27485e6e3b048326cb448ee19dd5c052181640", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Ack/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Ack/data.bin new file mode 100644 index 0000000..74dfca1 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Ack/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#FF4747","borderColor":"#CCCCCC","borderStyle":"solid","borderWidth":"1px","borderRadius":"4px","color":"#FFFFFF","fontSize":"14px","fontWeight":"normal","textAlign":"center"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Ack/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Ack/resource.json new file mode 100644 index 0000000..67def8f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Ack/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "58a44e4d2747f516a88ad256164bc986f0bbe5023cfee0e16952f43efd549f02", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Unack/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Unack/data.bin new file mode 100644 index 0000000..f49c257 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Unack/data.bin @@ -0,0 +1 @@ +{"base":{"animation":{"duration":"1s","keyframes":{"0%":{"backgroundColor":"#FF4747","borderColor":"#CCCCCC","borderStyle":"solid","borderWidth":"1px","borderRadius":"4px","color":"#FFFFFF","fontSize":"14px","fontWeight":"bold","textAlign":"center"},"100%":{"backgroundColor":"#FF4747","borderColor":"#CCCCCC","borderStyle":"solid","borderWidth":"1px","borderRadius":"4px","color":"#D5D5D5","fontSize":"14px","fontWeight":"bold","textAlign":"center"}}}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Unack/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Unack/resource.json new file mode 100644 index 0000000..731e92b --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Active_Unack/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "0c99f45638fec949e2e57dc89f766441506abd48ac6314bfaf3df3837d2ab312", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Ack/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Ack/data.bin new file mode 100644 index 0000000..a54f0ac --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Ack/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#CCFFCC","borderColor":"#CCCCCC","borderStyle":"solid","borderWidth":"1px","borderRadius":"4px","color":"#2E2E2E","fontSize":"14px","fontWeight":"normal","textAlign":"center"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Ack/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Ack/resource.json new file mode 100644 index 0000000..1b91fc4 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Ack/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "4a1474b1eb1a58cce4d140928858fc8f64f5c06babe1605baafd7c22432fbc11", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Unack/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Unack/data.bin new file mode 100644 index 0000000..f1b3530 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Unack/data.bin @@ -0,0 +1 @@ +{"base":{"animation":{"duration":"1s","keyframes":{"0%":{"backgroundColor":"#CCFFCC","borderColor":"#CCCCCC","borderStyle":"solid","borderWidth":"1px","borderRadius":"4px","color":"#2E2E2E","fontSize":"14px","fontWeight":"bold","textAlign":"center"},"100%":{"backgroundColor":"#CCFFCC","borderColor":"#CCCCCC","borderStyle":"solid","borderWidth":"1px","borderRadius":"4px","color":"#808080","fontSize":"14px","fontWeight":"bold","textAlign":"center"}}}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Unack/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Unack/resource.json new file mode 100644 index 0000000..9713002 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/Clear_Unack/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "1da2831b1e82a830f6c5bfdd252a4fc3eb7da726545deb63a81dc3e5d00ca528", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/None/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/None/data.bin new file mode 100644 index 0000000..0316a81 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/None/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#FFFFFF","borderColor":"#CCCCCC","borderStyle":"solid","borderWidth":"1px","borderRadius":"4px","color":"#2E2E2E","fontSize":"14px","fontWeight":"normal","textAlign":"center"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/None/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/None/resource.json new file mode 100644 index 0000000..51494ae --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/AlarmJournal/None/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "60dee6a11559596ef6840fd4f3aa45372ed85b893c3c63e4e1090d4724dd7f40", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Bold_Text/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Bold_Text/data.bin new file mode 100644 index 0000000..23b71b2 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Bold_Text/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"fontWeight":"bold"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Bold_Text/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Bold_Text/resource.json new file mode 100644 index 0000000..58cb8da --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Bold_Text/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "1967b3cb893003c7190884844b10c584e2fefdad5600f83184e5d37e7254ca99", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Card/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Card/data.bin new file mode 100644 index 0000000..ed3cf79 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Card/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#FAFAFA","borderColor":"#D5D5D5","borderStyle":"solid","borderWidth":"1px","borderRadius":"4px","boxShadow":"0px 2px 4px rgba(0, 0, 40, 0.15)","margin":"5px"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Card/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Card/resource.json new file mode 100644 index 0000000..f0a8313 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Card/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "01f4130bca275f303407f089cc0ce94807e21ab8078eedb614c715b839323776", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Embedded/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Embedded/resource.json new file mode 100644 index 0000000..02d061a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Embedded/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "5c679a904c6263e35e2afdd28505b7173673279523e4ee90af35aed4ed0cfcf9", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Embedded/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Embedded/style.json new file mode 100644 index 0000000..e40b9fa --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Embedded/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "margin": "5px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item/data.bin new file mode 100644 index 0000000..b3d0ed8 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"paddingBottom":"4px","paddingLeft":"18px","paddingRight":"18px","paddingTop":"4px"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item/resource.json new file mode 100644 index 0000000..067b00b --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "b0543aad6bfc59bb8c5f8f376a5a989eabcc8189800ec6c2c470bc93c86379e5", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item_Border/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item_Border/data.bin new file mode 100644 index 0000000..f7eedd7 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item_Border/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"borderBottomColor":"#D5D5D5","borderBottomStyle":"solid","borderBottomWidth":"1px"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item_Border/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item_Border/resource.json new file mode 100644 index 0000000..306e005 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Item_Border/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "1b395e3c3d4c11ea20ffa0e16aad11dc7c07ed00d882fad41fe63dba68c74204", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Label/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Label/resource.json new file mode 100644 index 0000000..8cfe32b --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Label/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "c8e1afa84cf203b12164509fdca3f6ce756414602a7a7bb7bb65e2ebe7fb45be", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Label/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Label/style.json new file mode 100644 index 0000000..12be6e1 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Label/style.json @@ -0,0 +1,12 @@ +{ + "base": { + "style": { + "color": "#8E8E8E", + "fontSize": "12px", + "fontWeight": "300", + "lineHeight": "16px", + "marginRight": "10px", + "textTransform": "uppercase" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Row/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Row/resource.json new file mode 100644 index 0000000..add2c8e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Row/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "cfa1ffabfb622cd9cefb3a9a871446602333618f081223fce902bf54689d1f02", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Row/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Row/style.json new file mode 100644 index 0000000..fc7c06a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Row/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "marginBottom": "2px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Title/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Title/data.bin new file mode 100644 index 0000000..0e16719 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Title/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#E6EAEEAD","borderBottomColor":"#D5D5D5","borderBottomStyle":"solid","borderBottomWidth":"1px","color":"#2E2E2E","fontSize":"12px","fontWeight":"bold","paddingLeft":"6px","paddingRight":"6px","textTransform":"uppercase","fill":"#2E2E2E"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Title/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Title/resource.json new file mode 100644 index 0000000..efc11b9 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Title/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "ce0828b448cc75c1f98d5fe4768e03c3094d56934c836a370c0eab4be8b017ec", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Value/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Value/resource.json new file mode 100644 index 0000000..e24d067 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Value/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "3fc92c87e2d302011e837896c57d274e05fd903e894434ff18c3c23ef6bc4a7a", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Value/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Value/style.json new file mode 100644 index 0000000..0b20d63 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/Card/Value/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "color": "#000080", + "fontSize": "12px", + "fontWeight": "bold", + "lineHeight": "16px" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/TableCardLayout/Label/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/TableCardLayout/Label/data.bin new file mode 100644 index 0000000..ea5bf55 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/TableCardLayout/Label/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"color":"#2B2B2B","fontSize":"14px","fontWeight":"300","lineHeight":"16px"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/TableCardLayout/Label/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/TableCardLayout/Label/resource.json new file mode 100644 index 0000000..788ba25 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Framework/TableCardLayout/Label/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "4685188d8cf3b5c8b3261dc52fa9c25914fc989a118bcb7befcfacdb4e244ffc", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Clickable/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Clickable/data.bin new file mode 100644 index 0000000..a33ba3a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Clickable/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"borderColor":"#FFFFFF00","borderStyle":"solid","borderWidth":"2px","borderRadius":"4px","cursor":"pointer"}},"variants":[{"pseudo":"hover","style":{"borderColor":"#2E2E2E","borderStyle":"solid","borderWidth":"2px","borderRadius":"4px"}}]} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Clickable/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Clickable/resource.json new file mode 100644 index 0000000..42c31a4 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Clickable/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "01e7449b5a3e51fcd5dc2256903cfcdfd62450357af157b6bd32671e24b2075c", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Fault/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Fault/data.bin new file mode 100644 index 0000000..9f58335 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Fault/data.bin @@ -0,0 +1 @@ +{"base":{"animation":{"keyframes":{"0%":{"backgroundColor":"#FFFF00","fill":"#ACAC004D"},"100%":{"backgroundColor":"#FFFF00","fill":"#8046004D"}}}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Fault/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Fault/resource.json new file mode 100644 index 0000000..5a3cac5 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/HMI_Fault/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "6a470acd38c3c0b6d05cc10d1e78c7816d88569bbf75e3bbd645fd1938d4abe0", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Header/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Header/data.bin new file mode 100644 index 0000000..875665c --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Header/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#003E69","color":"#E7F5FF","fontFamily":"Roboto","fontSize":"14px","lineHeight":"17px","fill":"#FFFFFF"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Header/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Header/resource.json new file mode 100644 index 0000000..6fe61ed --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Header/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "da4f6ee5b21a2abe33a5d33d58a165f99d4b5578546eeb9f8d7710d4fa77d6c9", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/High_Performance_HMI_On/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/High_Performance_HMI_On/data.bin new file mode 100644 index 0000000..7d37f3d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/High_Performance_HMI_On/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#FFFFFF","color":"#FFFFFF","stroke":"#2E2E2E","strokeWidth":"10px","fill":"#FFFFFF"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/High_Performance_HMI_On/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/High_Performance_HMI_On/resource.json new file mode 100644 index 0000000..91e3c6a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/High_Performance_HMI_On/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "8f7d8e44fb0652476adb49753b49ec661049f7fdee382398cfa913182c304878", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu/data.bin new file mode 100644 index 0000000..c8684d4 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#DADDE0","fontFamily":"Roboto"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu/resource.json new file mode 100644 index 0000000..4a50437 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "5a26bbfa3b15a03bd60f993e4b41f41a1f49692ddf2a64d063cd8a7b5d1f441e", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Action/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Action/data.bin new file mode 100644 index 0000000..738530b --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Action/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"color":"#70757A","cursor":"pointer","fontFamily":"Roboto","fontSize":"11px","fontWeight":"bold","lineHeight":"14px","marginLeft":"6px","textTransform":"uppercase"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Action/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Action/resource.json new file mode 100644 index 0000000..d2d211e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Action/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "02d5a525b81c837bbb4945d1913abba940bb29cbd9118d3bd6b910b32ee4f50a", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_All_Header/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_All_Header/data.bin new file mode 100644 index 0000000..3a823d2 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_All_Header/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#5C7080","color":"#FFFFFF","fontFamily":"Roboto","fontSize":"14px","fontWeight":"bold","lineHeight":"17px","textTransform":"none"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_All_Header/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_All_Header/resource.json new file mode 100644 index 0000000..b282622 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_All_Header/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "505ed6f7eef6c1911d329a6f22aa46141d215eace07f3d52f13b8f5b941ef8af", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item/data.bin new file mode 100644 index 0000000..d14b8d8 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#E6EAEE","borderColor":"#9B9B9B","borderWidth":"1px","borderLeftColor":"#BEBEBE","borderLeftStyle":"solid","borderLeftWidth":"1px","borderRightColor":"#BEBEBE","borderRightStyle":"solid","borderRightWidth":"1px","color":"#2E2E2E","fontFamily":"Roboto","fontSize":"14px","lineHeight":"16px","textTransform":"uppercase"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item/resource.json new file mode 100644 index 0000000..72ca8ba --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "2e2720fae97d2904ea5471b8ed4ed8fd807e5b1ba571274046b701ac2f4900af", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item_Selected/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item_Selected/data.bin new file mode 100644 index 0000000..c97fa11 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item_Selected/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#E6EAEE","borderColor":"#9B9B9B","borderWidth":"1px","color":"#2E2E2E","fontFamily":"Roboto","fontSize":"14px","lineHeight":"16px","textTransform":"uppercase"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item_Selected/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item_Selected/resource.json new file mode 100644 index 0000000..f18c6e6 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Item_Selected/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "bf598a94ba3e840b2808087217168c2d6f346fa3734582a2f28f0e3d58234a6d", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab/data.bin new file mode 100644 index 0000000..c470c5d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#DADDE0","color":"#2E2E2EB3","fontFamily":"Roboto","fontSize":"12px","fontWeight":"bold","lineHeight":"14px","textTransform":"uppercase"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab/resource.json new file mode 100644 index 0000000..ba48877 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "580b9fbcc54610202a88b84fe36a5009d559e16bf21d2e7f869e512f46452d9d", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab_Selected/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab_Selected/data.bin new file mode 100644 index 0000000..ed79d9d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab_Selected/data.bin @@ -0,0 +1 @@ +{"base":{"style":{"backgroundColor":"#DADDE0","color":"#2E2E2E","fontFamily":"Roboto","fontSize":"12px","fontWeight":"bold","lineHeight":"14px","textTransform":"uppercase"}}} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab_Selected/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab_Selected/resource.json new file mode 100644 index 0000000..410fe37 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Menu_Tab_Selected/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "c29fd983bca5b36d1827e4894e8303583dcefc939fdc1e11faabe6be8adf41bb", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOff/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOff/resource.json new file mode 100644 index 0000000..afcac1d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOff/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "c9ac949a8a1223568fb396db62da8c9f9074ff5ac72e71ab57e8b5b35e0e77e2", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOff/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOff/style.json new file mode 100644 index 0000000..7ccc745 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOff/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "fill": "#C4C4C4" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOn/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOn/resource.json new file mode 100644 index 0000000..99753c0 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOn/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "5553e7a02c885c32051fb2af629d30af23b458f876f6655105870581007e98e8", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOn/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOn/style.json new file mode 100644 index 0000000..96234f6 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/InOutStateOn/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "fill": "#00AC00" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/background/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/background/resource.json new file mode 100644 index 0000000..e588c39 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/background/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "3b73543ad8957fc8a7fefc13fe2d0cc539af3ed5cc2167dee1df223bcc541f68", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/background/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/background/style.json new file mode 100644 index 0000000..9b972f6 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/background/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "backgroundColor": "#D1D3D4" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/core/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/core/resource.json new file mode 100644 index 0000000..47b64a9 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/core/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "3bdb60050a37a2266642487cd4dd58e99ac5206a24041fba27c604ccd1266ab2", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/core/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/core/style.json new file mode 100644 index 0000000..c406f5b --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/core/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "backgroundColor": "#E0E0E0" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/description/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/description/resource.json new file mode 100644 index 0000000..ce5941c --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/description/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "9a661cfbb7cfff3ebc918cd8f45b10a2c0f4dc4ee23a06e2bc8694048b481599", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/description/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/description/style.json new file mode 100644 index 0000000..9171d47 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/description/style.json @@ -0,0 +1,8 @@ +{ + "base": { + "style": { + "color": "#000000", + "textAlign": "right" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/label/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/label/resource.json new file mode 100644 index 0000000..aaac0ba --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/label/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "9e81ed77b656476cd744e868af02d2918c0488d338d37a6ae09a3a3bae8cb70e", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/label/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/label/style.json new file mode 100644 index 0000000..bf831af --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/General/label/style.json @@ -0,0 +1,10 @@ +{ + "base": { + "style": { + "color": "#000000", + "fontWeight": "bold", + "textAlign": "center", + "textDecoration": "underline" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/faulted/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/faulted/resource.json new file mode 100644 index 0000000..66c4d5e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/faulted/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "b7974251c40ddd78ec5b65a8b5b2b20589895c7430792d5c9abbd644ad287d22", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/faulted/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/faulted/style.json new file mode 100644 index 0000000..95121fa --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/faulted/style.json @@ -0,0 +1,17 @@ +{ + "base": { + "animation": { + "duration": "700ms", + "direction": "alternate-reverse", + "fillMode": "none", + "keyframes": { + "0%": { + "color": "#808080" + }, + "100%": { + "color": "#FF0000" + } + } + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/normal/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/normal/resource.json new file mode 100644 index 0000000..cebab49 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/normal/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "00cd9c58c9b949db998ef7426ed3160a8a0754e9c77cfea88d84d22d95f3c67c", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/normal/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/normal/style.json new file mode 100644 index 0000000..fb1801e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Icons/normal/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "color": "#808080" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Selected/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Selected/resource.json new file mode 100644 index 0000000..86debdb --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Selected/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "e9587738290fa78adfc826958502658b78b9f7f3af8efab4de147cb9f7dd7a99", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Selected/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Selected/style.json new file mode 100644 index 0000000..45e43db --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Selected/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "backgroundColor": "#e0e0e0" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Unselected/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Unselected/resource.json new file mode 100644 index 0000000..dff6f42 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Unselected/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "666bf3c855b5c6fac42554d18f732e461e9539d8dcbdedaa4a5d34290a2145ee", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Unselected/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Unselected/style.json new file mode 100644 index 0000000..9b972f6 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/Navigation/Unselected/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "backgroundColor": "#D1D3D4" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/background/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/background/resource.json new file mode 100644 index 0000000..e588c39 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/background/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "3b73543ad8957fc8a7fefc13fe2d0cc539af3ed5cc2167dee1df223bcc541f68", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/background/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/background/style.json new file mode 100644 index 0000000..9b972f6 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/background/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "backgroundColor": "#D1D3D4" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/core/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/core/resource.json new file mode 100644 index 0000000..a09841f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/core/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "style.json" + ], + "attributes": { + "lastModificationSignature": "f14e039cf0ecb31c5d9f7c3532dc21d0f59c5453dc6e75ae206617f1866d4bba", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/core/style.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/core/style.json new file mode 100644 index 0000000..c406f5b --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/style-classes/Popups/core/style.json @@ -0,0 +1,7 @@ +{ + "base": { + "style": { + "backgroundColor": "#E0E0E0" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/AdHocTrends/AdHocTrends/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/AdHocTrends/AdHocTrends/resource.json new file mode 100644 index 0000000..d0b4129 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/AdHocTrends/AdHocTrends/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "ee6bc80a3f9cef729d13a3f49049bc9eeefe236018c1ec0836803fbe06f1316d", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/AdHocTrends/AdHocTrends/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/AdHocTrends/AdHocTrends/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..a8336c1c68011388738ae23d6180aae2d95be3f1 GIT binary patch literal 14595 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/AdHocTrends/AdHocTrends/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/AdHocTrends/AdHocTrends/view.json new file mode 100644 index 0000000..049a79b --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/AdHocTrends/AdHocTrends/view.json @@ -0,0 +1,4520 @@ +{ + "custom": { + "activeControl": null, + "configureDatabases": {}, + "databases": [], + "functionTitle": "", + "refreshRate": 1000 + }, + "params": {}, + "propConfig": { + "custom.activeControl": { + "persistent": true + }, + "custom.configureDatabases": { + "binding": { + "config": { + "expression": "true" + }, + "transforms": [ + { + "code": "\t# resets this property when the view is opened\n\treturn {}", + "type": "script" + } + ], + "type": "expr" + }, + "persistent": true + }, + "custom.databases": { + "binding": { + "config": { + "expression": "runScript(\u0027system.db.getConnections\u0027, 0)" + }, + "transforms": [ + { + "code": "\t# collect the database connection info, check for which ones are enabled for storing ad hoc trend configs\n\tdatabases \u003d []\n\tfor row in range(value.getRowCount()):\n\t\tdatabase \u003d {}\n\t\tfor column in value.getColumnNames():\n\t\t\tdatabase[column] \u003d value.getValueAt(row, column)\n\t\ttry:\n\t\t\tdatabase[\u0027Enabled\u0027] \u003d database[\u0027Status\u0027] \u003d\u003d \u0027Valid\u0027 and self.rootContainer.databaseEnabled(database[\u0027Name\u0027])\n\t\texcept:\n\t\t\tdatabase[\u0027Enabled\u0027] \u003d False\n\t\tdatabases.append(database)\n\treturn databases", + "type": "script" + } + ], + "type": "expr" + }, + "persistent": true + }, + "custom.functionTitle": { + "persistent": true + }, + "custom.refreshRate": { + "persistent": true + } + }, + "props": { + "defaultSize": { + "width": 883 + } + }, + "root": { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "basis": "30px", + "shrink": 0 + }, + "props": { + "path": "material/trending_up" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "TitleSpacer" + }, + "position": { + "basis": "15px" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AdHocTrends" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "AdHocTrends/HeaderTitle" + }, + "text": "Ad Hoc Trends" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "FunctionTitle" + }, + "position": { + "basis": "15px", + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.custom.functionTitle" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "AdHocTrends/FunctionTitle", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "FunctionTitleSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "custom": { + "title": "Configure Databases" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, None, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ConfigureDatabases" + }, + "position": { + "basis": "26px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)" + }, + "type": "expr" + } + }, + "props.enabled": { + "binding": { + "config": { + "expression": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)" + }, + "type": "expr" + } + } + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/storage" + } + }, + "primary": false, + "style": { + "classes": "AdHocTrends/Control AdHocTrends/FullRadius" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "DbSpacer" + }, + "position": { + "basis": "8px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)" + }, + "type": "expr" + } + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "title": "Load from Database" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, None, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "LoadFromDb" + }, + "position": { + "basis": "25px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "struct": { + "admin": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)", + "databases": "{view.custom.databases}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn value.admin or bool(filter(lambda x: x[\u0027Enabled\u0027], value.databases))", + "type": "script" + } + ], + "type": "expr-struct" + } + }, + "props.enabled": { + "binding": { + "config": { + "struct": { + "admin": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)", + "databases": "{view.custom.databases}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn value.admin or bool(filter(lambda x: x[\u0027Enabled\u0027], value.databases))", + "type": "script" + } + ], + "type": "expr-struct" + } + } + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/playlist_play" + } + }, + "primary": false, + "style": { + "classes": "AdHocTrends/Control AdHocTrends/LeftRadius" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "custom": { + "title": "Save to Database" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, None, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "SaveToDb" + }, + "position": { + "basis": "25px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "struct": { + "admin": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)", + "databases": "{view.custom.databases}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn value.admin or bool(filter(lambda x: x[\u0027Enabled\u0027], value.databases))", + "type": "script" + } + ], + "type": "expr-struct" + } + }, + "props.enabled": { + "binding": { + "config": { + "struct": { + "admin": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)", + "databases": "{view.custom.databases}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn value.admin or bool(filter(lambda x: x[\u0027Enabled\u0027], value.databases))", + "type": "script" + } + ], + "type": "expr-struct" + } + } + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/playlist_add" + }, + "width": 23 + }, + "primary": false, + "style": { + "borderLeftWidth": "0px", + "classes": "AdHocTrends/Control AdHocTrends/RightRadius" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "SaveFileSpacer" + }, + "position": { + "basis": "8px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "struct": { + "admin": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)", + "databases": "{view.custom.databases}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn value.admin or bool(filter(lambda x: x[\u0027Enabled\u0027], value.databases))", + "type": "script" + } + ], + "type": "expr-struct" + } + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "title": "Load File" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, None, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "LoadFromFile" + }, + "position": { + "basis": "25px" + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/folder_open" + } + }, + "primary": false, + "style": { + "classes": "AdHocTrends/Control AdHocTrends/LeftRadius" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "custom": { + "title": "Save File" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, None, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "SaveToFile" + }, + "position": { + "basis": "25px" + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/save" + }, + "width": 23 + }, + "primary": false, + "style": { + "borderLeftWidth": "0px", + "classes": "AdHocTrends/Control AdHocTrends/RightRadius" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "SetRefreshRateSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "custom": { + "title": "Set Real-Time Refresh Rate" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, \u0027root/MainTopControls/HeaderLarge/SetRefreshRate/Rate\u0027, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "SetRefreshRate" + }, + "position": { + "basis": "25px" + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/access_time" + } + }, + "primary": false, + "style": { + "classes": "AdHocTrends/Control AdHocTrends/LeftRadius" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.togglePause()" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Pause" + }, + "position": { + "basis": "25px" + }, + "propConfig": { + "props.image.icon.color": { + "binding": { + "config": { + "expression": "if({this.props.primary}, \u0027var(--neutral-20)\u0027, \u0027var(--neutral-70)\u0027)" + }, + "type": "expr" + } + }, + "props.primary": { + "binding": { + "config": { + "expression": "{...../PowerChart.props.config.refreshRate} \u003d 0" + }, + "type": "expr" + } + } + }, + "props": { + "image": { + "icon": { + "path": "material/pause_circle_outline" + }, + "width": 23 + }, + "style": { + "borderLeftWidth": "0px", + "classes": "AdHocTrends/Control AdHocTrends/RightRadius" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "SetTitleSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "custom": { + "title": "Set Title" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, \u0027root/MainTopControls/HeaderLarge/SetTitle/Title\u0027, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "SetTitle" + }, + "position": { + "basis": "26px", + "shrink": 0 + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/text_fields" + } + }, + "primary": false, + "style": { + "classes": "AdHocTrends/Control AdHocTrends/FullRadius" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Controls" + }, + "position": { + "basis": "50px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "AdHocTrends/ControlBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "events": { + "dom": { + "onKeyPress": { + "config": { + "script": "\tself.view.rootContainer.setTitle(self.props.text)\n\tif event.key \u003d\u003d \u0027Enter\u0027:\n\t\tself.view.rootContainer.closeFunction()\n\t\t# clearing own text during key press will not work\n\t\t# must be cleared it after this event\n\t\timport threading\n\t\tdef resetText():\n\t\t\tself.props.text \u003d \u0027\u0027\n\t\tthreading.Timer(0.3, resetText).start()\n\t\t" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Title" + }, + "position": { + "basis": "350px" + }, + "props": { + "deferUpdates": false, + "placeholder": "Enter a new title or leave blank to clear...", + "rejectUpdatesWhileFocused": false + }, + "type": "ia.input.text-field" + }, + { + "meta": { + "name": "InputSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n\tself.getSibling(\u0027Title\u0027).props.text \u003d \u0027\u0027" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButton" + }, + "text": "Cancel" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tnewTitle \u003d self.getSibling(\u0027Title\u0027).props.text\n\tself.getSibling(\u0027Title\u0027).props.text \u003d \u0027\u0027\n\t\n\tself.view.rootContainer.closeFunction()\n\tself.view.rootContainer.setTitle(newTitle)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Save" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButton" + }, + "text": "Save" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "SetTitle" + }, + "position": { + "basis": "40px", + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/FunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "events": { + "dom": { + "onKeyDown": { + "config": { + "script": "\tif event.key \u003d\u003d \u0027Enter\u0027:\n\t\tself.view.rootContainer.closeFunction()\n\t\t# the value entered will not yet be availble\n\t\t# must trigger the new rate after this event is done\n\t\timport threading\n\t\tdef setNewRate():\n\t\t\tself.view.rootContainer.setRate(self.props.value)\n\t\tthreading.Timer(0.3, setNewRate).start()\n\t\t\n\t\t" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Rate" + }, + "position": { + "basis": "150px" + }, + "props": { + "align": "left", + "format": "0,0", + "inputBounds": { + "minimum": 0 + }, + "placeholder": "Enter a new rate for real-time mode...", + "value": 5000 + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Units" + }, + "position": { + "shrink": 0 + }, + "props": { + "text": "(ms)" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "InputSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButton" + }, + "text": "Cancel" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tnewRate \u003d self.getSibling(\u0027Rate\u0027).props.value\n\t\n\tself.view.rootContainer.closeFunction()\n\tself.view.rootContainer.setRate(newRate)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Save" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButton" + }, + "text": "Save" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "SetRefreshRate" + }, + "position": { + "basis": "40px", + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/FunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Plots" + }, + "position": { + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "16px" + } + }, + "selected": true, + "text": "Plots", + "uncheckedIcon": { + "style": { + "width": "16px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "OptionsSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Display" + }, + "position": { + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "16px" + } + }, + "selected": true, + "text": "Display Settings", + "uncheckedIcon": { + "style": { + "width": "16px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "InputSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButton" + }, + "text": "Cancel" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tincludePlots \u003d self.getSibling(\u0027Plots\u0027).props.selected\n\tincludeDisplay \u003d self.getSibling(\u0027Display\u0027).props.selected\n\t\n\tself.view.rootContainer.closeFunction()\n\tself.view.rootContainer.saveToFile(includePlots, includeDisplay)\n\t" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Save" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButton" + }, + "text": "Save" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "SaveToFile" + }, + "position": { + "basis": "40px", + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/FunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Plots" + }, + "position": { + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "16px" + } + }, + "selected": true, + "text": "Plots", + "uncheckedIcon": { + "style": { + "width": "16px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "OptionsSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Display" + }, + "position": { + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "16px" + } + }, + "selected": true, + "text": "Display Settings", + "uncheckedIcon": { + "style": { + "width": "16px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "BrowseSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "custom": { + "configJson": "" + }, + "events": { + "component": { + "onFileReceived": { + "config": { + "script": "\tself.custom.configJson \u003d event.file.getString()\n" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "FileUpload" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "fileUploadIcon": { + "path": "material/folder_open", + "style": { + "cursor": "pointer" + } + }, + "maxUploads": 1, + "supportedFileTypes": [ + "JSON" + ] + }, + "type": "ia.input.fileupload" + }, + { + "meta": { + "name": "BrowseLabel" + }, + "position": { + "shrink": 0 + }, + "props": { + "text": "Browse (10 MB max)" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "InputSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n\tself.getSibling(\u0027FileUpload\u0027).custom.configJson \u003d \u0027\u0027" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButton" + }, + "text": "Cancel" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tincludePlots \u003d self.getSibling(\u0027Plots\u0027).props.selected\n\tincludeDisplay \u003d self.getSibling(\u0027Display\u0027).props.selected\n\t\n\tself.view.rootContainer.closeFunction()\n\t\n\tself.view.rootContainer.loadFromFile(self.getSibling(\u0027FileUpload\u0027).custom.configJson, includePlots, includeDisplay)\n\tself.getSibling(\u0027FileUpload\u0027).custom.configJson \u003d \u0027\u0027" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Load" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButton" + }, + "text": "Load" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "LoadFromFile" + }, + "position": { + "basis": "40px", + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/FunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "FullSpacer" + }, + "position": { + "basis": "0px", + "grow": 1, + "shrink": 0 + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Databases" + }, + "position": { + "basis": "256px" + }, + "propConfig": { + "props.options": { + "binding": { + "config": { + "path": "view.custom.databases" + }, + "transforms": [ + { + "code": "\treturn [{\u0027label\u0027: \u0027%s (%s)%s\u0027 %(db.Name, db.DBType, \u0027\u0027 if db.Status \u003d\u003d \u0027Valid\u0027 else \u0027[OFFLINE]\u0027), \u0027value\u0027: db.Name} for db in value]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "placeholder": { + "text": "Select a database..." + }, + "search": { + "noResultsText": "No databases found..." + }, + "showClearIcon": true, + "style": { + "classes": "AdHocTrends/DropDown" + }, + "value": null + }, + "type": "ia.input.dropdown" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.refreshBinding(\u0027custom.databases\u0027)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Refresh" + }, + "position": { + "basis": "26px", + "shrink": 0 + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/refresh" + } + }, + "primary": false, + "style": { + "classes": "AdHocTrends/Control" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "ToggleSwitch" + }, + "position": { + "basis": "140px", + "shrink": 0 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "!isNull({../Databases.props.value})" + }, + "type": "expr" + } + }, + "props.label.text": { + "binding": { + "config": { + "expression": "if({this.props.selected}, \u0027Enabled\u0027, \u0027Disabled\u0027)" + }, + "type": "expr" + } + }, + "props.selected": { + "binding": { + "config": { + "struct": { + "databases": "{view.custom.databases}", + "selectedDatabase": "{../Databases.props.value}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn next((x.Enabled for x in self.view.custom.databases if x.Name \u003d\u003d value.selectedDatabase), False)", + "type": "script" + } + ], + "type": "expr-struct" + }, + "onChange": { + "enabled": null, + "script": "\tselectedDatabase \u003d self.getSibling(\u0027Databases\u0027).props.value\n\tif selectedDatabase:\n\t\tif currentValue:\n\t\t\tif currentValue.value:\n\t\t\t\tself.view.custom.configureDatabases[selectedDatabase] \u003d True\n\t\t\telse:\n\t\t\t\tself.view.custom.configureDatabases[selectedDatabase] \u003d False" + } + } + }, + "props": { + "color": { + "selected": "var(--success)", + "unselected": "var(--neutral-60)" + }, + "label": {} + }, + "type": "ia.input.toggle-switch" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n\tself.view.custom.configureDatabases \u003d {}\n\tself.getSibling(\u0027Databases\u0027).props.value \u003d None" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButton" + }, + "text": "Cancel" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n\tself.view.rootContainer.configureDatabases()\n\tself.getSibling(\u0027Databases\u0027).props.value \u003d None\n\t" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Save" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "AdHocTrends/CancelButton" + }, + "text": "Save" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ConfigureDatabases" + }, + "position": { + "basis": "40px", + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/FunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Plots" + }, + "position": { + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "16px" + } + }, + "selected": true, + "text": "Plots", + "uncheckedIcon": { + "style": { + "width": "16px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "OptionsSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Display" + }, + "position": { + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "16px" + } + }, + "selected": true, + "text": "Display Settings", + "uncheckedIcon": { + "style": { + "width": "16px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "DatabaseSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Databases" + }, + "position": { + "basis": "256px" + }, + "propConfig": { + "props.options": { + "binding": { + "config": { + "path": "view.custom.databases" + }, + "transforms": [ + { + "code": "\treturn [{\u0027label\u0027: \u0027%s (%s)%s\u0027 %(db.Name, db.DBType, \u0027\u0027 if db.Status \u003d\u003d \u0027Valid\u0027 else \u0027[OFFLINE]\u0027), \u0027value\u0027: db.Name} for db in filter(lambda x: x[\u0027Enabled\u0027], value)]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "placeholder": { + "text": "Select a database..." + }, + "search": { + "noResultsText": "No databases found..." + }, + "showClearIcon": true, + "style": { + "classes": "AdHocTrends/DropDown" + }, + "value": null + }, + "type": "ia.input.dropdown" + }, + { + "meta": { + "name": "ChartSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "custom": { + "key": "value" + }, + "meta": { + "name": "Charts" + }, + "position": { + "basis": "256px" + }, + "propConfig": { + "props.options": { + "binding": { + "config": { + "path": "../Databases.props.value" + }, + "transforms": [ + { + "code": "\treturn [{\u0027value\u0027: chart[\u0027id\u0027], \u0027label\u0027: chart[\u0027config_name\u0027]} for chart in self.view.rootContainer.getCharts(value)]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "placeholder": { + "text": "Select a chart..." + }, + "search": { + "noResultsText": "No charts found..." + }, + "showClearIcon": true, + "style": { + "classes": "AdHocTrends/DropDown" + }, + "value": null + }, + "type": "ia.input.dropdown" + }, + { + "meta": { + "name": "InputSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n\tself.getSibling(\u0027Databases\u0027).props.value \u003d None\n\tself.getSibling(\u0027Charts\u0027).props.value \u003d None" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButton" + }, + "text": "Cancel" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tincludePlots \u003d self.getSibling(\u0027Plots\u0027).props.selected\n\tincludeDisplay \u003d self.getSibling(\u0027Display\u0027).props.selected\n\tdbName \u003d self.getSibling(\u0027Databases\u0027).props.value\n\tconfigId \u003d self.getSibling(\u0027Charts\u0027).props.value\n\t\n\tself.view.rootContainer.closeFunction()\n\t\n\tself.view.rootContainer.loadFromDb(dbName, configId, includePlots, includeDisplay)\n\tself.getSibling(\u0027Databases\u0027).props.value \u003d None\n\tself.getSibling(\u0027Charts\u0027).props.value \u003d None" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Load" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButton" + }, + "text": "Load" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "LoadFromDb" + }, + "position": { + "basis": "40px", + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/FunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Plots" + }, + "position": { + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "16px" + } + }, + "selected": true, + "text": "Plots", + "uncheckedIcon": { + "style": { + "width": "16px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "OptionsSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Display" + }, + "position": { + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "16px" + } + }, + "selected": true, + "text": "Display Settings", + "uncheckedIcon": { + "style": { + "width": "16px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "PrivateSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Private" + }, + "position": { + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{session.props.auth.authenticated}" + }, + "type": "expr" + } + } + }, + "props": { + "checkedIcon": { + "style": { + "width": "16px" + } + }, + "text": "Store Privately", + "uncheckedIcon": { + "style": { + "width": "16px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "DatabaseSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Databases" + }, + "position": { + "basis": "256px" + }, + "propConfig": { + "props.options": { + "binding": { + "config": { + "path": "view.custom.databases" + }, + "transforms": [ + { + "code": "\treturn [{\u0027label\u0027: \u0027%s (%s)%s\u0027 %(db.Name, db.DBType, \u0027\u0027 if db.Status \u003d\u003d \u0027Valid\u0027 else \u0027[OFFLINE]\u0027), \u0027value\u0027: db.Name} for db in filter(lambda x: x[\u0027Enabled\u0027], value)]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "placeholder": { + "text": "Select a database..." + }, + "search": { + "noResultsText": "No databases found..." + }, + "showClearIcon": true, + "style": { + "classes": "AdHocTrends/DropDown" + }, + "value": null + }, + "type": "ia.input.dropdown" + }, + { + "meta": { + "name": "ChartSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "custom": { + "key": "value" + }, + "meta": { + "name": "Charts" + }, + "position": { + "basis": "256px" + }, + "propConfig": { + "props.options": { + "binding": { + "config": { + "path": "../Databases.props.value" + }, + "transforms": [ + { + "code": "\treturn [{\u0027value\u0027: chart[\u0027id\u0027], \u0027label\u0027: chart[\u0027config_name\u0027]} for chart in self.view.rootContainer.getOwnCharts(value)]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "allowCustomOptions": true, + "placeholder": { + "text": "Select or create a chart..." + }, + "search": { + "noResultsText": "No charts found..." + }, + "showClearIcon": true, + "style": { + "classes": "AdHocTrends/DropDown" + }, + "value": null + }, + "type": "ia.input.dropdown" + }, + { + "meta": { + "name": "InputSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n\tself.getSibling(\u0027Databases\u0027).props.value \u003d None\n\tself.getSibling(\u0027Charts\u0027).props.value \u003d None" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButton" + }, + "text": "Cancel" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tincludePlots \u003d self.getSibling(\u0027Plots\u0027).props.selected\n\tincludeDisplay \u003d self.getSibling(\u0027Display\u0027).props.selected\n\tprivate \u003d self.session.props.auth.authenticated and self.getSibling(\u0027Private\u0027).props.selected\n\tdbName \u003d self.getSibling(\u0027Databases\u0027).props.value\n\tconfigId \u003d self.getSibling(\u0027Charts\u0027).props.value\n\t\n\tself.view.rootContainer.closeFunction()\n\t\n\tself.view.rootContainer.saveToDb(dbName, configId, includePlots, includeDisplay, private)\n\tself.getSibling(\u0027Databases\u0027).props.value \u003d None\n\tself.getSibling(\u0027Charts\u0027).props.value \u003d None\n" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Save" + }, + "position": { + "basis": "80px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButton" + }, + "text": "Save" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "SaveToDb" + }, + "position": { + "basis": "40px", + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/FunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "HeaderLarge" + }, + "position": { + "size": "large" + }, + "props": { + "direction": "column", + "style": { + "classes": "AdHocTrends/Header", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "basis": "30px", + "shrink": 0 + }, + "props": { + "path": "material/trending_up" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "TitleSpacer" + }, + "position": { + "basis": "15px" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AdHocTrends" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "AdHocTrends/HeaderTitle" + }, + "text": "Ad Hoc Trends" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "FunctionTitle" + }, + "position": { + "basis": "15px", + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.custom.functionTitle" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "AdHocTrends/FunctionTitle" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Controls" + }, + "position": { + "basis": "50px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "AdHocTrends/ControlBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "HeaderSmall" + }, + "props": { + "direction": "column", + "style": { + "classes": "AdHocTrends/Header", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "MainTopControls" + }, + "position": { + "shrink": 0 + }, + "propConfig": { + "props.breakpoint": { + "binding": { + "config": { + "expression": "{../PowerChart.props.config.responsiveDesignWidth}+2" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "maxHeight": "50px", + "zIndex": 1 + } + }, + "type": "ia.container.breakpt" + }, + { + "meta": { + "name": "PowerChart" + }, + "position": { + "basis": "500px", + "grow": 1 + }, + "props": { + "axes": [ + { + "color": "#757A7F", + "dataFormat": "0,0.##", + "label": { + "font": { + "color": "#757A7F", + "size": 10 + }, + "offset": 0, + "style": { + "classes": "" + }, + "text": "" + }, + "name": "Default", + "position": "left", + "range": { + "auto": true, + "max": "", + "min": "" + }, + "style": { + "classes": "" + }, + "tick": { + "color": "#757A7F", + "label": { + "font": { + "color": "#757A7F", + "size": 10 + }, + "style": { + "classes": "" + } + }, + "style": { + "classes": "" + } + }, + "width": 60 + } + ], + "config": { + "measureOfTime": "minutes", + "unitOfTime": 5 + }, + "plots": [ + { + "color": "var(--neutral-10)", + "markers": [], + "relativeWeight": 1, + "style": { + "classes": "" + } + } + ], + "timeAxis": { + "color": "#737676" + }, + "title": { + "font": { + "color": "" + } + } + }, + "type": "ia.chart.powerchart" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "events": { + "dom": { + "onKeyPress": { + "config": { + "script": "\tself.view.rootContainer.setTitle(self.props.text)\n\tif event.key \u003d\u003d \u0027Enter\u0027:\n\t\tself.view.rootContainer.closeFunction()\n\t\t# clearing own text during key press will not work\n\t\t# must be cleared it after this event\n\t\timport threading\n\t\tdef resetText():\n\t\t\tself.props.text \u003d \u0027\u0027\n\t\tthreading.Timer(0.3, resetText).start()\n\t\t" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Title" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "deferUpdates": false, + "placeholder": "Enter a new title or leave blank to clear...", + "rejectUpdatesWhileFocused": false + }, + "type": "ia.input.text-field" + }, + { + "meta": { + "name": "SaveSpacer" + }, + "position": { + "basis": "8px", + "shrink": 0 + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n\tself.parent.getSibling(\u0027Title\u0027).props.text \u003d \u0027\u0027" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButtonMobile" + }, + "text": "Cancel", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tnewTitle \u003d self.parent.getSibling(\u0027Title\u0027).props.text\n\tself.parent.getSibling(\u0027Title\u0027).props.text \u003d \u0027\u0027\n\t\n\tself.view.rootContainer.closeFunction()\n\tself.view.rootContainer.setTitle(newTitle)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Save" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButtonMobile" + }, + "text": "Save", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "CancelSave" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "SetTitle" + }, + "position": { + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "direction": "column", + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/MobileFunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "events": { + "dom": { + "onKeyDown": { + "config": { + "script": "\tif event.key \u003d\u003d \u0027Enter\u0027:\n\t\tself.view.rootContainer.closeFunction()\n\t\t# the value entered will not yet be availble\n\t\t# must trigger the new rate after this event is done\n\t\timport threading\n\t\tdef setNewRate():\n\t\t\tself.view.rootContainer.setRate(self.props.value)\n\t\tthreading.Timer(0.3, setNewRate).start()\n\t\t\n\t\t" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Rate" + }, + "position": { + "basis": "60px", + "grow": 1 + }, + "props": { + "align": "left", + "format": "0,0", + "inputBounds": { + "minimum": 0 + }, + "placeholder": "Enter a new rate for real-time mode...", + "style": { + "height": "60px" + }, + "value": 5000 + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Units" + }, + "position": { + "basis": "50px" + }, + "props": { + "text": "(ms)" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "RateInput" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "InputSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButtonMobile" + }, + "text": "Cancel", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tnewRate \u003d self.parent.parent.getChild(\u0027RateInput/Rate\u0027).props.value\n\t\n\tself.view.rootContainer.closeFunction()\n\tself.view.rootContainer.setRate(newRate)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Save" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButtonMobile" + }, + "text": "Save", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "CancelSave" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "SetRefreshRate" + }, + "position": { + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "direction": "column", + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/MobileFunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Plots" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "60px" + } + }, + "selected": true, + "text": "Plots", + "uncheckedIcon": { + "style": { + "width": "60px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "Display" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "60px" + } + }, + "selected": true, + "text": "Display Settings", + "uncheckedIcon": { + "style": { + "width": "60px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "children": [ + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButtonMobile" + }, + "text": "Cancel", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tincludePlots \u003d self.parent.getSibling(\u0027Plots\u0027).props.selected\n\tincludeDisplay \u003d self.parent.getSibling(\u0027Display\u0027).props.selected\n\t\n\tself.view.rootContainer.closeFunction()\n\tself.view.rootContainer.saveToFile(includePlots, includeDisplay)\n\t" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Save" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButtonMobile" + }, + "text": "Save", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "CancelSave" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "SaveToFile" + }, + "position": { + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "direction": "column", + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/MobileFunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Plots" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "60px" + } + }, + "selected": true, + "text": "Plots", + "uncheckedIcon": { + "style": { + "width": "60px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "Display" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "60px" + } + }, + "selected": true, + "text": "Display Settings", + "uncheckedIcon": { + "style": { + "width": "60px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "children": [ + { + "custom": { + "configJson": "" + }, + "events": { + "component": { + "onFileReceived": { + "config": { + "script": "\tself.custom.configJson \u003d event.file.getString()\n" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "FileUpload" + }, + "position": { + "basis": "60px", + "grow": 1 + }, + "props": { + "fileUploadIcon": { + "path": "material/folder_open", + "style": { + "cursor": "pointer" + } + }, + "maxUploads": 1, + "supportedFileTypes": [ + "JSON" + ] + }, + "type": "ia.input.fileupload" + }, + { + "meta": { + "name": "BrowseLabel" + }, + "position": { + "shrink": 0 + }, + "props": { + "text": "Browse (10 MB max)" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Browse" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "SaveSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n\tself.parent.parent.getChild(\u0027Browse/FileUpload\u0027).custom.configJson \u003d \u0027\u0027" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButtonMobile" + }, + "text": "Cancel", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tincludePlots \u003d self.parent.getSibling(\u0027Plots\u0027).props.selected\n\tincludeDisplay \u003d self.parent.getSibling(\u0027Display\u0027).props.selected\n\t\n\tself.view.rootContainer.closeFunction()\n\t\n\tself.view.rootContainer.loadFromFile(self.parent.parent.getChild(\u0027Browse/FileUpload\u0027).custom.configJson, includePlots, includeDisplay)\n\tself.parent.parent.getChild(\u0027Browse/FileUpload\u0027).custom.configJson \u003d \u0027\u0027" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Load" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButtonMobile" + }, + "text": "Load", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "CancelLoad" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "LoadFromFile" + }, + "position": { + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "direction": "column", + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/MobileFunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Databases" + }, + "position": { + "basis": "60px", + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "props.options": { + "binding": { + "config": { + "path": "view.custom.databases" + }, + "transforms": [ + { + "code": "\treturn [{\u0027label\u0027: \u0027%s (%s)%s\u0027 %(db.Name, db.DBType, \u0027\u0027 if db.Status \u003d\u003d \u0027Valid\u0027 else \u0027[OFFLINE]\u0027), \u0027value\u0027: db.Name} for db in value]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "placeholder": { + "text": "Select a database..." + }, + "search": { + "enabled": false, + "noResultsText": "No databases found..." + }, + "showClearIcon": true, + "style": { + "classes": "AdHocTrends/DropDown" + }, + "value": null + }, + "type": "ia.input.dropdown" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.refreshBinding(\u0027custom.databases\u0027)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Refresh" + }, + "position": { + "basis": "60px" + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/refresh" + } + }, + "primary": false, + "style": { + "classes": "AdHocTrends/Control" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "DbRefresh" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "ToggleSwitch" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "!isNull({../DbRefresh/Databases.props.value})" + }, + "type": "expr" + } + }, + "props.label.text": { + "binding": { + "config": { + "expression": "if({this.props.selected}, \u0027Enabled\u0027, \u0027Disabled\u0027)" + }, + "type": "expr" + } + }, + "props.selected": { + "binding": { + "config": { + "struct": { + "databases": "{view.custom.databases}", + "selectedDatabase": "{../DbRefresh/Databases.props.value}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn next((x.Enabled for x in self.view.custom.databases if x.Name \u003d\u003d value.selectedDatabase), False)", + "type": "script" + } + ], + "type": "expr-struct" + }, + "onChange": { + "enabled": null, + "script": "\tselectedDatabase \u003d self.parent.getChild(\u0027DbRefresh/Databases\u0027).props.value\n\tif selectedDatabase:\n\t\tif currentValue:\n\t\t\tif currentValue.value:\n\t\t\t\tself.view.custom.configureDatabases[selectedDatabase] \u003d True\n\t\t\telse:\n\t\t\t\tself.view.custom.configureDatabases[selectedDatabase] \u003d False" + } + } + }, + "props": { + "color": { + "selected": "var(--success)", + "unselected": "var(--neutral-60)" + }, + "label": {} + }, + "type": "ia.input.toggle-switch" + }, + { + "children": [ + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n\tself.view.custom.configureDatabases \u003d {}\n\tself.parent.parent.getChild(\u0027DbRefresh/Databases\u0027).props.value \u003d None" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButtonMobile" + }, + "text": "Cancel", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n\tself.view.rootContainer.configureDatabases()\n\tself.parent.parent.getChild(\u0027DbRefresh/Databases\u0027).props.value \u003d None\n\t" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Save" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButtonMobile" + }, + "text": "Save", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "CancelSave" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "ConfigureDatabases" + }, + "position": { + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "direction": "column", + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/MobileFunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Plots" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "60px" + } + }, + "selected": true, + "text": "Plots", + "uncheckedIcon": { + "style": { + "width": "60px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "Display" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "60px" + } + }, + "selected": true, + "text": "Display Settings", + "uncheckedIcon": { + "style": { + "width": "60px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "Databases" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "propConfig": { + "props.options": { + "binding": { + "config": { + "path": "view.custom.databases" + }, + "transforms": [ + { + "code": "\treturn [{\u0027label\u0027: \u0027%s (%s)%s\u0027 %(db.Name, db.DBType, \u0027\u0027 if db.Status \u003d\u003d \u0027Valid\u0027 else \u0027[OFFLINE]\u0027), \u0027value\u0027: db.Name} for db in filter(lambda x: x[\u0027Enabled\u0027], value)]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "placeholder": { + "text": "Select a database..." + }, + "search": { + "enabled": false, + "noResultsText": "No databases found..." + }, + "showClearIcon": true, + "style": { + "classes": "AdHocTrends/DropDown" + }, + "value": null + }, + "type": "ia.input.dropdown" + }, + { + "meta": { + "name": "ChartSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "custom": { + "key": "value" + }, + "meta": { + "name": "Charts" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "propConfig": { + "props.options": { + "binding": { + "config": { + "path": "../Databases.props.value" + }, + "transforms": [ + { + "code": "\treturn [{\u0027value\u0027: chart[\u0027id\u0027], \u0027label\u0027: chart[\u0027config_name\u0027]} for chart in self.view.rootContainer.getCharts(value)]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "placeholder": { + "text": "Select a chart..." + }, + "search": { + "noResultsText": "No charts found..." + }, + "showClearIcon": true, + "style": { + "classes": "AdHocTrends/DropDown" + }, + "value": null + }, + "type": "ia.input.dropdown" + }, + { + "meta": { + "name": "SaveSpacer" + }, + "position": { + "basis": "8px", + "shrink": 0 + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n\tself.parent.getSibling(\u0027Databases\u0027).props.value \u003d None\n\tself.parent.getSibling(\u0027Charts\u0027).props.value \u003d None" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButtonMobile" + }, + "text": "Cancel", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tincludePlots \u003d self.parent.getSibling(\u0027Plots\u0027).props.selected\n\tincludeDisplay \u003d self.parent.getSibling(\u0027Display\u0027).props.selected\n\tdbName \u003d self.parent.getSibling(\u0027Databases\u0027).props.value\n\tconfigId \u003d self.parent.getSibling(\u0027Charts\u0027).props.value\n\t\n\tself.view.rootContainer.closeFunction()\n\t\n\tself.view.rootContainer.loadFromDb(dbName, configId, includePlots, includeDisplay)\n\tself.parent.getSibling(\u0027Databases\u0027).props.value \u003d None\n\tself.parent.getSibling(\u0027Charts\u0027).props.value \u003d None" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Load" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButtonMobile" + }, + "text": "Load", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "CancelLoad" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "LoadFromDb" + }, + "position": { + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "direction": "column", + "style": { + "classes": "AdHocTrends/MobileFunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Plots" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "60px" + } + }, + "selected": true, + "text": "Plots", + "uncheckedIcon": { + "style": { + "width": "60px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "Display" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "props": { + "checkedIcon": { + "style": { + "width": "60px" + } + }, + "selected": true, + "text": "Display Settings", + "uncheckedIcon": { + "style": { + "width": "60px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "Private" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{session.props.auth.authenticated}" + }, + "type": "expr" + } + } + }, + "props": { + "checkedIcon": { + "style": { + "width": "60px" + } + }, + "text": "Store Privately", + "uncheckedIcon": { + "style": { + "width": "60px" + } + } + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "Databases" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "propConfig": { + "props.options": { + "binding": { + "config": { + "path": "view.custom.databases" + }, + "transforms": [ + { + "code": "\treturn [{\u0027label\u0027: \u0027%s (%s)%s\u0027 %(db.Name, db.DBType, \u0027\u0027 if db.Status \u003d\u003d \u0027Valid\u0027 else \u0027[OFFLINE]\u0027), \u0027value\u0027: db.Name} for db in filter(lambda x: x[\u0027Enabled\u0027], value)]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "placeholder": { + "text": "Select a database..." + }, + "search": { + "enabled": false, + "noResultsText": "No databases found..." + }, + "showClearIcon": true, + "style": { + "classes": "AdHocTrends/DropDown" + }, + "value": null + }, + "type": "ia.input.dropdown" + }, + { + "meta": { + "name": "ChartSpacer" + }, + "position": { + "basis": "8px", + "shrink": 0 + }, + "type": "ia.display.label" + }, + { + "custom": { + "key": "value" + }, + "meta": { + "name": "Charts" + }, + "position": { + "basis": "60px", + "shrink": 0 + }, + "propConfig": { + "props.options": { + "binding": { + "config": { + "path": "../Databases.props.value" + }, + "transforms": [ + { + "code": "\treturn [{\u0027value\u0027: chart[\u0027id\u0027], \u0027label\u0027: chart[\u0027config_name\u0027]} for chart in self.view.rootContainer.getOwnCharts(value)]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "allowCustomOptions": true, + "placeholder": { + "text": "Select or create a chart..." + }, + "search": { + "noResultsText": "No charts found..." + }, + "showClearIcon": true, + "style": { + "classes": "AdHocTrends/DropDown" + }, + "value": null + }, + "type": "ia.input.dropdown" + }, + { + "meta": { + "name": "InputSpacer" + }, + "position": { + "basis": "8px", + "shrink": 0 + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.closeFunction()\n\tself.parent.getSibling(\u0027Databases\u0027).props.value \u003d None\n\tself.parent.getSibling(\u0027Charts\u0027).props.value \u003d None" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Cancel" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "primary": false, + "style": { + "classes": "AdHocTrends/CancelButtonMobile" + }, + "text": "Cancel", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tincludePlots \u003d self.parent.getSibling(\u0027Plots\u0027).props.selected\n\tincludeDisplay \u003d self.parent.getSibling(\u0027Display\u0027).props.selected\n\tprivate \u003d self.session.props.auth.authenticated and self.parent.getSibling(\u0027Private\u0027).props.selected\n\tdbName \u003d self.parent.getSibling(\u0027Databases\u0027).props.value\n\tconfigId \u003d self.parent.getSibling(\u0027Charts\u0027).props.value\n\t\n\tself.view.rootContainer.closeFunction()\n\t\n\tself.view.rootContainer.saveToDb(dbName, configId, includePlots, includeDisplay, private)\n\tself.parent.getSibling(\u0027Databases\u0027).props.value \u003d None\n\tself.parent.getSibling(\u0027Charts\u0027).props.value \u003d None\n" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Save" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "props": { + "style": { + "classes": "AdHocTrends/SaveLoadButtonMobile" + }, + "text": "Save", + "textStyle": { + "fontSize": "20px" + } + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "CancelSave" + }, + "position": { + "basis": "60px" + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "SaveToDb" + }, + "position": { + "display": false, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.custom.activeControl} \u003d {this.meta.name}" + }, + "type": "expr" + }, + "persistent": true + } + }, + "props": { + "direction": "column", + "style": { + "classes": "AdHocTrends/MobileFunctionBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "custom": { + "title": "Configure Databases" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, None, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ConfigureDatabases" + }, + "position": { + "basis": "36px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)" + }, + "type": "expr" + } + }, + "props.enabled": { + "binding": { + "config": { + "expression": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)" + }, + "type": "expr" + } + } + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/storage" + } + }, + "primary": false, + "style": { + "classes": "AdHocTrends/FullRadiusMobile AdHocTrends/MobileControl" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "DatabaseSpacer" + }, + "position": { + "basis": "8px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "struct": { + "admin": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)", + "databases": "{view.custom.databases}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn value.admin or bool(filter(lambda x: x[\u0027Enabled\u0027], value.databases))", + "type": "script" + } + ], + "type": "expr-struct" + } + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "title": "Load from Database" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, None, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "LoadFromDb" + }, + "position": { + "basis": "35px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "struct": { + "admin": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)", + "databases": "{view.custom.databases}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn value.admin or bool(filter(lambda x: x[\u0027Enabled\u0027], value.databases))", + "type": "script" + } + ], + "type": "expr-struct" + } + }, + "props.enabled": { + "binding": { + "config": { + "struct": { + "admin": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)", + "databases": "{view.custom.databases}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn value.admin or bool(filter(lambda x: x[\u0027Enabled\u0027], value.databases))", + "type": "script" + } + ], + "type": "expr-struct" + } + } + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/playlist_play" + } + }, + "primary": false, + "style": { + "classes": "AdHocTrends/LeftRadiusMobile AdHocTrends/MobileControl" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "custom": { + "title": "Save to Database" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, None, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "SaveToDb" + }, + "position": { + "basis": "35px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "struct": { + "admin": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)", + "databases": "{view.custom.databases}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn value.admin or bool(filter(lambda x: x[\u0027Enabled\u0027], value.databases))", + "type": "script" + } + ], + "type": "expr-struct" + } + }, + "props.enabled": { + "binding": { + "config": { + "struct": { + "admin": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)", + "databases": "{view.custom.databases}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn value.admin or bool(filter(lambda x: x[\u0027Enabled\u0027], value.databases))", + "type": "script" + } + ], + "type": "expr-struct" + } + } + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/playlist_add" + }, + "width": 23 + }, + "primary": false, + "style": { + "borderLeftWidth": "0px", + "classes": "AdHocTrends/MobileControl AdHocTrends/RightRadiusMobile" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "SaveFileSpacer" + }, + "position": { + "basis": "8px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "struct": { + "admin": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027)", + "databases": "{view.custom.databases}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\treturn value.admin or bool(filter(lambda x: x[\u0027Enabled\u0027], value.databases))", + "type": "script" + } + ], + "type": "expr-struct" + } + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "title": "Load File" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, None, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "LoadFromFile" + }, + "position": { + "basis": "35px" + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/folder_open" + } + }, + "primary": false, + "style": { + "classes": "AdHocTrends/LeftRadiusMobile AdHocTrends/MobileControl" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "custom": { + "title": "Save File" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, None, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "SaveToFile" + }, + "position": { + "basis": "35px" + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/save" + }, + "width": 23 + }, + "primary": false, + "style": { + "borderLeftWidth": "0px", + "classes": "AdHocTrends/MobileControl AdHocTrends/RightRadiusMobile" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "SetRefreshRateSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "custom": { + "title": "Set Real-Time Refresh Rate" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, \u0027root/MobileBottomControls/FooterSmall/SetRefreshRate/RateInput/Rate\u0027, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "SetRefreshRate" + }, + "position": { + "basis": "35px" + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/access_time" + } + }, + "primary": false, + "style": { + "classes": "AdHocTrends/LeftRadiusMobile AdHocTrends/MobileControl" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.togglePause()" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Pause" + }, + "position": { + "basis": "35px" + }, + "propConfig": { + "props.image.icon.color": { + "binding": { + "config": { + "expression": "if({this.props.primary}, \u0027var(--neutral-20)\u0027, \u0027var(--neutral-70)\u0027)" + }, + "type": "expr" + } + }, + "props.primary": { + "binding": { + "config": { + "expression": "{...../PowerChart.props.config.refreshRate} \u003d 0" + }, + "type": "expr" + } + } + }, + "props": { + "image": { + "icon": { + "path": "material/pause_circle_outline" + }, + "width": 23 + }, + "style": { + "borderLeftWidth": "0px", + "classes": "AdHocTrends/MobileControl AdHocTrends/RightRadiusMobile" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "SetTitleSpacer" + }, + "position": { + "basis": "8px" + }, + "type": "ia.display.label" + }, + { + "custom": { + "title": "Set Title" + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tself.view.rootContainer.toggleFunction(self.meta.name, \u0027root/MobileBottomControls/FooterSmall/SetTitle/Title\u0027, self.custom.title)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "SetTitle" + }, + "position": { + "basis": "36px", + "shrink": 0 + }, + "props": { + "image": { + "icon": { + "color": "var(--neutral-70)", + "path": "material/text_fields" + } + }, + "primary": false, + "style": { + "classes": "AdHocTrends/FullRadiusMobile AdHocTrends/MobileControl" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Controls" + }, + "position": { + "basis": "50px", + "shrink": 0 + }, + "props": { + "justify": "center", + "style": { + "classes": "AdHocTrends/MobileControlBar", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FooterSmall" + }, + "props": { + "direction": "column", + "justify": "flex-end", + "style": { + "classes": "AdHocTrends/Header", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "MobileBottomControls" + }, + "position": { + "shrink": 0 + }, + "propConfig": { + "props.breakpoint": { + "binding": { + "config": { + "expression": "{../PowerChart.props.config.responsiveDesignWidth}+2" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "maxHeight": "50px", + "zIndex": 1 + } + }, + "type": "ia.container.breakpt" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "overflow": "visible" + } + }, + "scripts": { + "customMethods": [ + { + "name": "toggleFunction", + "params": [ + "name", + "focusElement", + "title" + ], + "script": "\t# toggle just forwards to the open/close methods based on what\u0027s currently selected\n\t# visibility of each feature is based on the name that is stored in the activeControl property\n\tif self.view.custom.activeControl \u003d\u003d name:\n\t\tself.view.rootContainer.closeFunction()\n\telse:\n\t\tself.view.rootContainer.openFunction(name, focusElement, title)\n\t\t" + }, + { + "name": "closeFunction", + "params": [], + "script": "\tself.view.custom.activeControl \u003d None\n\tself.view.custom.functionTitle \u003d \u0027\u0027" + }, + { + "name": "openFunction", + "params": [ + "name", + "focusElement", + "title" + ], + "script": "\tself.view.custom.activeControl \u003d name\n\tself.view.custom.functionTitle \u003d title\n\t\n\t# special case for auto focusing specific elements when opened\n\t# currently used for title and rate \n\t# a delay was necessary in order to allow the input component to become visible first, before focusing\n\tif focusElement:\n\t\timport threading\n\t\tdef focusWorker():\n\t\t\tself.view.getChild(focusElement).focus()\n\t\tthreading.Timer(0.3, focusWorker).start()" + }, + { + "name": "setTitle", + "params": [ + "title" + ], + "script": "\t# sets or hides the title of the chart\n\t# if you simply set it to empty,\n\t# it still includes some extra whitespace where the title would be\n\tif title:\n\t\tself.view.getChild(\u0027root/PowerChart\u0027).props.title.text \u003d title\n\t\tself.view.getChild(\u0027root/PowerChart\u0027).props.title.visible \u003d True\n\telse:\n\t\tself.view.getChild(\u0027root/PowerChart\u0027).props.title.text \u003d \u0027\u0027\n\t\tself.view.getChild(\u0027root/PowerChart\u0027).props.title.visible \u003d False" + }, + { + "name": "setRate", + "params": [ + "rate" + ], + "script": "\tself.view.getChild(\u0027root/PowerChart\u0027).props.config.refreshRate \u003d rate" + }, + { + "name": "saveToFile", + "params": [ + "includePlots", + "includeDisplay" + ], + "script": "\tconfig \u003d self.view.rootContainer.getConfigJson(includePlots, includeDisplay)\n\tsystem.perspective.download(\u0027chartsettings.json\u0027, config)\n" + }, + { + "name": "loadFromFile", + "params": [ + "configJson", + "includePlots", + "includeDisplay" + ], + "script": "\t# save files are split into two sections -\n\t# the configured plots (pens/axes/plots) and the overall display settings (legends/columns)\n\tif configJson:\n\t\tconfig \u003d system.util.jsonDecode(configJson)\n\t\tconfig \u003d self.view.rootContainer.propertyTreeRestoreDate(config)\n\t\t\n\t\tpowerChart \u003d self.view.getChild(\u0027root/PowerChart\u0027)\n\t\tif includePlots:\n\t\t\tif \u0027config\u0027 in config:\n\t\t\t\tpowerChart.props.config \u003d config[\u0027config\u0027]\n\t\t\t\t\n\t\t\tif \u0027axes\u0027 in config:\n\t\t\t\tpowerChart.props.axes \u003d config[\u0027axes\u0027]\n\t\t\tif \u0027pens\u0027 in config:\n\t\t\t\tpowerChart.props.pens \u003d config[\u0027pens\u0027]\n\t\t\tif \u0027plots\u0027 in config:\n\t\t\t\tpowerChart.props.plots \u003d config[\u0027plots\u0027]\n\t\t\tif \u0027title\u0027 in config:\n\t\t\t\tpowerChart.props.title \u003d config[\u0027title\u0027]\n\t\t\t\n\t\tif includeDisplay:\n\t\t\tif \u0027timeAxis\u0027 in config:\n\t\t\t\tpowerChart.props.timeAxis \u003d config[\u0027timeAxis\u0027]\n\t\t\tif \u0027interaction\u0027 in config:\n\t\t\t\t# range brushes are not currently writable through the property tree\n\t\t\t\tconfig[\u0027interaction\u0027][\u0027rangeBrush\u0027][\u0027values\u0027] \u003d []\n\t\t\t\tpowerChart.props.interaction \u003d config[\u0027interaction\u0027]\n\t\t\tif \u0027dataColumns\u0027 in config:\n\t\t\t\tpowerChart.props.dataColumns \u003d config[\u0027dataColumns\u0027]\n\t\t\tif \u0027legend\u0027 in config:\n\t\t\t\tpowerChart.props.legend \u003d config[\u0027legend\u0027]\n" + }, + { + "name": "togglePause", + "params": [], + "script": "\t# this will store the current refresh rate before setting it to 0 so it can be unpaused later\n\tpowerChart \u003d self.view.getChild(\u0027root/PowerChart\u0027)\n\tif powerChart.props.config.refreshRate \u003d\u003d 0:\n\t\tself.view.rootContainer.setRate(self.view.custom.refreshRate)\n\telse:\n\t\tself.view.custom.refreshRate \u003d powerChart.props.config.refreshRate\n\t\tself.view.rootContainer.setRate(0)" + }, + { + "name": "configureDatabases", + "params": [], + "script": "\t# current functionality allows an admin to toggle the available databases\n\t# the list of databases to enable/disable is store in a property until the admin selects \u0027Save\u0027\n\t# based on that list, this function will attempt to enable/disable each one\n\t# enable means there is a matching configs table and the first row has private\u003d0\n\t# disabled means the first row has private\u003d1, or there is no matching configs table \n\t# for enable: this will check for valid connection, create configs table if necessary, or update the existing matching table with private\u003d0\n\t# for disable: this will check for valid connection, update the existing matching table with private\u003d1\n\t# after doing this, we send out a message to open sessions to update their db listing, so they don\u0027t have to manually refresh anything\n\t\n\tlogger \u003d system.util.getLogger(\u0027Ad Hoc Trends\u0027)\n\tfor dbName in self.view.custom.configureDatabases:\n\t\tdbInfo \u003d next((d for d in self.view.custom.databases if d.Name \u003d\u003d dbName), False)\n\t\tif not dbInfo:\n\t\t\tlogger.error(\u0027Unable to create configuration table for database \"%s\" because it was not found in database list (view.custom.databases).\u0027 %dbName)\n\t\t\tcontinue\n\t\t\n\t\tif dbInfo[\u0027Status\u0027] !\u003d \"Valid\":\n\t\t\tlogger.error(\u0027Unable to create configuration table for database \"%s\" because database does not have a valid connection.\u0027 %dbName)\n\t\t\tcontinue\n\t\t\n\t\tdbType \u003d dbInfo[\u0027DBType\u0027]\n\t\tdbEnable \u003d self.view.custom.configureDatabases[dbName]\n\t\t\n\t\ttableExistsQuery \u003d self.view.rootContainer.getTableExistsQuery(dbType)\n\t\ttableFormatMatchesQuery \u003d self.view.rootContainer.getTableFormatMatchesQuery(dbType)\n\t\tcreateTableQuery \u003d self.view.rootContainer.getCreateTableQuery(dbType)\n\t\tmakeDatabasePrivateQuery \u003d self.view.rootContainer.getMakeDatabasePrivateQuery(dbType)\n\t\t\n\t\tif not tableExistsQuery or not tableFormatMatchesQuery or not createTableQuery or not makeDatabasePrivateQuery:\n\t\t\tlogger.error(\u0027Unable to create configuration table for database \"%s\" because it is an unknown database type \"%s\".\u0027 %(dbName, dbType))\n\t\t\tcontinue\n\t\t\n\t\ttableExists \u003d system.db.runScalarPrepQuery(tableExistsQuery, None, dbName)\n\t\t\n\t\tif dbEnable:\n\t\t\tif tableExists:\n\t\t\t\ttableFormatMatches \u003d system.db.runScalarPrepQuery(tableFormatMatchesQuery, None, dbName)\n\t\t\t\tif tableFormatMatches:\n\t\t\t\t\tsystem.db.runPrepUpdate(makeDatabasePrivateQuery, [False, False], dbName)\n\t\t\t\t\tlogger.info(\u0027Enabled database \"%s\"\u0027 %dbName)\n\t\t\t\telse:\n\t\t\t\t\tlogger.error(\u0027Unable to create configuration table for database \"%s\" because configuration table but does not match expected format [id,user,public,config, config_name,timestamp].\u0027 %dbName)\n\t\t\telse:\n\t\t\t\tsystem.db.runPrepUpdate(createTableQuery, None, dbName)\n\t\t\t\tlogger.info(\u0027Created configuration table for database \"%s\"\u0027 %dbName)\n\t\t\t\tsystem.db.runPrepUpdate(makeDatabasePrivateQuery, [False, False], dbName)\n\t\t\t\tlogger.info(\u0027Enabled database \"%s\"\u0027 %dbName)\n\t\telse:\n\t\t\tif tableExists:\n\t\t\t\ttableFormatMatches \u003d system.db.runScalarPrepQuery(tableFormatMatchesQuery, None, dbName)\n\t\t\t\tif tableFormatMatches:\n\t\t\t\t\tsystem.db.runPrepUpdate(makeDatabasePrivateQuery, [True, True], dbName)\n\t\t\t\t\tlogger.info(\u0027Disabled database \"%s\"\u0027 %dbName)\n\t\t\t\telse:\n\t\t\t\t\tlogger.error(\u0027Unable to create configuration table for database \"%s\" because configuration table but does not match expected format [id,user,public,config, config_name,timestamp].\u0027 %dbName)\n\t\t\telse:\n\t\t\t\t# ad hoc trends config table does not exist, so there is no change needed\n\t\t\t\tpass\n\n\tfor session in filter(lambda x: x.sessionScope !\u003d \u0027designer\u0027, system.perspective.getSessionInfo()):\n\t\tsystem.perspective.sendMessage(\u0027ad_hoc_trends_databaseReconfigured\u0027, {}, \u0027session\u0027, session.id)" + }, + { + "name": "databaseEnabled", + "params": [ + "dbName" + ], + "script": "\t# enable means there is a matching configs table and the first row has private\u003d0\n\tlogger \u003d system.util.getLogger(\u0027Ad Hoc Trends\u0027)\n\tdbInfo \u003d system.db.getConnectionInfo(dbName)\n\tif not dbInfo:\n\t\tlogger.error(\u0027Unable to check if database \"%s\" is enabled because it was not found in database connection list (system.db.getConnectionInfo).\u0027 %dbName)\n\t\treturn False\n\n\tdbType \u003d dbInfo.getValueAt(0, \u0027DBType\u0027)\n\t\n\ttableExistsQuery \u003d self.view.rootContainer.getTableExistsQuery(dbType)\n\ttableFormatMatchesQuery \u003d self.view.rootContainer.getTableFormatMatchesQuery(dbType)\n\tdatabaseEnabledQuery \u003d self.view.rootContainer.getDatabaseEnabledQuery(dbType)\n\t\n\tif not tableExistsQuery or not tableFormatMatchesQuery or not databaseEnabledQuery:\n\t\tlogger.debug(\u0027Unable to check if database \"%s\" is enabled because it is an unknown database type \"%s\".\u0027 %(dbName, dbType))\n\t\treturn False\n\n\treturn bool(system.db.runScalarPrepQuery(tableExistsQuery, None, dbName)) and \\\n\t\tbool(system.db.runScalarPrepQuery(tableFormatMatchesQuery, None, dbName)) and \\\n\t\tbool(system.db.runScalarPrepQuery(databaseEnabledQuery, None, dbName))" + }, + { + "name": "getCharts", + "params": [ + "dbName" + ], + "script": "\t# get any chart created by this user or any chart made available publicly (null user or private\u003d0)\n\tif not dbName:\n\t\treturn system.dataset.toPyDataSet(system.dataset.toDataSet([\u0027id\u0027, \u0027username\u0027, \u0027config_name\u0027, \u0027private\u0027, \u0027config\u0027, \u0027t_stamp\u0027], []))\n\t\n\tlogger \u003d system.util.getLogger(\u0027Ad Hoc Trends\u0027)\n\tdbInfo \u003d next((d for d in self.view.custom.databases if d.Name \u003d\u003d dbName), False)\n\tif not dbInfo:\n\t\tlogger.error(\u0027Unable to load charts of database \"%s\" because it was not found in database list (view.custom.databases).\u0027 %dbName)\n\t\treturn\n\n\tdbType \u003d dbInfo[\u0027DBType\u0027]\n\t\n\tavailableChartsQuery \u003d self.view.rootContainer.getAvailableChartsQuery(dbType)\n\t\n\tif not availableChartsQuery:\n\t\tlogger.debug(\u0027Unable to load charts of database \"%s\" because it is an unknown database type \"%s\".\u0027 %(dbName, dbType))\n\t\treturn system.dataset.toPyDataSet(system.dataset.toDataSet([\u0027id\u0027, \u0027username\u0027, \u0027config_name\u0027, \u0027private\u0027, \u0027config\u0027, \u0027t_stamp\u0027], []))\n\t\n\treturn system.db.runPrepQuery(availableChartsQuery, [self.session.props.auth.user.userName], dbName)\n" + }, + { + "name": "getOwnCharts", + "params": [ + "dbName" + ], + "script": "\t# only returns the list of charts created by this user, or ones created globally (null user)\n\t# used for the saving feature, so that you don\u0027t edit someone else\u0027s charts\n\tif not dbName:\n\t\treturn system.dataset.toPyDataSet(system.dataset.toDataSet([\u0027id\u0027, \u0027username\u0027, \u0027config_name\u0027, \u0027private\u0027, \u0027config\u0027, \u0027t_stamp\u0027], []))\n\t\n\tlogger \u003d system.util.getLogger(\u0027Ad Hoc Trends\u0027)\n\tdbInfo \u003d next((d for d in self.view.custom.databases if d.Name \u003d\u003d dbName), False)\n\tif not dbInfo:\n\t\tlogger.error(\u0027Unable to load charts of database \"%s\" because it was not found in database list (view.custom.databases).\u0027 %dbName)\n\t\treturn\n\n\tdbType \u003d dbInfo[\u0027DBType\u0027]\n\t\n\townChartsQuery \u003d self.view.rootContainer.getOwnChartsQuery(dbType)\n\t\n\tif not ownChartsQuery:\n\t\tlogger.debug(\u0027Unable to load charts of database \"%s\" because it is an unknown database type \"%s\".\u0027 %(dbName, dbType))\n\t\treturn system.dataset.toPyDataSet(system.dataset.toDataSet([\u0027id\u0027, \u0027username\u0027, \u0027config_name\u0027, \u0027private\u0027, \u0027config\u0027, \u0027t_stamp\u0027], []))\n\t\n\treturn system.db.runPrepQuery(ownChartsQuery, [self.session.props.auth.user.userName], dbName)\n" + }, + { + "name": "loadFromDb", + "params": [ + "dbName", + "configId", + "includePlots", + "includeDisplay" + ], + "script": "\tif not dbName or not configId:\n\t\treturn\n\t\n\tlogger \u003d system.util.getLogger(\u0027Ad Hoc Trends\u0027)\n\tdbInfo \u003d next((d for d in self.view.custom.databases if d.Name \u003d\u003d dbName), False)\n\tif not dbInfo:\n\t\tlogger.error(\u0027Unable to load chart configuration from database \"%s\" because it was not found in database list (view.custom.databases).\u0027 %dbName)\n\t\treturn\n\n\tdbType \u003d dbInfo[\u0027DBType\u0027]\n\t\n\tchartConfigQuery \u003d self.view.rootContainer.getChartConfigQuery(dbType)\n\tif not chartConfigQuery:\n\t\tlogger.debug(\u0027Unable to load chart configuration from database \"%s\" because it is an unknown database type \"%s\".\u0027 %(dbName, dbType))\n\t\treturn\n\t\n\tself.view.rootContainer.loadFromFile(system.db.runScalarPrepQuery(chartConfigQuery, [configId], dbName), includePlots, includeDisplay)\n\t\n\t\n\t\n\t" + }, + { + "name": "saveToDb", + "params": [ + "dbName", + "configId", + "includePlots", + "includeDisplay", + "private" + ], + "script": "\tif not dbName or not configId:\n\t\treturn\n\t\n\tlogger \u003d system.util.getLogger(\u0027Ad Hoc Trends\u0027)\n\t\n\tconfigJson \u003d self.view.rootContainer.getConfigJson(includePlots, includeDisplay)\n\tusername \u003d self.session.props.auth.user.userName\n\tdbInfo \u003d next((d for d in self.view.custom.databases if d.Name \u003d\u003d dbName), False)\n\tif not dbInfo:\n\t\tlogger.error(\u0027Unable to save chart configuration to database \"%s\" because it was not found in database list (view.custom.databases).\u0027 %dbName)\n\t\treturn\n\n\tdbType \u003d dbInfo[\u0027DBType\u0027]\n\t\n\t\n\t# if the user creates a new chart, then the config id will be a string\n\t# otherwise it will be a number, representing the existing row to update\n\tif isinstance(configId, unicode):\n\t\tinsertChartConfigQuery \u003d self.view.rootContainer.getInsertChartConfigQuery(dbType)\n\t\tif not insertChartConfigQuery:\n\t\t\tlogger.debug(\u0027Unable to save chart configuration to database \"%s\" because it is an unknown database type \"%s\".\u0027 %(dbName, dbType))\n\t\t\treturn\n\t\t\t\n\t\tsystem.db.runPrepUpdate(insertChartConfigQuery, [configJson, configId, private, username], dbName)\n\t\tlogger.debug(\u0027Saved new chart configuration to database \"%s\"\u0027 %dbName)\n\telse:\n\t\tupdateChartConfigQuery \u003d self.view.rootContainer.getUpdateChartConfigQuery(dbType)\n\t\tif not updateChartConfigQuery:\n\t\t\tlogger.debug(\u0027Unable to save chart configuration to database \"%s\" because it is an unknown database type \"%s\".\u0027 %(dbName, dbType))\n\t\t\treturn\n\t\t\t\n\t\tsystem.db.runPrepUpdate(updateChartConfigQuery, [configJson, username, private, configId], dbName)\n\t\tlogger.debug(\u0027Updated chart configuration in database \"%s\"\u0027 %dbName)\n\t\n\t" + }, + { + "name": "getConfigJson", + "params": [ + "includePlots", + "includeDisplay" + ], + "script": "\tconfig \u003d {}\n\tpowerChart \u003d self.view.getChild(\u0027root/PowerChart\u0027)\n\n\t# added a deepcopy utility that includes an option to convert Date to Instant format string\n\n\tif includePlots:\n\t\tconfig[\u0027config\u0027] \u003d self.view.rootContainer.propertyDeepcopy(powerChart.props.config, True)\n\t\tconfig[\u0027axes\u0027] \u003d self.view.rootContainer.propertyDeepcopy(powerChart.props.axes, True)\n\t\tconfig[\u0027pens\u0027] \u003d self.view.rootContainer.propertyDeepcopy(powerChart.props.pens, True)\n\t\tconfig[\u0027plots\u0027] \u003d self.view.rootContainer.propertyDeepcopy(powerChart.props.plots, True)\n\t\tconfig[\u0027title\u0027] \u003d self.view.rootContainer.propertyDeepcopy(powerChart.props.title, True)\n\t\t\n\tif includeDisplay:\n\t\tconfig[\u0027timeAxis\u0027] \u003d self.view.rootContainer.propertyDeepcopy(powerChart.props.timeAxis, True)\n\n\t\tconfig[\u0027interaction\u0027] \u003d self.view.rootContainer.propertyDeepcopy(powerChart.props.interaction, True)\n\t\t\n\t\tconfig[\u0027dataColumns\u0027] \u003d self.view.rootContainer.propertyDeepcopy(powerChart.props.dataColumns, True)\n\t\tconfig[\u0027legend\u0027] \u003d self.view.rootContainer.propertyDeepcopy(powerChart.props.legend, True)\n\t\n\t# this method easily converts the perspective property trees into json\n\t# using str() of the property itself can include various parts that are not json compatible\n\tif config:\n\t\tfrom com.inductiveautomation.ignition.common import TypeUtilities\n\t\treturn str(TypeUtilities.pyToGson(config))\n\treturn \u0027{}\u0027" + }, + { + "name": "getTableExistsQuery", + "params": [ + "dbType" + ], + "script": "\tif dbType \u003d\u003d \u0027POSTGRES\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT EXISTS(\n\t\t\tSELECT\n\t\t\t\t*\n\t\t\tFROM\n\t\t\t\tinformation_schema.tables\n\t\t\tWHERE\n\t\t\t\ttable_schema NOT IN (\u0027information_schema\u0027, \u0027pg_catalog\u0027) AND\n\t\t\t\ttable_type \u003d \u0027BASE TABLE\u0027 AND\n\t\t\t\ttable_name \u003d \u0027ad_hoc_trends_config\u0027)\u0027\u0027\u0027\n\telif dbType \u003d\u003d \u0027SQLITE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT EXISTS(\n\t\t\tSELECT\n\t\t\t\t*\n\t\t\tFROM\n\t\t\t\tsqlite_master\n\t\t\tWHERE\n\t\t\t\ttype\u003d\u0027table\u0027 AND\n\t\t\t\tname\u003d\u0027ad_hoc_trends_config\u0027)\u0027\u0027\u0027\n\telif dbType \u003d\u003d \u0027MYSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT EXISTS(\n\t\t\tSELECT\n\t\t\t\t*\n\t\t\tFROM\n\t\t\t\tinformation_schema.tables\n\t\t\tWHERE\n\t\t\t\ttable_name \u003d \u0027ad_hoc_trends_config\u0027)\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027MSSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tCASE WHEN EXISTS \n\t\t\t(\n\t\t\t\tSELECT * \n\t\t\t\tFROM INFORMATION_SCHEMA.TABLES\n\t\t\t\tWHERE TABLE_TYPE \u003d \u0027BASE TABLE\u0027\n\t\t\t\tAND TABLE_NAME \u003d \u0027ad_hoc_trends_config\u0027\n\t\t\t)\n\t\t\t\tTHEN 1\n\t\t\t\tELSE 0\n\t\t\tEND\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027ORACLE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tcount(*)\n\t\tFROM\n\t\t\tdba_tables\n\t\tWHERE\n\t\t\ttable_name \u003d \u0027AD_HOC_TRENDS_CONFIG\u0027\n\t\t\u0027\u0027\u0027\n\t\n\treturn \u0027\u0027" + }, + { + "name": "getDatabaseEnabledQuery", + "params": [ + "dbType" + ], + "script": "\tif dbType \u003d\u003d \u0027POSTGRES\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tprivate \u003d false\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\tid \u003d 0\u0027\u0027\u0027\n\telif dbType \u003d\u003d \u0027SQLITE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tprivate \u003d false\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\tid \u003d 0\u0027\u0027\u0027\n\telif dbType \u003d\u003d \u0027MYSQL\u0027:\n\t\t# by deafult, MySQL will auto increment when you try to set an auto increment column to 0 on INSERT.\n\t\t# using -1 here instead\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tprivate \u003d false\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\tid \u003d -1\u0027\u0027\u0027\n\t\t\t\n\telif dbType \u003d\u003d \u0027MSSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tCASE WHEN private \u003d \u0027FALSE\u0027\n\t\t\t\tTHEN 1\n\t\t\t\tELSE 0\n\t\t\tEND\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\tid \u003d 0\u0027\u0027\u0027\n\t\t\t\n\telif dbType \u003d\u003d \u0027ORACLE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tCASE WHEN private \u003d 0\n\t\t\t\tTHEN 1\n\t\t\t\tELSE 0\n\t\t\tEND\n\t\tFROM\n\t\t\tAD_HOC_TRENDS_CONFIG\n\t\tWHERE\n\t\t\tid \u003d 0\u0027\u0027\u0027\n\t\n\treturn \u0027\u0027" + }, + { + "name": "getTableFormatMatchesQuery", + "params": [ + "dbType" + ], + "script": "\tif dbType \u003d\u003d \u0027POSTGRES\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tcount(*) \u003d 6\n\t\tFROM\n\t\t\tinformation_schema.columns\n\t\tWHERE\n\t\t\ttable_name \u003d \u0027ad_hoc_trends_config\u0027 AND\n\t\t\tcolumn_name IN (\u0027id\u0027,\u0027username\u0027,\u0027config_name\u0027,\u0027private\u0027,\u0027config\u0027,\u0027t_stamp\u0027)\u0027\u0027\u0027\n\t\t\n\telif dbType \u003d\u003d \u0027SQLITE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tcount(*) \u003d 6\n\t\tFROM\n\t\t\tpragma_table_info(\u0027ad_hoc_trends_config\u0027)\n\t\tWHERE\n\t\t\tname IN (\u0027id\u0027,\u0027username\u0027,\u0027config_name\u0027,\u0027private\u0027,\u0027config\u0027,\u0027t_stamp\u0027)\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027MYSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tcount(*) \u003d 6\n\t\tFROM\n\t\t\tinformation_schema.columns\n\t\tWHERE\n\t\t\ttable_name \u003d \u0027ad_hoc_trends_config\u0027 AND\n\t\t\tcolumn_name IN (\u0027id\u0027,\u0027username\u0027,\u0027config_name\u0027,\u0027private\u0027,\u0027config\u0027,\u0027t_stamp\u0027)\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027MSSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tCASE WHEN COUNT(*) \u003d 6\n\t\t\t\tTHEN 1\n\t\t\t\tELSE 0\n\t\t\tEND\n\t\tFROM\n\t\t\tinformation_schema.columns\n\t\tWHERE\n\t\t\tTABLE_NAME \u003d \u0027ad_hoc_trends_config\u0027 AND\n\t\t\tCOLUMN_NAME IN (\u0027id\u0027,\u0027username\u0027,\u0027config_name\u0027,\u0027private\u0027,\u0027config\u0027,\u0027t_stamp\u0027)\u0027\u0027\u0027\n\t\t\n\telif dbType \u003d\u003d \u0027ORACLE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tCASE WHEN COUNT(*) \u003d 6\n\t\t\t\tTHEN 1\n\t\t\t\tELSE 0\n\t\t\tEND\n\t\tFROM\n\t\t\tall_tab_cols\n\t\tWHERE\n\t\t\tTABLE_NAME \u003d \u0027AD_HOC_TRENDS_CONFIG\u0027 AND\n\t\t\tCOLUMN_NAME IN (\u0027ID\u0027,\u0027USERNAME\u0027,\u0027CONFIG_NAME\u0027,\u0027PRIVATE\u0027,\u0027CONFIG\u0027,\u0027T_STAMP\u0027)\u0027\u0027\u0027\n\t\n\treturn \u0027\u0027" + }, + { + "name": "getCreateTableQuery", + "params": [ + "dbType" + ], + "script": "\tif dbType \u003d\u003d \u0027POSTGRES\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tCREATE TABLE ad_hoc_trends_config(\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\tusername text,\n\t\t\tconfig_name text,\n\t\t\tprivate boolean,\n\t\t\tconfig text,\n\t\t\tt_stamp timestamp DEFAULT CURRENT_TIMESTAMP,\n\t\t\tCONSTRAINT name UNIQUE(username, config_name)\n\t\t)\u0027\u0027\u0027\n\t\t\n\telif dbType \u003d\u003d \u0027SQLITE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tCREATE TABLE ad_hoc_trends_config(\n\t\t\tid INTEGER PRIMARY KEY,\n\t\t\tusername TEXT,\n\t\t\tconfig_name TEXT,\n\t\t\tprivate INTEGER,\n\t\t\tconfig TEXT,\n\t\t\tt_stamp TEXT DEFAULT CURRENT_TIMESTAMP,\n\t\t\tUNIQUE(username, config_name)\n\t\t)\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027MYSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tCREATE TABLE ad_hoc_trends_config(\n\t\t\tid INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,\n\t\t\tusername VARCHAR(255),\n\t\t\tconfig_name VARCHAR(255),\n\t\t\tprivate BOOLEAN,\n\t\t\tconfig TEXT,\n\t\t\tt_stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n\t\t\tCONSTRAINT name UNIQUE(username, config_name)\n\t\t)\u0027\u0027\u0027\n\t\t\n\telif dbType \u003d\u003d \u0027MSSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tCREATE TABLE ad_hoc_trends_config(\n\t\t\tid INT NOT NULL PRIMARY KEY IDENTITY(1, 1),\n\t\t\tusername VARCHAR(255),\n\t\t\tconfig_name VARCHAR(255),\n\t\t\tprivate BIT,\n\t\t\tconfig TEXT,\n\t\t\tt_stamp DATETIME DEFAULT CURRENT_TIMESTAMP,\n\t\t\tCONSTRAINT name UNIQUE(username, config_name)\n\t\t)\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027ORACLE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tCREATE TABLE ad_hoc_trends_config(\n\t\t\tid NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY,\n\t\t username VARCHAR(255),\n\t\t config_name VARCHAR(255),\n\t\t private NUMBER,\n\t\t config NCLOB,\n\t\t t_stamp DATE DEFAULT CURRENT_TIMESTAMP,\n\t\t CONSTRAINT name UNIQUE(username, config_name)\n\t\t)\u0027\u0027\u0027\n\t\n\treturn \u0027\u0027" + }, + { + "name": "getMakeDatabasePrivateQuery", + "params": [ + "dbType" + ], + "script": "\tif dbType \u003d\u003d \u0027POSTGRES\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tINSERT INTO ad_hoc_trends_config\n\t\t\t(id, config, config_name, private, username)\n\t\tVALUES\n\t\t\t(0, null, null, ?, null) \n\t\tON CONFLICT (id) \n\t\tDO UPDATE\n\t\t\tSET\n\t\t\t\tprivate \u003d ?\n\t\t\tWHERE\n\t\t\t\tad_hoc_trends_config.id \u003d 0\n\t\t\u0027\u0027\u0027\n\t\t\n\telif dbType \u003d\u003d \u0027SQLITE\u0027:\n\t\t# using ? AND ? here to use up to arguments, matching the other SQL queries\n\t\treturn \u0027\u0027\u0027\n\t\tINSERT OR REPLACE INTO ad_hoc_trends_config\n\t\t\t(id, config, config_name, private, username)\n\t\tVALUES\n\t\t\t(0, null, null, ? AND ?, null)\n\t\t\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027MYSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tINSERT INTO ad_hoc_trends_config\n\t\t\t\t\t(id, config, config_name, private, username)\n\t\t\t\tVALUES\n\t\t\t\t\t(-1, null, null, ?, null) \n\t\t\t\tON DUPLICATE KEY UPDATE\n\t\t\t\t\tprivate \u003d ?\n\t\t\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027MSSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tBEGIN TRAN\n\t\t\tUPDATE ad_hoc_trends_config\n\t\t\tWITH (SERIALIZABLE)\n\t\t\tSET private \u003d ?\n\t\t\tWHERE id \u003d 0\n\t\t\t\n\t\t\tIF @@rowcount \u003d 0\n\t\t\tBEGIN\n\t\t\t\tSET IDENTITY_INSERT ad_hoc_trends_config ON\n\t\t\t\tINSERT INTO ad_hoc_trends_config\n\t\t\t\t(id, config, config_name, private, username)\n\t\t\t\tVALUES\n\t\t\t\t(0, null, null, ?, null)\n\t\t\t\tSET IDENTITY_INSERT ad_hoc_trends_config OFF\n\t\t\tEND\n\t\tCOMMIT TRAN\n\t\t\u0027\u0027\u0027\n\t\t\n\telif dbType \u003d\u003d \u0027ORACLE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tMERGE INTO AD_HOC_TRENDS_CONFIG a\n\t\t\tUSING (SELECT 0 AS ID FROM DUAL d) d\n\t\t\tON (a.ID \u003d d.ID)\n\t\t\tWHEN MATCHED THEN UPDATE SET a.PRIVATE \u003d ?\n\t\t\tWHEN NOT MATCHED THEN INSERT (ID, CONFIG, CONFIG_NAME, PRIVATE, USERNAME) VALUES (0, null, null, ?, null)\n\t\t\u0027\u0027\u0027\n\t\t\n\treturn \u0027\u0027" + }, + { + "name": "getAvailableChartsQuery", + "params": [ + "dbType" + ], + "script": "\tif dbType \u003d\u003d \u0027POSTGRES\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tid,\n\t\t\tusername,\n\t\t\tconfig_name\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\t((username IS NULL) OR \n\t\t\t(private \u003d FALSE) OR \n\t\t\t(username \u003d ?)) AND\n\t\t\tid \u003e 0\u0027\u0027\u0027\n\n\telif dbType \u003d\u003d \u0027SQLITE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tid,\n\t\t\tusername,\n\t\t\tconfig_name\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\t((username IS NULL) OR \n\t\t\t(private \u003d FALSE) OR \n\t\t\t(username \u003d ?)) AND\n\t\t\tid \u003e 0\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027MYSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tid,\n\t\t\tusername,\n\t\t\tconfig_name\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\t((username IS NULL) OR \n\t\t\t(private \u003d FALSE) OR \n\t\t\t(username \u003d ?)) AND\n\t\t\tid \u003e 0\u0027\u0027\u0027\n\t\t\t\n\telif dbType \u003d\u003d \u0027MSSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tid,\n\t\t\tusername,\n\t\t\tconfig_name\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\t((username IS NULL) OR \n\t\t\t(private \u003d \u0027FALSE\u0027) OR \n\t\t\t(username \u003d ?)) AND\n\t\t\tid \u003e 0\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027ORACLE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tid as \"id\",\n\t\t\tusername as \"username\",\n\t\t\tconfig_name as \"config_name\"\n\t\tFROM\n\t\t\tAD_HOC_TRENDS_CONFIG\n\t\tWHERE\n\t\t\t((USERNAME IS NULL) OR \n\t\t\t(PRIVATE \u003d 0) OR \n\t\t\t(USERNAME \u003d ?)) AND\n\t\t\tID \u003e 0\u0027\u0027\u0027\n\n\t\n\treturn \u0027\u0027" + }, + { + "name": "getOwnChartsQuery", + "params": [ + "dbType" + ], + "script": "\tif dbType \u003d\u003d \u0027POSTGRES\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tid,\n\t\t\tusername,\n\t\t\tconfig_name\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\t((username IS NULL) OR\n\t\t\t(username \u003d ?)) AND\n\t\t\tid \u003e 0\u0027\u0027\u0027\n\n\telif dbType \u003d\u003d \u0027SQLITE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tid,\n\t\t\tusername,\n\t\t\tconfig_name\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\t((username IS NULL) OR\n\t\t\t(username \u003d ?)) AND\n\t\t\tid \u003e 0\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027MYSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tid,\n\t\t\tusername,\n\t\t\tconfig_name\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\t((username IS NULL) OR\n\t\t\t(username \u003d ?)) AND\n\t\t\tid \u003e 0\u0027\u0027\u0027\n\t\t\t\n\telif dbType \u003d\u003d \u0027MSSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tid,\n\t\t\tusername,\n\t\t\tconfig_name\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\t((username IS NULL) OR\n\t\t\t(username \u003d ?)) AND\n\t\t\tid \u003e 0\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027ORACLE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tid as \"id\",\n\t\t\tusername as \"username\",\n\t\t\tconfig_name as \"config_name\"\n\t\tFROM\n\t\t\tAD_HOC_TRENDS_CONFIG\n\t\tWHERE\n\t\t\t((username IS NULL) OR\n\t\t\t(username \u003d ?)) AND\n\t\t\tid \u003e 0\u0027\u0027\u0027\n\t\n\treturn \u0027\u0027" + }, + { + "name": "getChartConfigQuery", + "params": [ + "dbType" + ], + "script": "\tif dbType \u003d\u003d \u0027POSTGRES\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tconfig\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\tid \u003d ?\u0027\u0027\u0027\n\n\telif dbType \u003d\u003d \u0027SQLITE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tconfig\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\tid \u003d ?\u0027\u0027\u0027\n\t\t\t\n\telif dbType \u003d\u003d \u0027MYSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tconfig\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\tid \u003d ?\u0027\u0027\u0027\n\t\t\t\n\telif dbType \u003d\u003d \u0027MSSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tconfig\n\t\tFROM\n\t\t\tad_hoc_trends_config\n\t\tWHERE\n\t\t\tid \u003d ?\u0027\u0027\u0027\n\t\t\t\n\telif dbType \u003d\u003d \u0027ORACLE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tSELECT\n\t\t\tconfig as \"config\"\n\t\tFROM\n\t\t\tAD_HOC_TRENDS_CONFIG\n\t\tWHERE\n\t\t\tid \u003d ?\u0027\u0027\u0027\n\t\n\treturn \u0027\u0027" + }, + { + "name": "getInsertChartConfigQuery", + "params": [ + "dbType" + ], + "script": "\tif dbType \u003d\u003d \u0027POSTGRES\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tINSERT INTO\n\t\t\tad_hoc_trends_config\n\t\t\t(config, config_name, private, username)\n\t\tVALUES\n\t\t\t(?, ?, ?, ?)\u0027\u0027\u0027\n\n\telif dbType \u003d\u003d \u0027SQLITE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tINSERT INTO\n\t\t\tad_hoc_trends_config\n\t\t\t(config, config_name, private, username)\n\t\tVALUES\n\t\t\t(?, ?, ?, ?)\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027MYSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tINSERT INTO\n\t\t\tad_hoc_trends_config\n\t\t\t(config, config_name, private, username)\n\t\tVALUES\n\t\t\t(?, ?, ?, ?)\u0027\u0027\u0027\n\t\t\n\telif dbType \u003d\u003d \u0027MSSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tINSERT INTO\n\t\t\tad_hoc_trends_config\n\t\t\t(config, config_name, private, username)\n\t\tVALUES\n\t\t\t(?, ?, ?, ?)\u0027\u0027\u0027\n\t\t\t\n\telif dbType \u003d\u003d \u0027ORACLE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tINSERT INTO\n\t\t\tAD_HOC_TRENDS_CONFIG\n\t\t\t(config, config_name, private, username)\n\t\tVALUES\n\t\t\t(?, ?, ?, ?)\u0027\u0027\u0027\n\t\n\treturn \u0027\u0027" + }, + { + "name": "getUpdateChartConfigQuery", + "params": [ + "dbType" + ], + "script": "\tif dbType \u003d\u003d \u0027POSTGRES\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tUPDATE\n\t\t\tad_hoc_trends_config\n\t\tSET\n\t\t\tconfig \u003d ?,\n\t\t\tprivate \u003d CASE\n\t\t\t\tWHEN username \u003d ? THEN ?\n\t\t\t\tELSE private\n\t\t\tEND\n\t\tWHERE\n\t\t\tid \u003d ?\u0027\u0027\u0027\n\n\telif dbType \u003d\u003d \u0027SQLITE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tUPDATE\n\t\t\tad_hoc_trends_config\n\t\tSET\n\t\t\tconfig \u003d ?,\n\t\t\tprivate \u003d CASE\n\t\t\t\tWHEN username \u003d ? THEN ?\n\t\t\t\tELSE private\n\t\t\tEND\n\t\tWHERE\n\t\t\tid \u003d ?\u0027\u0027\u0027\n\t\t\t\n\telif dbType \u003d\u003d \u0027MYSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tUPDATE\n\t\t\tad_hoc_trends_config\n\t\tSET\n\t\t\tconfig \u003d ?,\n\t\t\tprivate \u003d CASE\n\t\t\t\tWHEN username \u003d ? THEN ?\n\t\t\t\tELSE private\n\t\t\tEND\n\t\tWHERE\n\t\t\tid \u003d ?\u0027\u0027\u0027\n\t\n\telif dbType \u003d\u003d \u0027MSSQL\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tUPDATE\n\t\t\tad_hoc_trends_config\n\t\tSET\n\t\t\tconfig \u003d ?,\n\t\t\tprivate \u003d CASE\n\t\t\t\tWHEN username \u003d ? THEN ?\n\t\t\t\tELSE private\n\t\t\tEND\n\t\tWHERE\n\t\t\tid \u003d ?\u0027\u0027\u0027\n\t\t\t\n\telif dbType \u003d\u003d \u0027ORACLE\u0027:\n\t\treturn \u0027\u0027\u0027\n\t\tUPDATE\n\t\t\tAD_HOC_TRENDS_CONFIG\n\t\tSET\n\t\t\tconfig \u003d ?,\n\t\t\tprivate \u003d CASE\n\t\t\t\tWHEN username \u003d ? THEN ?\n\t\t\t\tELSE private\n\t\t\tEND\n\t\tWHERE\n\t\t\tid \u003d ?\u0027\u0027\u0027\n\t\n\treturn \u0027\u0027" + }, + { + "name": "dateToInstant", + "params": [ + "date" + ], + "script": "\t# using this to convert Date props into string format that can be stored and easily turned back into Date\n\t# using the type ultility converter to string alone does not work well enough as no timezone is included\n\n\treturn str(date.toInstant())" + }, + { + "name": "dateFromInstant", + "params": [ + "instant" + ], + "script": "\t# using this to convert a string in Instant form back to java.util.Date for certain props\n\tfrom java.util import Date\n\tfrom java.time import Instant\n\tif isinstance(instant, basestring):\n\t\treturn Date.from(Instant.parse(instant))\n\treturn Date.from(instant)" + }, + { + "name": "propertyDeepcopy", + "params": [ + "property", + "convertDates\u003dFalse" + ], + "script": "\t# utility for copying the values from a perspective prop tree\n\t# deepcopy() does not appear to work directly on the prop tree wrapper type\n\t# also converting Date object to Instant format string\n\t\n\timport collections\n\tfrom java.util import Date\n\t\n\tdef copyProperties(node):\n\t\t# perspective arrays and python lists (but not strings)\n\t\tif \u0027PropertyTreeScriptWrapper$ArrayWrapper\u0027 in str(type(node)) or \\\n\t\t(isinstance(node, collections.Sequence) and not isinstance(node, basestring)):\n\t\t\tnodeCopy \u003d []\n\t\t\tfor i in node:\n\t\t\t\tnodeCopy.append(copyProperties(i))\n\t\t\treturn nodeCopy\n\t\t# perspective objects and python dictionaries\n\t\telif \u0027PropertyTreeScriptWrapper$ObjectWrapper\u0027 in str(type(node)) or isinstance(node, collections.Mapping):\n\t\t\tnodeCopy \u003d {}\n\t\t\tfor k in node:\n\t\t\t\tnodeCopy[k] \u003d copyProperties(node[k])\n\t\t\treturn nodeCopy\n\t\t# single value, with optional date conversion\n\t\telse:\n\t\t\tif convertDates and isinstance(node, Date):\n\t\t\t\treturn self.view.rootContainer.dateToInstant(node)\n\t\t\treturn node\n\t\t\t\n\treturn copyProperties(property)" + }, + { + "name": "propertyTreeRestoreDate", + "params": [ + "propertyTree" + ], + "script": "\t# creates a new copy of the given property tree, replacing Instant formatted strings with java.util.Date\n\timport collections\n\t\n\tdef convertProperties(node):\n\t\t# perspective arrays and python lists (but not strings)\n\t\tif \u0027PropertyTreeScriptWrapper$ArrayWrapper\u0027 in str(type(node)) or \\\n\t\t(isinstance(node, collections.Sequence) and not isinstance(node, basestring)):\n\t\t\tnodeCopy \u003d []\n\t\t\tfor i in node:\n\t\t\t\tnodeCopy.append(convertProperties(i))\n\t\t\treturn nodeCopy\n\t\t# perspective objects and python dictionaries\n\t\telif \u0027PropertyTreeScriptWrapper$ObjectWrapper\u0027 in str(type(node)) or isinstance(node, collections.Mapping):\n\t\t\tnodeCopy \u003d {}\n\t\t\tfor k in node:\n\t\t\t\tnodeCopy[k] \u003d convertProperties(node[k])\n\t\t\treturn nodeCopy\n\t\t# single value\n\t\telse:\n\t\t\t# this will attempt to convert the string back into Date, otherwise just returns the value\n\t\t\tif isinstance(node, basestring):\n\t\t\t\ttry:\n\t\t\t\t\treturn self.view.rootContainer.dateFromInstant(node)\n\t\t\t\texcept:\n\t\t\t\t\treturn node\n\t\t\treturn node\n\t\t\t\n\treturn convertProperties(propertyTree)" + } + ], + "extensionFunctions": null, + "messageHandlers": [ + { + "messageType": "ad_hoc_trends_databaseReconfigured", + "pageScope": false, + "script": "\t# called when someone enables/disables a database\n\t# this way, users don\u0027t have to manually refresh their db listing\n\tself.view.custom.configureDatabases \u003d {}\n\tself.view.refreshBinding(\u0027custom.databases\u0027)\n\tif self.view.custom.activeControl in [\u0027LoadFromDb\u0027, \u0027SaveToDb\u0027]:\n\t\tself.view.rootContainer.closeFunction()", + "sessionScope": true, + "viewScope": false + } + ] + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Analysis/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Analysis/resource.json new file mode 100644 index 0000000..cdc805b --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Analysis/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "00829a8adf68a48aea7e24c516fb0dcb1b9e64a711e0038219bd130d12b84639", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Analysis/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Analysis/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..92eab0364449be253705aa877dba70b0acc98098 GIT binary patch literal 600 zcmeAS@N?(olHy`uVBq!ia0y~yU|b5sD>;~eB8!UlH8C(S$$PpuhE&A8J=h2oV>rCv nXK?&OhEPTjXB3S15IB%;^n!tL@s?y!P*8Zf`njxgN@xNAun-m` literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Analysis/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Analysis/view.json new file mode 100644 index 0000000..577c472 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Analysis/view.json @@ -0,0 +1,2630 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "height": 895, + "width": 862 + } + }, + "root": { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "16px" + }, + "props": { + "style": { + "classes": "AlarmAnalysis/Label" + }, + "text": "Start Date" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Date" + }, + "position": { + "basis": "36px", + "shrink": 0 + }, + "propConfig": { + "custom.dateStr": { + "binding": { + "config": { + "path": "this.props.value" + }, + "transforms": [ + { + "code": "\tfrom java.util import Date\n\treturn system.date.format(Date(value), \"yyyy-MM-dd HH:mm:ss\")", + "type": "script" + } + ], + "type": "property" + } + }, + "props.value": { + "binding": { + "config": { + "expression": "toDate(dateFormat(dateArithmetic(now(0), -2, \u0027days\u0027), \"yyyy-MM-dd 00:00:00\"))" + }, + "transforms": [ + { + "code": "\treturn value.getTime()", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "format": "MM/DD/YYYY HH:mm", + "formattedValue": "05/29/2022 00:00", + "formattedValues": { + "date": "07/24/2021", + "datetime": "07/24/2021 01:00", + "time": "01:00" + }, + "style": { + "height": "36px" + } + }, + "type": "ia.input.date-time-input" + } + ], + "meta": { + "name": "Start Date" + }, + "position": { + "basis": "135px", + "shrink": 0 + }, + "props": { + "direction": "column", + "style": { + "marginRight": "10px", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "16px" + }, + "props": { + "style": { + "classes": "AlarmAnalysis/Label" + }, + "text": "End Date" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Date" + }, + "position": { + "basis": "36px", + "shrink": "-0" + }, + "propConfig": { + "custom.dateStr": { + "binding": { + "config": { + "path": "this.props.value" + }, + "transforms": [ + { + "code": "\tfrom java.util import Date\n\treturn system.date.format(Date(value), \"yyyy-MM-dd HH:mm:ss\")", + "type": "script" + } + ], + "type": "property" + } + }, + "props.value": { + "binding": { + "config": { + "expression": "toDate(dateFormat(now(0), \"yyyy-MM-dd 23:59:59\"))" + }, + "transforms": [ + { + "code": "\treturn value.getTime()", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "format": "MM/DD/YYYY HH:mm", + "formattedValue": "05/31/2022 23:59", + "formattedValues": { + "date": "07/27/2021", + "datetime": "07/27/2021 00:59", + "time": "00:59" + }, + "style": { + "height": "36px" + } + }, + "type": "ia.input.date-time-input" + } + ], + "meta": { + "name": "End Date" + }, + "position": { + "basis": "135px", + "shrink": 0 + }, + "props": { + "direction": "column", + "style": { + "marginRight": "10px", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "AlarmAnalysis/Label" + }, + "text": "Top" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Numeric" + }, + "position": { + "basis": "36px", + "shrink": 0 + }, + "props": { + "align": "center", + "format": "0,0", + "inputBounds": { + "minimum": 1 + }, + "style": { + "borderRadius": "4px", + "height": "36px" + }, + "tooltip": "Return the top number of alarms", + "value": 10 + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "Top" + }, + "position": { + "basis": "50px", + "shrink": 0 + }, + "props": { + "direction": "column", + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.parent.parent.parent.refreshBinding(\"custom.alarmSummary\")\n\tself.parent.parent.parent.refreshBinding(\"custom.mostFrequent\")\n\tself.parent.parent.parent.refreshBinding(\"custom.longestDuration\")\n\tself.parent.parent.parent.refreshBinding(\"custom.alarmFrequency\")\n\tself.parent.parent.parent.refreshBinding(\"custom.alarmDuration\")\n\tself.parent.parent.parent.refreshBinding(\"custom.alarmByHour\")" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Icon" + }, + "position": { + "basis": "30px", + "shrink": 0 + }, + "props": { + "color": "#000000A3", + "path": "material/refresh", + "style": { + "classes": "", + "cursor": "pointer", + "marginTop": "16px" + } + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "Refresh" + }, + "position": { + "basis": "30px", + "shrink": 0 + }, + "props": { + "direction": "column", + "justify": "center", + "style": { + "margin": "0px 0px 0px 10px", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Filters" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "marginBottom": "8px", + "overflow": "visible" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "basis": "32px", + "shrink": 0 + }, + "props": { + "path": "material/alarm", + "style": { + "classes": "Framework/Card/Title" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "grow": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Title", + "paddingLeft": "0px" + }, + "text": "Alarm KPIs" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Title" + }, + "position": { + "basis": "24px", + "shrink": 0 + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Total Alarms" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(\r\n\tsum({/root.custom.alarmSummary}, \"total\"),\r\n\t\"###0\")" + }, + "transforms": [ + { + "code": "\treturn value if value else 0", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Total Alarms" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Total Duration" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(floor(sum({/root.custom.alarmSummary}, \"totalTime\") / 3600), \"00\") + \":\" +\r\nnumberFormat(floor((sum({/root.custom.alarmSummary}, \"totalTime\") % 3600) / 60), \"00\") + \":\" + \r\nnumberFormat(((sum({/root.custom.alarmSummary}, \"totalTime\") % 3600) % 60), \"00\") " + }, + "transforms": [ + { + "code": "\treturn value if value else \"00:00:00\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Total Duration" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Total Unacknowledged" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(\r\n\tsum({/root.custom.alarmSummary}, \"unacknowledged\"),\r\n\t\"###0\")" + }, + "transforms": [ + { + "code": "\treturn value if value else 0", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Total Unacknowledged" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Avg Time to Ack" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(floor(sum({/root.custom.alarmSummary}, \"acknowledgeTime\") / 3600), \"00\") + \":\" +\r\nnumberFormat(floor((sum({/root.custom.alarmSummary}, \"acknowledgeTime\") % 3600) / 60), \"00\") + \":\" + \r\nnumberFormat(((sum({/root.custom.alarmSummary}, \"acknowledgeTime\") % 3600) % 60), \"00\") " + }, + "transforms": [ + { + "code": "\treturn value if value else \"00:00:00\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Avg Time to Ack" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Avg Time to Clear" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(floor(sum({/root.custom.alarmSummary}, \"clearTime\") / 3600), \"00\") + \":\" +\r\nnumberFormat(floor((sum({/root.custom.alarmSummary}, \"clearTime\") % 3600) / 60), \"00\") + \":\" + \r\nnumberFormat(((sum({/root.custom.alarmSummary}, \"clearTime\") % 3600) % 60), \"00\") " + }, + "transforms": [ + { + "code": "\treturn value if value else \"00:00:00\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Avg Time to Clear" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Most Frequent" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "try(toDataset({/root.custom.mostFrequent})[\"displaypath\"], \"\") + \" - \" +\r\n\r\nnumberFormat(\r\n\ttoInt(try(toDataset({/root.custom.mostFrequent})[\"total\"], 0)),\r\n\t\"###0\") + \r\n\r\n\" (\" + \r\n\t\r\nnumberFormat(\r\n\ttry(toInt(try(toDataset({/root.custom.mostFrequent})[\"total\"], 0)) / toInt(sum({/root.custom.alarmSummary}, \"total\")), 0),\r\n\t\"##0.#%\") + \r\n\r\n\")\"" + }, + "transforms": [ + { + "code": "\treturn value if value else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Most Frequent Alarm" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Longest Duration" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "try(toDataset({/root.custom.longestDuration})[\"displaypath\"], \"\") + \" - \" +\r\n\r\nnumberFormat(\r\n\ttoInt(try(toDataset({/root.custom.longestDuration})[\"total\"], 0)),\r\n\t\"###0\") + \r\n\r\n\" (\" + \r\n\t\r\nnumberFormat(\r\n\ttry(toInt(try(toDataset({/root.custom.longestDuration})[\"total\"], 0)) / toInt(sum({/root.custom.alarmSummary}, \"totalTime\")), 0),\r\n\t\"##0.#%\") + \r\n\r\n\")\"" + }, + "transforms": [ + { + "code": "\treturn value if value else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Longest Duration Alarm" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Alarm KPI" + }, + "position": { + "basis": "auto", + "breakpoints": [ + { + "colIndex": 0, + "name": "sm", + "order": 2, + "rowIndex": 0, + "span": 12 + }, + { + "colIndex": 0, + "name": "md", + "order": 1, + "rowIndex": 0, + "span": 6 + }, + { + "colIndex": 0, + "name": "lg", + "order": 1, + "rowIndex": 0, + "span": 6 + } + ], + "grow": 0, + "height": "auto", + "shrink": 0 + }, + "props": { + "direction": "column", + "style": { + "classes": "Framework/Card/Card", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "basis": "32px", + "shrink": 0 + }, + "props": { + "path": "material/add_alarm", + "style": { + "classes": "Framework/Card/Title" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "grow": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Title", + "paddingLeft": "0px" + }, + "text": "Alarm Frequency" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Title" + }, + "position": { + "basis": "24px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "PieChart" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.data": { + "binding": { + "config": { + "path": "/root.custom.alarmFrequency" + }, + "transforms": [ + { + "code": "\treturn value if value else [{\u0027cnt\u0027:1,\u0027displaypath\u0027:\u0027Loading...\u0027}]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "colors": [ + "#003F69", + "#9ED23E", + "#F68F1E", + "#F06240", + "#FFC800", + "#808080", + "#994499" + ], + "cutoutRadius": 60, + "showLabels": false, + "style": { + "fontSize": "10px", + "height": "180px" + } + }, + "type": "ia.chart.pie" + } + ], + "meta": { + "name": "Alarm Frequency" + }, + "position": { + "breakpoints": [ + { + "colIndex": 0, + "name": "sm", + "order": 1, + "rowIndex": 2, + "span": 12 + }, + { + "colIndex": 0, + "name": "md", + "order": 1, + "rowIndex": 1, + "span": 6 + }, + { + "colIndex": 0, + "name": "lg", + "order": 1, + "rowIndex": 1, + "span": 6 + } + ], + "height": 240 + }, + "props": { + "direction": "column", + "style": { + "classes": "Framework/Card/Card", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "basis": "32px", + "shrink": 0 + }, + "props": { + "path": "material/timelapse", + "style": { + "classes": "Framework/Card/Title" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "grow": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Title", + "paddingLeft": "0px" + }, + "text": "Alarm Duration" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Title" + }, + "position": { + "basis": "24px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "PieChart" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.data": { + "binding": { + "config": { + "path": "/root.custom.alarmDuration" + }, + "transforms": [ + { + "code": "\treturn value if value else [{\u0027duration\u0027:1,\u0027displaypath\u0027:\u0027Loading...\u0027}]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "colors": [ + "#003F69", + "#9ED23E", + "#F68F1E", + "#F06240", + "#FFC800", + "#808080", + "#994499" + ], + "cutoutRadius": 60, + "showLabels": false, + "style": { + "fontSize": "10px", + "height": "180px" + } + }, + "type": "ia.chart.pie" + } + ], + "meta": { + "name": "Alarm Duration" + }, + "position": { + "breakpoints": [ + { + "colIndex": 0, + "name": "sm", + "order": 1, + "rowIndex": 3, + "span": 12 + }, + { + "colIndex": 6, + "name": "md", + "order": 2, + "rowIndex": 1, + "span": 6 + }, + { + "colIndex": 6, + "name": "lg", + "order": 2, + "rowIndex": 1, + "span": 6 + } + ], + "height": 240 + }, + "props": { + "direction": "column", + "style": { + "classes": "Framework/Card/Card", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "basis": "32px", + "shrink": 0 + }, + "props": { + "path": "material/show_chart", + "style": { + "classes": "Framework/Card/Title" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "grow": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Title", + "paddingLeft": "0px" + }, + "text": "Alarms By Hour" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Title" + }, + "position": { + "basis": "24px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "XYChart" + }, + "position": { + "basis": "375px" + }, + "propConfig": { + "props.dataSources.series": { + "binding": { + "config": { + "path": "/root.custom.alarmByHour" + }, + "transforms": [ + { + "code": "\treturn value if value else [{\u0027duration\u0027: 0, \u0027total\u0027: 0, \u0027label\u0027:i} for i in range(0, 24)]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "background": { + "color": "#FAFAFA", + "render": "color" + }, + "cursor": { + "series": "total" + }, + "dataSources": {}, + "series": [ + { + "candlestick": { + "appearance": { + "deriveFieldsFromData": { + "fill": { + "color": "", + "opacity": "" + }, + "stroke": { + "color": "", + "opacity": "", + "width": "" + } + }, + "fill": "", + "heatRules": { + "dataField": "", + "enabled": false, + "max": "", + "min": "" + }, + "opacity": 1, + "stacked": false, + "stroke": { + "color": "", + "opacity": 1, + "width": 1 + } + }, + "high": "", + "low": "", + "open": "" + }, + "column": { + "appearance": { + "deriveFieldsFromData": { + "fill": { + "color": "", + "opacity": "" + }, + "stroke": { + "color": "", + "opacity": "", + "width": "" + } + }, + "fill": "#003F69", + "heatRules": { + "dataField": "", + "enabled": false, + "max": "", + "min": "" + }, + "height": null, + "opacity": 1, + "stacked": false, + "stroke": { + "color": "", + "opacity": 1, + "width": 1 + }, + "width": null + }, + "open": { + "x": "", + "y": "" + } + }, + "data": { + "source": "series", + "x": "label", + "y": "total" + }, + "defaultState": { + "visible": true + }, + "hiddenInLegend": true, + "label": { + "text": "# of Alarms" + }, + "line": { + "appearance": { + "bullet": { + "color": "", + "enabled": true, + "height": 10, + "horizontalCenter": "middle", + "opacity": 1, + "render": "circle", + "rotation": 0, + "verticalCenter": "middle", + "width": 10 + }, + "bullets": [ + { + "deriveFieldsFromData": { + "fill": { + "color": "", + "opacity": "" + }, + "rotation": "", + "stroke": { + "color": "", + "opacity": "", + "width": "" + } + }, + "enabled": true, + "fill": { + "color": "", + "opacity": 1 + }, + "heatRules": { + "dataField": "", + "enabled": false, + "max": 100, + "min": 2 + }, + "height": 10, + "label": { + "position": { + "dx": 0, + "dy": 0 + }, + "text": "{value}" + }, + "render": "circle", + "rotation": 0, + "stroke": { + "color": "", + "opacity": 1, + "width": 1 + }, + "tooltip": { + "background": { + "color": "", + "opacity": 1 + }, + "cornerRadius": 3, + "enabled": true, + "pointerLength": 4, + "text": "{name}: [bold]{valueY}[/]" + }, + "width": 10 + } + ], + "connect": true, + "fill": { + "color": "", + "opacity": 0 + }, + "minDistance": 0.5, + "stroke": { + "color": "", + "dashArray": "", + "opacity": 1, + "width": 3 + }, + "tensionX": 1, + "tensionY": 1 + }, + "open": { + "x": "", + "y": "" + } + }, + "name": "total", + "render": "column", + "stepLine": { + "appearance": { + "bullet": { + "color": "", + "enabled": true, + "height": 10, + "horizontalCenter": "middle", + "opacity": 1, + "render": "circle", + "rotation": 0, + "verticalCenter": "middle", + "width": 10 + }, + "bullets": [ + { + "deriveFieldsFromData": { + "fill": { + "color": "", + "opacity": "" + }, + "rotation": "", + "stroke": { + "color": "", + "opacity": "", + "width": "" + } + }, + "enabled": true, + "fill": { + "color": "", + "opacity": 1 + }, + "heatRules": { + "dataField": "", + "enabled": false, + "max": 100, + "min": 2 + }, + "height": 10, + "label": { + "position": { + "dx": 0, + "dy": 0 + }, + "text": "{value}" + }, + "render": "circle", + "rotation": 0, + "stroke": { + "color": "", + "opacity": 1, + "width": 1 + }, + "tooltip": { + "background": { + "color": "", + "opacity": 1 + }, + "cornerRadius": 3, + "enabled": true, + "pointerLength": 4, + "text": "{name}: [bold]{valueY}[/]" + }, + "width": 10 + } + ], + "connect": true, + "fill": { + "color": "", + "opacity": 0 + }, + "minDistance": 0.5, + "stroke": { + "color": "", + "dashArray": "", + "opacity": 1, + "width": 3 + }, + "tensionX": 1, + "tensionY": 1 + }, + "open": { + "x": "", + "y": "" + } + }, + "tooltip": { + "background": { + "color": "", + "opacity": 1 + }, + "cornerRadius": 3, + "enabled": true, + "format": "{name}: [bold]{valueY.value}[/]", + "pointerLength": 4, + "text": "{name}: [bold]{valueY}[/]" + }, + "visible": true, + "xAxis": "hour", + "yAxis": "numAlarms", + "zIndex": 0 + }, + { + "candlestick": { + "appearance": { + "fill": "", + "opacity": 1, + "stacked": false + }, + "high": "", + "low": "", + "open": "" + }, + "column": { + "appearance": { + "fill": "#9ED23E", + "opacity": 1, + "stacked": false + } + }, + "data": { + "source": "series", + "x": "label", + "y": "duration" + }, + "defaultState": { + "visible": true + }, + "hiddenInLegend": true, + "label": { + "text": "Duration (sec)" + }, + "line": { + "appearance": { + "bullet": { + "color": "", + "enabled": true, + "height": 10, + "horizontalCenter": "middle", + "opacity": 1, + "render": "circle", + "rotation": 0, + "verticalCenter": "middle", + "width": 10 + }, + "connect": true, + "minDistance": 0.5, + "stroke": { + "color": "", + "dashArray": "", + "opacity": 1, + "width": 3 + }, + "tensionX": 1, + "tensionY": 1 + } + }, + "name": "duration", + "render": "column", + "stepLine": { + "appearance": { + "bullet": { + "color": "", + "enabled": true, + "height": 10, + "horizontalCenter": "middle", + "opacity": 1, + "render": "circle", + "rotation": 0, + "verticalCenter": "middle", + "width": 10 + }, + "connect": true, + "minDistance": 0.5, + "stroke": { + "color": "", + "dashArray": "", + "opacity": 1, + "width": 3 + }, + "tensionX": 1, + "tensionY": 1 + } + }, + "tooltip": { + "background": { + "color": "", + "opacity": 1 + }, + "cornerRadius": 3, + "enabled": true, + "format": "{name}: [bold]{valueY.value}[/]", + "pointerLength": 4, + "text": "{name}: [bold]{valueY}[/]" + }, + "visible": true, + "xAxis": "hour", + "yAxis": "duration", + "zIndex": 0 + } + ], + "style": { + "padding": "5px" + }, + "xAxes": [ + { + "appearance": { + "font": { + "size": "", + "weight": "normal" + }, + "grid": { + "color": "#E6EAEE", + "dashArray": "", + "minDistance": null, + "opacity": 1, + "position": 0.5 + }, + "inside": false, + "labels": { + "color": "#2E2E2E", + "horizontalCenter": "middle", + "opacity": 1, + "rotation": 0, + "verticalCenter": "middle", + "wrap": true + }, + "opposite": false + }, + "category": { + "break": { + "enabled": false, + "endCategory": "", + "size": 0.05, + "startCategory": "" + } + }, + "date": { + "baseInterval": { + "count": 1, + "enabled": false, + "skipEmptyPeriods": false, + "timeUnit": "hour" + }, + "break": { + "enabled": false, + "endDate": "", + "size": 0.05, + "startDate": "" + }, + "format": "M/d/yyyy HH:mm:ss", + "inputFormat": "yyyy-MM-dd kk:mm:ss", + "range": { + "max": "", + "min": "", + "useStrict": false + } + }, + "inversed": false, + "label": { + "color": "", + "enabled": true, + "text": "Hour" + }, + "name": "hour", + "render": "category", + "tooltip": { + "background": { + "color": "", + "opacity": 1 + }, + "cornerRadius": 3, + "enabled": true, + "format": "", + "pointerLength": 4, + "text": "" + }, + "value": { + "break": { + "enabled": false, + "endValue": 100, + "size": 0.05, + "startValue": 0 + }, + "format": "#,###.##", + "logarithmic": false, + "range": { + "max": "", + "min": "", + "useStrict": false + } + }, + "visible": true + } + ], + "yAxes": [ + { + "appearance": { + "font": { + "size": "", + "weight": "normal" + }, + "grid": { + "color": "#E6EAEE", + "dashArray": "", + "minDistance": null, + "opacity": 1, + "position": 0.5 + }, + "inside": false, + "labels": { + "color": "#2E2E2E", + "horizontalCenter": "middle", + "opacity": 1, + "rotation": 0, + "verticalCenter": "middle", + "wrap": true + }, + "opposite": false + }, + "category": { + "break": { + "enabled": false, + "endCategory": "", + "size": 0.05, + "startCategory": "" + } + }, + "date": { + "baseInterval": { + "count": 1, + "enabled": false, + "skipEmptyPeriods": false, + "timeUnit": "hour" + }, + "break": { + "enabled": false, + "endDate": "", + "size": 0.05, + "startDate": "" + }, + "format": "M/d/yyyy HH:mm:ss", + "inputFormat": "yyyy-MM-dd kk:mm:ss", + "range": { + "max": "", + "min": "", + "useStrict": false + } + }, + "inversed": false, + "label": { + "color": "", + "enabled": true, + "text": "# of Alarms" + }, + "name": "numAlarms", + "render": "value", + "tooltip": { + "background": { + "color": "", + "opacity": 1 + }, + "cornerRadius": 3, + "enabled": true, + "format": "", + "pointerLength": 4, + "text": "" + }, + "value": { + "break": { + "enabled": false, + "endValue": 100, + "size": 0.05, + "startValue": 0 + }, + "format": "#,###.##", + "logarithmic": false, + "range": { + "max": "", + "min": "", + "useStrict": false + } + }, + "visible": true + }, + { + "appearance": { + "font": { + "size": "", + "weight": "normal" + }, + "grid": { + "color": "#E6EAEE", + "dashArray": "", + "opacity": 1 + }, + "inside": false, + "labels": { + "color": "#2E2E2E", + "opacity": 1 + }, + "opposite": true + }, + "category": { + "break": { + "enabled": false, + "endCategory": "", + "size": 0.05, + "startCategory": "" + } + }, + "date": { + "baseInterval": { + "count": 1, + "enabled": false, + "skipEmptyPeriods": false, + "timeUnit": "hour" + }, + "break": { + "enabled": false, + "endDate": "", + "size": 0.05, + "startDate": "" + }, + "format": "M/d/yyyy HH:mm:ss", + "range": { + "max": "", + "min": "", + "useStrict": false + } + }, + "label": { + "color": "", + "enabled": true, + "text": "Duration (sec)" + }, + "name": "duration", + "render": "value", + "tooltip": { + "background": { + "color": "", + "opacity": 1 + }, + "cornerRadius": 3, + "enabled": true, + "format": "", + "pointerLength": 4 + }, + "value": { + "break": { + "enabled": false, + "endValue": 100, + "size": 0.05, + "startValue": 0 + }, + "format": "#,###.##", + "logarithmic": false, + "range": { + "max": "", + "min": "", + "useStrict": false + } + }, + "visible": true + } + ] + }, + "type": "ia.chart.xy" + } + ], + "meta": { + "name": "Alarm By Hour" + }, + "position": { + "breakpoints": [ + { + "colIndex": 0, + "name": "sm", + "order": 1, + "rowIndex": 1, + "span": 12 + }, + { + "colIndex": 6, + "name": "md", + "order": 2, + "rowIndex": 0, + "span": 6 + }, + { + "colIndex": 6, + "name": "lg", + "order": 2, + "rowIndex": 0, + "span": 6 + } + ], + "height": 240 + }, + "props": { + "direction": "column", + "style": { + "classes": "Framework/Card/Card", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Column Container" + }, + "position": { + "shrink": 0 + }, + "props": { + "breakpoints": [ + { + "minWidth": 0, + "name": "sm" + }, + { + "minWidth": 600, + "name": "md" + }, + { + "minWidth": 996, + "name": "lg" + } + ], + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.column" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "basis": "32px", + "shrink": 0 + }, + "props": { + "path": "material/view_list", + "style": { + "classes": "Framework/Card/Title" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "grow": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Title", + "paddingLeft": "0px" + }, + "text": "Alarms Summary" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Title" + }, + "position": { + "basis": "24px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Table" + }, + "position": { + "size": "large" + }, + "propConfig": { + "props.data": { + "binding": { + "config": { + "parameters": { + "endDate": "dateFormat({..../Filters/End Date/Date.props.value}, \"yyyy-MM-dd HH:mm:ss\")", + "startDate": "dateFormat({..../Filters/Start Date/Date.props.value}, \"yyyy-MM-dd HH:mm:ss\")" + }, + "queryPath": "Alarms/Alarm Summary Table", + "returnFormat": "json" + }, + "transforms": [ + { + "code": "\tpriorities \u003d [\"Diagnostic\", \"Low\", \"Medium\", \"High\", \"Critical\"]\n\trows \u003d []\n\t\n\tfor priority in priorities:\n\t\tnewRow \u003d None\n\t\tfor row in value:\n\t\t\tif priority \u003d\u003d row[\"Priority\"]:\n\t\t\t\tnewRow \u003d row\n\t\tif newRow \u003d\u003d None:\n\t\t\tnewRow \u003d ({\"Priority\":priority, \"total\":0, \"active\":0, \"unacknowledged\":0, \"cleared\":0, \"acknowledgeTime\":0, \"clearTime\":0, \"totalTime\":0})\n\t\trows.append(newRow)\n\treturn rows", + "type": "script" + } + ], + "type": "query" + } + } + }, + "props": { + "columns": [ + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "Priority", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "justify": "auto", + "number": "value", + "numberFormat": "$ (0,0.00)", + "progressBar": { + "bar": { + "color": "#62A3F6", + "linecap": "round", + "width": 5 + }, + "max": 100, + "track": { + "color": "#DADADA", + "linecap": "round", + "width": 2 + }, + "value": { + "color": "#7D7D7D", + "show": true + } + }, + "render": "auto", + "resizable": true, + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "#2196F3", + "unselected": "#FFFFFF" + } + }, + "viewParams": {}, + "viewPath": "", + "width": "" + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "total", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "Total Alarms" + }, + "justify": "auto", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "#62A3F6", + "linecap": "round", + "width": 5 + }, + "max": 100, + "track": { + "color": "#DADADA", + "linecap": "round", + "width": 2 + }, + "value": { + "color": "#7D7D7D", + "show": true + } + }, + "render": "auto", + "resizable": true, + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "#2196F3", + "unselected": "#FFFFFF" + } + }, + "viewParams": {}, + "viewPath": "", + "width": "" + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "active", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "Total Alarms Active" + }, + "justify": "auto", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "#62A3F6", + "linecap": "round", + "width": 5 + }, + "max": 100, + "track": { + "color": "#DADADA", + "linecap": "round", + "width": 2 + }, + "value": { + "color": "#7D7D7D", + "show": true + } + }, + "render": "auto", + "resizable": true, + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "#2196F3", + "unselected": "#FFFFFF" + } + }, + "viewParams": {}, + "viewPath": "", + "width": "" + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "unacknowledged", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "Total Alarms Unacknowledged" + }, + "justify": "auto", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "#62A3F6", + "linecap": "round", + "width": 5 + }, + "max": 100, + "track": { + "color": "#DADADA", + "linecap": "round", + "width": 2 + }, + "value": { + "color": "#7D7D7D", + "show": true + } + }, + "render": "auto", + "resizable": true, + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "#2196F3", + "unselected": "#FFFFFF" + } + }, + "viewParams": {}, + "viewPath": "", + "width": "" + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "cleared", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "Total Alarms Cleared" + }, + "justify": "auto", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "#62A3F6", + "linecap": "round", + "width": 5 + }, + "max": 100, + "track": { + "color": "#DADADA", + "linecap": "round", + "width": 2 + }, + "value": { + "color": "#7D7D7D", + "show": true + } + }, + "render": "auto", + "resizable": true, + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "#2196F3", + "unselected": "#FFFFFF" + } + }, + "viewParams": {}, + "viewPath": "", + "width": "" + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "clearTime", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "Average Time to Clear" + }, + "justify": "auto", + "number": "value", + "numberFormat": "00:00:00", + "progressBar": { + "bar": { + "color": "#62A3F6", + "linecap": "round", + "width": 5 + }, + "max": 100, + "track": { + "color": "#DADADA", + "linecap": "round", + "width": 2 + }, + "value": { + "color": "#7D7D7D", + "show": true + } + }, + "render": "auto", + "resizable": true, + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "#2196F3", + "unselected": "#FFFFFF" + } + }, + "viewParams": {}, + "viewPath": "", + "width": "" + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "acknowledgeTime", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "Average Time to Acknowledge" + }, + "justify": "auto", + "number": "value", + "numberFormat": "00:00:00", + "progressBar": { + "bar": { + "color": "#62A3F6", + "linecap": "round", + "width": 5 + }, + "max": 100, + "track": { + "color": "#DADADA", + "linecap": "round", + "width": 2 + }, + "value": { + "color": "#7D7D7D", + "show": true + } + }, + "render": "auto", + "resizable": true, + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "#2196F3", + "unselected": "#FFFFFF" + } + }, + "viewParams": {}, + "viewPath": "", + "width": "" + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "h:mm:ss a", + "editable": false, + "field": "totalTime", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "Total Duration" + }, + "justify": "auto", + "number": "value", + "numberFormat": "00:00:00", + "progressBar": { + "bar": { + "color": "#62A3F6", + "linecap": "round", + "width": 5 + }, + "max": 100, + "track": { + "color": "#DADADA", + "linecap": "round", + "width": 2 + }, + "value": { + "color": "#7D7D7D", + "show": true + } + }, + "render": "number", + "resizable": true, + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "#2196F3", + "unselected": "#FFFFFF" + } + }, + "viewParams": {}, + "viewPath": "", + "width": "" + } + ], + "pager": { + "bottom": false + }, + "style": { + "minHeight": "250px" + } + }, + "type": "ia.display.table" + }, + { + "meta": { + "name": "EmbeddedView" + }, + "propConfig": { + "props.params.data": { + "binding": { + "config": { + "parameters": { + "endDate": "dateFormat({..../Filters/End Date/Date.props.value}, \"yyyy-MM-dd HH:mm:ss\")", + "startDate": "dateFormat({..../Filters/Start Date/Date.props.value}, \"yyyy-MM-dd HH:mm:ss\")" + }, + "queryPath": "Alarms/Alarm Summary Table", + "returnFormat": "json" + }, + "transforms": [ + { + "code": "\tpriorities \u003d [\"Diagnostic\", \"Low\", \"Medium\", \"High\", \"Critical\"]\n\trows \u003d []\n\t\n\tfor priority in priorities:\n\t\tnewRow \u003d None\n\t\tfor row in value:\n\t\t\tif priority \u003d\u003d row[\"Priority\"]:\n\t\t\t\tnewRow \u003d row\n\t\tif newRow \u003d\u003d None:\n\t\t\tnewRow \u003d ({\"Priority\":priority, \"total\":0, \"active\":0, \"unacknowledged\":0, \"cleared\":0, \"acknowledgeTime\":0, \"clearTime\":0, \"totalTime\":0})\n\t\trows.append(newRow)\n\treturn rows", + "type": "script" + } + ], + "type": "query" + } + } + }, + "props": { + "params": { + "viewPath": "Alarm Analysis/Alarm Summary Card" + }, + "path": "Framework/Table Card Layout/Cards" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "BreakpointContainer" + }, + "position": { + "shrink": 0 + }, + "type": "ia.container.breakpt" + } + ], + "meta": { + "name": "Alarm Summary" + }, + "position": { + "grow": 1, + "shrink": 0 + }, + "props": { + "direction": "column", + "style": { + "classes": "Framework/Card/Card", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "propConfig": { + "custom.alarmByHour": { + "binding": { + "config": { + "parameters": { + "endDate": "{./Filters/End Date/Date.custom.dateStr}", + "startDate": "{./Filters/Start Date/Date.custom.dateStr}" + }, + "queryPath": "Alarms/Alarms By Hour", + "returnFormat": "json" + }, + "type": "query" + } + }, + "custom.alarmDuration": { + "binding": { + "config": { + "parameters": { + "app": "null", + "endDate": "{./Filters/End Date/Date.custom.dateStr}", + "limit": "{./Filters/Top/Numeric.props.value}", + "startDate": "{./Filters/Start Date/Date.custom.dateStr}" + }, + "queryPath": "Alarms/Alarms Duration", + "returnFormat": "json" + }, + "type": "query" + } + }, + "custom.alarmFrequency": { + "binding": { + "config": { + "parameters": { + "app": "null", + "endDate": "{./Filters/End Date/Date.custom.dateStr}", + "limit": "{./Filters/Top/Numeric.props.value}", + "startDate": "{./Filters/Start Date/Date.custom.dateStr}" + }, + "queryPath": "Alarms/Alarms Frequency", + "returnFormat": "json" + }, + "type": "query" + } + }, + "custom.alarmSummary": { + "binding": { + "config": { + "parameters": { + "endDate": "{./Filters/End Date/Date.custom.dateStr}", + "startDate": "{./Filters/Start Date/Date.custom.dateStr}" + }, + "queryPath": "Alarms/Alarm Summary", + "returnFormat": "dataset" + }, + "type": "query" + } + }, + "custom.longestDuration": { + "binding": { + "config": { + "parameters": { + "endDate": "{./Filters/End Date/Date.custom.dateStr}", + "startDate": "{./Filters/Start Date/Date.custom.dateStr}" + }, + "queryPath": "Alarms/Longest Duration Alarm", + "returnFormat": "dataset" + }, + "type": "query" + } + }, + "custom.mostFrequent": { + "binding": { + "config": { + "parameters": { + "endDate": "{./Filters/End Date/Date.custom.dateStr}", + "startDate": "{./Filters/Start Date/Date.custom.dateStr}" + }, + "queryPath": "Alarms/Most Frequent Alarm", + "returnFormat": "dataset" + }, + "type": "query" + } + } + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Summary Card/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Summary Card/resource.json new file mode 100644 index 0000000..e79b717 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Summary Card/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "61667669e713dc6d5d791489c7f765488d45eb77fedcad8cb98939c21cd992ba", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Summary Card/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Summary Card/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..571e08a29ff9fe95ddb35ef6a06653fa219ebdf9 GIT binary patch literal 3883 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 K>(ppDM*k1nB~Zrz literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Summary Card/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Summary Card/view.json new file mode 100644 index 0000000..a0316c2 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Analysis/Alarm Summary Card/view.json @@ -0,0 +1,552 @@ +{ + "custom": {}, + "params": { + "Priority": "Priority", + "acknowledgeTime": 0, + "active": 0, + "clearTime": 0, + "cleared": 0, + "total": 0, + "totalTime": 0, + "unacknowledged": "0" + }, + "propConfig": { + "params.Priority": { + "paramDirection": "input", + "persistent": true + }, + "params.ack": { + "paramDirection": "input" + }, + "params.acknowledgeTime": { + "paramDirection": "input" + }, + "params.active": { + "paramDirection": "input" + }, + "params.activeTimestamp": { + "paramDirection": "input" + }, + "params.clearTime": { + "paramDirection": "input" + }, + "params.cleared": { + "paramDirection": "input", + "persistent": true + }, + "params.daytank": { + "paramDirection": "input" + }, + "params.humidity": { + "paramDirection": "input" + }, + "params.id": { + "paramDirection": "input" + }, + "params.priorityOrdinal": { + "paramDirection": "input" + }, + "params.state": { + "paramDirection": "input" + }, + "params.t_stamp": { + "paramDirection": "input" + }, + "params.tank1": { + "paramDirection": "input" + }, + "params.tank2": { + "paramDirection": "input" + }, + "params.temp": { + "paramDirection": "input" + }, + "params.total": { + "paramDirection": "input" + }, + "params.totalTime": { + "paramDirection": "input" + }, + "params.unacknowledged": { + "paramDirection": "input" + } + }, + "props": { + "defaultSize": { + "height": 261, + "width": 372 + } + }, + "root": { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "20px", + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.Priority" + }, + "type": "property" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Title" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Total Alarms" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.total" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "TotalAlarms" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Total Alarms Active" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.active" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "ActiveAlarms" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Total Unacknowledged" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.unacknowledged" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "UnackAlarms" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Total Alarms Cleared" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.cleared" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "ClearedAlarms" + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Total Duration" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(floor({view.params.totalTime} / 3600), \"00\") + \":\" +\r\nnumberFormat(floor(({view.params.totalTime} % 3600) / 60), \"00\") + \":\" + \r\nnumberFormat((({view.params.totalTime} % 3600) % 60), \"00\")" + }, + "transforms": [ + { + "code": "\treturn value if value else \"00:00:00\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "TotalDuration" + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Avg Time to Ack" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(floor({view.params.acknowledgeTime} / 3600), \"00\") + \":\" +\r\nnumberFormat(floor(({view.params.acknowledgeTime} % 3600) / 60), \"00\") + \":\" + \r\nnumberFormat((({view.params.acknowledgeTime} % 3600) % 60), \"00\")" + }, + "transforms": [ + { + "code": "\treturn value if value else \"00:00:00\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "AvgTimeToAck" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "shrink": 0 + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Avg Time to Clear" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(floor({view.params.clearTime} / 3600), \"00\") + \":\" +\r\nnumberFormat(floor(({view.params.clearTime} % 3600) / 60), \"00\") + \":\" + \r\nnumberFormat((({view.params.clearTime} % 3600) % 60), \"00\")" + }, + "transforms": [ + { + "code": "\treturn value if value else \"00:00:00\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "AvgTimeToClear" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Framework/Card/Card" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarm Journal/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarm Journal/resource.json new file mode 100644 index 0000000..932d133 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarm Journal/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "0059d781f45d5918efda7b9be63e71894068dce572e769f47ee7ae0833d75d76", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarm Journal/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarm Journal/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..351ae946f5e0f77015fe09f54329c3a0cf0c59a3 GIT binary patch literal 57757 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarms/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarms/view.json new file mode 100644 index 0000000..df48d17 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Alarms/view.json @@ -0,0 +1,45 @@ +{ + "custom": {}, + "params": {}, + "propConfig": { + "custom.states[1]": { + "persistent": true + }, + "params.feature": { + "paramDirection": "input" + }, + "params.key": { + "paramDirection": "input" + }, + "params.tier1": { + "paramDirection": "input" + }, + "params.tier2": { + "paramDirection": "input" + } + }, + "props": {}, + "root": { + "children": [ + { + "meta": { + "name": "AlarmStatusTable" + }, + "position": { + "basis": "800px" + }, + "type": "ia.display.alarmstatustable" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Page" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Card/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Card/resource.json new file mode 100644 index 0000000..808b8f2 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Card/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "dcbc867865e394ede9de61a21e3c8f7991e2211c8d85cda1ed3932e89fcc8d52", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Card/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Alarm Journal/Card/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..1475c5dc39a5b1a8ab21c9ab3180d98644539944 GIT binary patch literal 4184 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 icwq)^-MYnJZT$}=WQnBlFM7xT0000l8|ZQ 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�K;hiZ>*{pwtI-vUyZ6(3lb1E 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

!k{+^lk_Qme5O-kAu$oLi!bG`TC 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%0Ae~0ERX{#Lw_|34cl;1UDDiJG<1yn}37pA*Z{! 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Audit Log/Card/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Audit Log/Card/view.json new file mode 100644 index 0000000..7630883 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Audit Log/Card/view.json @@ -0,0 +1,508 @@ +{ + "custom": {}, + "params": { + "action": "save", + "action_target": "Demo", + "action_value": 13.82, + "actor": "admin", + "actor_host": "hostname", + "audit_events_id": 1, + "event_timestamp": "9/11/18 04:28:55 PM", + "originating_context": 2, + "originating_system": "OnlineDemo", + "status_code": 0 + }, + "propConfig": { + "params.ack": { + "paramDirection": "input" + }, + "params.ackUser": { + "paramDirection": "input" + }, + "params.action": { + "paramDirection": "input" + }, + "params.action_target": { + "paramDirection": "input" + }, + "params.action_value": { + "paramDirection": "input" + }, + "params.active": { + "paramDirection": "input" + }, + "params.activeTimestamp": { + "paramDirection": "input" + }, + "params.actor": { + "paramDirection": "input" + }, + "params.actor_host": { + "paramDirection": "input" + }, + "params.audit_events_id": { + "paramDirection": "input" + }, + "params.daytank": { + "paramDirection": "input" + }, + "params.displayPath": { + "paramDirection": "input" + }, + "params.eventTime": { + "paramDirection": "input" + }, + "params.eventType": { + "paramDirection": "input" + }, + "params.eventValue": { + "paramDirection": "input" + }, + "params.event_timestamp": { + "paramDirection": "input" + }, + "params.humidity": { + "paramDirection": "input" + }, + "params.id": { + "paramDirection": "input" + }, + "params.key": { + "paramDirection": "input" + }, + "params.name": { + "paramDirection": "input" + }, + "params.originating_context": { + "paramDirection": "input" + }, + "params.originating_system": { + "paramDirection": "input" + }, + "params.priority": { + "paramDirection": "input" + }, + "params.priorityOrdinal": { + "paramDirection": "input" + }, + "params.state": { + "paramDirection": "input" + }, + "params.statusCode": { + "paramDirection": "input" + }, + "params.status_code": { + "paramDirection": "input" + }, + "params.t_stamp": { + "paramDirection": "input" + }, + "params.tank1": { + "paramDirection": "input" + }, + "params.tank2": { + "paramDirection": "input" + }, + "params.temp": { + "paramDirection": "input" + } + }, + "props": { + "defaultSize": { + "height": 171, + "width": 310 + } + }, + "root": { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "20px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.event_timestamp" + }, + "type": "property" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Title" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Actor" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.actor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Actor" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Action" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.action" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Action" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Target" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.action_target" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Target" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Value" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.action_value" + }, + "transforms": [ + { + "expression": "try(numberFormat(toDouble({value}), \"#,##0.##\"), {value})", + "type": "expression" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item Framework/Card/Item_Border", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "125px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Status Code" + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.status_code" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Bold_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Status Code" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Item", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Framework/Card/Card", + "marginLeft": "0px", + "marginRight": "0px", + "overflow": "visible" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Diagnostics/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Diagnostics/resource.json new file mode 100644 index 0000000..eee643f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Diagnostics/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "42e68724513eede228c373af00103906c73f7c540ec67e917701378defa715a3", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Diagnostics/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Diagnostics/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..4376b4b64572cb8d4f601aa649b92be5f14c0a03 GIT binary patch literal 63907 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Database/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Database/view.json new file mode 100644 index 0000000..ba0ad5e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Database/view.json @@ -0,0 +1,628 @@ +{ + "custom": {}, + "params": { + "database": "" + }, + "propConfig": { + "params.database": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 200, + "width": 300 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Value" + }, + "position": { + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.database" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Name" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "borderBottomColor": "#D5D5D5", + "borderBottomStyle": "solid", + "borderBottomWidth": "1px", + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "grow": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Is Available" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "30px", + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "database": "{view.params.database}" + }, + "tagPath": "[System]Gateway/Database/{database}/Available" + }, + "transforms": [ + { + "fallback": "#808080", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "#D90000" + }, + { + "input": true, + "output": "#00AC00" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "database": "{view.params.database}" + }, + "tagPath": "[System]Gateway/Database/{database}/Available" + }, + "transforms": [ + { + "fallback": "No", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "No" + }, + { + "input": true, + "output": "Yes" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Is Available" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "grow": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Is Available Through Failover" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "30px", + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "database": "{view.params.database}" + }, + "tagPath": "[System]Gateway/Database/{database}/AvailableThroughFailover" + }, + "transforms": [ + { + "fallback": "#808080", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "#D90000" + }, + { + "input": true, + "output": "#00AC00" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "database": "{view.params.database}" + }, + "tagPath": "[System]Gateway/Database/{database}/AvailableThroughFailover" + }, + "transforms": [ + { + "fallback": "No", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "No" + }, + { + "input": true, + "output": "Yes" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Is Available Through Failover" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "grow": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Active Connections" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "database": "{view.params.database}" + }, + "tagPath": "[System]Gateway/Database/{database}/ActiveConnections" + }, + "transforms": [ + { + "expression": "if({value} \u003d null, \"--\", numberFormat({value}, \"#,##0.##\"))", + "type": "expression" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Active Connections" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "grow": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Queries / Second" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "database": "{view.params.database}" + }, + "tagPath": "[System]Gateway/Database/{database}/QueriesPerSecond" + }, + "transforms": [ + { + "expression": "if({value} \u003d null, \"--\", numberFormat({value}, \"#,##0.##\"))", + "type": "expression" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Queries Per Second" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "grow": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Avg Query Time" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "database": "{view.params.database}" + }, + "tagPath": "[System]Gateway/Database/{database}/AvgQueryTime" + }, + "transforms": [ + { + "expression": "if({value} \u003d null, \"--\", numberFormat({value}, \"#,##0.##\"))", + "type": "expression" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Avg Query Time" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "grow": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Connection Saturation" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "55px", + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Performance/CPU Usage" + }, + "transforms": [ + { + "expression": "{value} * 100.0", + "type": "expression" + }, + { + "fallback": "#808080", + "inputType": "range", + "mappings": [ + { + "input": { + "max": 70, + "min": 0 + }, + "output": "#00AC00" + }, + { + "input": { + "max": 80, + "min": 70 + }, + "output": "#D9D900" + }, + { + "input": { + "max": 100, + "min": 90 + }, + "output": "#D90000" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "database": "{view.params.database}" + }, + "tagPath": "[System]Gateway/Database/{database}/ConnectionSaturation" + }, + "transforms": [ + { + "expression": "if({value} \u003d null, \"--\", numberFormat({value}, \"#,##0.##%\"))", + "type": "expression" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Connection Saturation" + }, + "position": { + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Spacer" + }, + "position": { + "basis": "5px", + "shrink": 0 + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Databases/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Databases/resource.json new file mode 100644 index 0000000..2f9637e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Databases/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "c7b4e1f9e9b32647de5a63c4efa191cedb3e65d441b60ed53303f3a2fe57ef56", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Databases/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Databases/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..52a6f7e46c93b20b1c4ab13acb9fcbff5d460cc0 GIT binary patch literal 27813 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Databases/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Databases/view.json new file mode 100644 index 0000000..3cf3ec4 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Databases/view.json @@ -0,0 +1,56 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "width": 265 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "FlexRepeater" + }, + "position": { + "shrink": 0 + }, + "propConfig": { + "props.instances": { + "binding": { + "config": { + "expression": "now(0)" + }, + "transforms": [ + { + "code": "\tinstances \u003d []\n\tres \u003d system.tag.browse(path\u003d\"[System]Gateway/Database\")\n\tfor result in res.getResults():\n\t\tinstances.append({\"database\":result[\"name\"]})\n\treturn instances", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "elementPosition": { + "basis": "auto", + "grow": 0, + "shrink": 0 + }, + "path": "Diagnostics/Embedded/Database", + "useDefaultViewHeight": false, + "useDefaultViewWidth": false + }, + "type": "ia.display.flex-repeater" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Device/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Device/resource.json new file mode 100644 index 0000000..c8bf6f9 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Device/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "d0e46bc1e0ee23171d8ec2158e8aa95c610a49019b01151e9361f53c8187dd68", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Device/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Device/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..c22e32793405282562c53517adf352e0608638ed GIT binary patch literal 6149 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 Br7Zve literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connection/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connection/view.json new file mode 100644 index 0000000..de472fc --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connection/view.json @@ -0,0 +1,289 @@ +{ + "custom": {}, + "params": { + "server": "_0:0:BuildAThon_Controller" + }, + "propConfig": { + "params.server": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 200, + "width": 300 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.server" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Name" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "borderBottomColor": "#D5D5D5", + "borderBottomStyle": "solid", + "borderBottomWidth": "1px", + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Is Available" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "30px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "server": "{view.params.server}" + }, + "tagPath": "[System]Gateway/Gateway Network/{server}/IsAvailable" + }, + "transforms": [ + { + "fallback": "#808080", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "#D90000" + }, + { + "input": true, + "output": "#00AC00" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "server": "{view.params.server}" + }, + "tagPath": "[System]Gateway/Gateway Network/{server}/IsAvailable" + }, + "transforms": [ + { + "fallback": "No", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "No" + }, + { + "input": true, + "output": "Yes" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Is Available" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Last Communication" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "server": "{view.params.server}" + }, + "tagPath": "[System]Gateway/Gateway Network/{server}/LastComm" + }, + "transforms": [ + { + "expression": "if({value} \u003d null, \"--\", dateFormat({value}, \"yyyy-MM-dd hh:mm:ss a\"))", + "type": "expression" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Last Communication" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Spacer" + }, + "position": { + "basis": "5px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connections/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connections/resource.json new file mode 100644 index 0000000..1180db2 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connections/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "e872ee13a3f0969f15b1c934e9fe18b582752ca6f6c2d51af9ec1e8820b7bc29", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connections/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Gateway Network Connections/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..5816c718f19904d7c78328f6018142887cf490f8 GIT binary patch literal 4542 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Label/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Label/view.json new file mode 100644 index 0000000..41f29d8 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Label/view.json @@ -0,0 +1,69 @@ +{ + "custom": {}, + "params": { + "align": "start", + "value": "Hello World!" + }, + "propConfig": { + "params.align": { + "paramDirection": "input", + "persistent": true + }, + "params.value": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 26, + "width": 299 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.textAlign": { + "binding": { + "config": { + "path": "view.params.align" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "path": "view.params.value" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Device/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Device/resource.json new file mode 100644 index 0000000..335149f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Device/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "8d9857d7a40bd81bd5d295c1da6b7d54676bed4beb02866ce931291ac81eaa74", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Device/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Device/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..1b24804650a90f9d1b21dbf85fed0564644ed10f GIT binary patch literal 2247 zcmeH}>pv3=AI3)xqbM=QEwp+tE5s;=91?do=Fmb66C&i0<}hP9+{uU3oiRm1 zHPgJB0}s5;e)IWVhN;46Z-5q;rN8<(H7aT_POcykl;LP0^i+4!NVePuSEK&SMo_h%oCe!nPONG9)% zhm6PxY_4@#ozXDIjrD^sI;EAA1UK)k>&qKw(7d2DOj()KY`RDz2vupe!oFP}kA zNm*H}T-n^_&Bo5>#2OgZPm_EWS2`5RI=f#mStp1Y3XWFM>rp^y=_a1|Xe#Xy%>k2e zuy-@Ijl%9SI1NdrWyK!P1uT{;9%C4z%BA82Q(3=#G}+mEl8}h z;w{D|;}ya&Yu=$pwm+VF%MQVkAJ`PdoS(Shy39aK^#x-@O@&)z0Y@rhW=6|*9-}wM3HsXz2bV!#TJPzJbgs_F)YRAA0BK=j%oPa0i>=hKvHgeSF^8*T>DgsuZ@nxsv=Lcu-TAcsKW) zHZ57yacZv14lIXDZHNj4UAVwhH);^>>e7o5;R*VDEPSVLPBwRCt1=rVT}xiS&LDj} zWv3pXMXCYT^7;Jy`s`=Vs>3HQi}jrQLtS0nG%dG_!LUB2Y|sgoQxp=0>FXc=wU8wi zke{J2wl7cq{<&@LU}uFTT2OQP^eKi)IG(i=z0}RHRo%-pnk;C4dmm}^gkD>(lqB*? z=$e?Ts;=|QSw;7gUNWWM?{NdD_up~qO8SeOQrC{wmGKLq@(*N<+`^e9wO2P1=JQV) zD!Fe!-T{nh+1xFb8?U0GVmht=ea!N=XF?!LZtu&UwF(XgJ=t1at-JqpXb1&1Pb}z> z{N-`uMu%W;S+1ggbaZr4+bndl6@ow@6m>BG7Z(>N6e^WMIZufj*b42;d~k%9R!*Sh zJ=NQMGpz#8^m=sMk?;tiF~V^+NE!b6HT`-y(wCX3gx)P}*Jx>K*Lax(C|Uhb?fU`W zf5N@ExOlgZw|1|qxTGZcXa&j%i#R8K`emBrTZ7Y3=vD!xAEr-Ds_HiPyHV<AJ_`iFmw(3CB(wWD6%PDAF?1OCm@hIoG@vQyFB)}4qrv~N&!agRSEHFFp?L)bp%|^{VO27jRr^#aJKeE2F&Px8 zeF6ghqzgjBF`YqhvsyWy;lz$*CAddDXLSztlUTD$vPx!vkUc#;G9XY#gtOiu*>VmJ z4z1iYs@&jZkNpKaolgI&va+tsNx}*FZHeZAY64cW$m;>*(RGi^qY$>f-_0b{^Ra{1 zoET(F$}p&Mc}I4M!f(AIA1m$-(dL^fBy_mODcpVH9VwRUy=)CDe|2jr5q==;0+S`? zBHtu;L2?U0*pPnm2G4oBf<;ce!`+Ho=Pl>z{P?XL{{PHKpNEPd! zY+}}Y*;C0pDJdzA011i|m#1HMcV9SUMLxjo@rDj=5DHPb0JYd#3}MU9zGI(MgtIG= zpJIpVkV{NA3OaD*xarh1vyH(BLft^@Bm$W4PHUVsOHNJI++FvCHW++vCKAu#fAHRF zs38!!gxM5QdvkMh7|egLNYW(WJUh$YP8FN!QbU}$?zvipX*~Nm*XlXuPnbs`7_i^g zXu15I^bnZpNx!#q$bb$S?%kZt9U$q})*W9V>7tq2KkB%Dz9KxUBkA~cNu_IjRu+1% zJ+xR5F)o%HkwWd(ucjJnpc|6Ta@49;kHM>YCD?Z{5=OsOnjW#MjB3ZKxVK9U!un`~ f|F8UyK1L97;SCHv2UA@S2MXZYRirh=3X}XVJ6LJ% literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Device/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Device/view.json new file mode 100644 index 0000000..84b0af3 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Device/view.json @@ -0,0 +1,348 @@ +{ + "custom": {}, + "params": { + "driver": "Simulator", + "enabled": true, + "name": "Device", + "state": "Connected" + }, + "propConfig": { + "params.driver": { + "paramDirection": "input", + "persistent": true + }, + "params.enabled": { + "paramDirection": "input", + "persistent": true + }, + "params.name": { + "paramDirection": "input", + "persistent": true + }, + "params.state": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 200, + "width": 300 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.name" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Name" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "borderBottomColor": "#D5D5D5", + "borderBottomStyle": "solid", + "borderBottomWidth": "1px", + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Driver" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.driver" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Driver" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Is Enabled" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "30px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "view.params.enabled" + }, + "transforms": [ + { + "fallback": "#808080", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "#808080" + }, + { + "input": true, + "output": "#00AC00" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "path": "view.params.enabled" + }, + "transforms": [ + { + "fallback": "No", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "No" + }, + { + "input": true, + "output": "Yes" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Is Enabled" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "State" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.state" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "State" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Spacer" + }, + "position": { + "basis": "5px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Devices/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Devices/resource.json new file mode 100644 index 0000000..ee17fcf --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Devices/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "fd6b9a2e759ff3db3908471619b6fd057d11c3e81d142e1cabff92366c321b96", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Devices/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Devices/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..4ac6bdb04b38e8a19277e6b8a23124c759a51606 GIT binary patch literal 4493 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 Z98Q6_>EYG^e?FUlJ?x6jf2@$0e*sc{)^Pv; literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Server/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Server/view.json new file mode 100644 index 0000000..9810b7c --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Server/view.json @@ -0,0 +1,405 @@ +{ + "custom": {}, + "params": { + "server": "Ignition OPC UA Server" + }, + "propConfig": { + "params.server": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 200, + "width": 300 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.server" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Name" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "borderBottomColor": "#D5D5D5", + "borderBottomStyle": "solid", + "borderBottomWidth": "1px", + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Is Enabled" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "30px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "server": "{view.params.server}" + }, + "tagPath": "[System]Gateway/OPC/Connections/{server}/Enabled" + }, + "transforms": [ + { + "fallback": "#808080", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "#808080" + }, + { + "input": true, + "output": "#00AC00" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "server": "{view.params.server}" + }, + "tagPath": "[System]Gateway/OPC/Connections/{server}/Enabled" + }, + "transforms": [ + { + "fallback": "No", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "No" + }, + { + "input": true, + "output": "Yes" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Is Enabled" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Is Connected" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "30px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "server": "{view.params.server}" + }, + "tagPath": "[System]Gateway/OPC/Connections/{server}/Connected" + }, + "transforms": [ + { + "fallback": "#808080", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "#D90000" + }, + { + "input": true, + "output": "#00AC00" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "server": "{view.params.server}" + }, + "tagPath": "[System]Gateway/OPC/Connections/{server}/Connected" + }, + "transforms": [ + { + "fallback": "No", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "No" + }, + { + "input": true, + "output": "Yes" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Is Connected" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "State" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "server": "{view.params.server}" + }, + "tagPath": "[System]Gateway/OPC/Connections/{server}/State" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "State" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Spacer" + }, + "position": { + "basis": "5px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Servers/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Servers/resource.json new file mode 100644 index 0000000..f6a4478 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Servers/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "80cbb725f6269703fa336766739dc80bb62f1a8da30c3e6d41fd5a9430738276", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Servers/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Servers/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..a26ab70543398a614d64f63c10d642566a9908c4 GIT binary patch literal 4185 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Servers/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Servers/view.json new file mode 100644 index 0000000..49630f9 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/OPC Servers/view.json @@ -0,0 +1,59 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "width": 265 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "FlexRepeater" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.instances": { + "binding": { + "config": { + "expression": "now(0)" + }, + "transforms": [ + { + "code": "\tinstances \u003d []\n\tres \u003d system.tag.browse(path\u003d\"[System]Gateway/OPC/Connections\")\n\tfor result in res.getResults():\n\t\tinstances.append({\"server\":result[\"name\"]})\n\treturn instances", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "elementPosition": { + "basis": "auto", + "grow": 0, + "shrink": 0 + }, + "path": "Diagnostics/Embedded/OPC Server", + "useDefaultViewHeight": false, + "useDefaultViewWidth": false + }, + "type": "ia.display.flex-repeater" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Redundancy/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Redundancy/resource.json new file mode 100644 index 0000000..4256cdf --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Redundancy/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "a81c9f26a5fb7cc0f6876ed13bb952d8b6d557265042c367fe88c75f275ab631", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Redundancy/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Redundancy/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..28288b8ebd2b7b2a06b36129550409936b7e67b5 GIT binary patch literal 2942 zcmeHJ=RX??8@07Ymqv{$_g3vvv$tmL(I7~OQG3@GqbgRfx^Ap{)hdZJG(w2c8bxZ9 z*sDfdF^g;OSP{J5zv2D*KEL02&WH2-&WCfpJjoz4Lv9WM4h9AWZet@o%PY>lg8MbL z|8D!9T?PhDePcasaHQiF5)K602#^YWN|_KC3|i+_Q7y-Za*RPR)Pl|-^I?)Ne+nj; zIZ;<ILt$MEQ~1 z2w1F`oOprOVpqCNTt7;KQm<&HvhYhJJz{sh4M!l58iE&t4%Z ztK{|FESu?*)gm`&%Z129xv^n%G*|dm8K@=D+gtzj=_B?1ZuiZZH;(?4hP^_m!R5Wk z=Ck7+Lp?o~Y#Ccj&7g36=Z$Bl^?`E+c6N3*cdzkkyB@iCx*f2;@RHHV$;^Dqc~2Hy zTMIednpW`|yw4~d1T00>`5(+zcZK7~`A_9^;c!kAJp5hM5V;@R57oMyPRY$>lz3dB zYdryNKAycDePF80EBAoi#@043C$p!&!>@DnhPIo1L(s=w*9(5c{3fOTrlQxNp1Zqy zB?Xyh_BN}qFg^cipzHcrX+z9;;|{DoWZ9%ZE#gLzVY>A{rf)l~K2o*}f`jE%)zro# zVcDEj6E34dpT|Ro050F($#4ljNF_U}#g$qaF07SA;DOYBMaA9yzO%g!p4d*Lnj^4K zQ$SGVemlGH60FZ}zw6DU2+t%lpo$3}F-aA3P8u&`XLT|5$+)R+bU(~_8#TA73fl-78&e8XRQK^!*giiF-K8Js_aZQ{hu?1=o-AdC z6v~$^7Mz{^L?mV9^}=K6dvg|`AOfchvU)XRWqDar%lOQWT3O({meM&1khZ?&tlgc> zhS0rgkTo$8Vq`9yip7R2FFY86D4$Ms!Z zHdvPp>vY#|pD4m8a5 zc1Ed&nS7;&NO9?uF;Llf1HY~U-7~9KYk11(bVVZ*fs}E4#8G!#KQu?KK8$(eZ0A)| zfDU_!o24nSV_dX<^2I5$mb;~RG@#T-j=oT_phKW!gpqgWyOiumHp*D2v;Rr z`u%4K9(~!8PA_tZT!Jb!B~@a#vSb>ElnFGBg_Qxxg=~Cx)K4WVFOsWe63fP7GSpC#etrP0K~3sR>Pj zzxJ>fFd>#(S-i-EmqtJ!m>&W1oBQ^1=I1ZK=86MD=aFjhlzxXyG1K;*O!4upU*y5M zJhI}@z~XQ5kRJT5%VARFT3b#AUlz_;s?niX#LfPV>*KmHe~U^0v^lE?ucXY%0a2DMh4(NV7pl|Dzw`ajqrV)B{4NCgc z7@fuBnqk)iaBOqUct?(A-}FA~6j^4na+C~_m#n0P@61-DfCxsjUqegmG=&8PHxy03 z0#Uq)j-ER$;ZGht>a2HgnqX&3No`ukIdNI)v}0Nt8h)!yL6O84TozRb31ZN$G@%X8 za$n8_gxz`0$c70dCL5LWW!@Tnbx#yU-B8t@=kQ6;oAizf$x^U+awdqMN)?9=e%f#5 z7WMQAdb_067$a|#mqq=q6B$*MY4$KnbbB z!^o4XKEawVlRg>tK}*sBRYe(TSN=|=HDi58ws%(p2{jC$Sd@p# z7ftWrD${%wQ;m~U4^<+(iM7)5(;<=xLLfXk@*6o=aa&p`EGoh7C?%k2fRMiT=;HIR+pg=b6ljIg@u|JLgR#KtaR?>MFTQ|xdB=0>__9w zhdEu$jgChAcz2AVx0#$!t)}k@BJ8hRjex&PE8JnWv{P0jj87gyU$&F$11ZP6pmyM4b*Schk zV#Y7_^XthurVKj8#2=HLg3kw@%2N~X4cB?y6d+$7p);CPj9!=hbl(`|QOt}n2jy17 zDw?_$+fw*n&i&e{;1!dzKwTScn(=ZED+`TPPo%wlRMLLI*b`exj32M@7sMzi+>-Zw zpCGNOCWz$bZlIqmHrP7Q?MZ(>I*QLL25o*4d&ZBvx0N$#=-GYe3{6it}C4UA#=dyg!COQpdWb6ZqC)a?Vx7OSRwh!FBRn-ssTjB*Pi_HJ! d|2dXLj_z$1jrM3V7 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Redundancy/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Redundancy/view.json new file mode 100644 index 0000000..ce682a7 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Redundancy/view.json @@ -0,0 +1,576 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "height": 200, + "width": 300 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Activity Level" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Redundancy/ActivityLevel" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Activity Level" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Role" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Redundancy/Role" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Role" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Is Active" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "30px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Redundancy/IsActive" + }, + "transforms": [ + { + "fallback": "#808080", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "#808080" + }, + { + "input": true, + "output": "#00AC00" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Redundancy/IsActive" + }, + "transforms": [ + { + "fallback": "No", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "No" + }, + { + "input": true, + "output": "Yes" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Is Active" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Is Master" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "30px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Redundancy/IsMaster" + }, + "transforms": [ + { + "fallback": "#808080", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "#808080" + }, + { + "input": true, + "output": "#00AC00" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Redundancy/IsMaster" + }, + "transforms": [ + { + "fallback": "No", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "No" + }, + { + "input": true, + "output": "Yes" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Is Master" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Peer Id" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Redundancy/Connection/PeerId" + }, + "transforms": [ + { + "expression": "coalesce({value}, \"--\")", + "type": "expression" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Peer Id" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Peer Connected" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "30px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Redundancy/Connection/IsConnected" + }, + "transforms": [ + { + "fallback": "#808080", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "#D90000" + }, + { + "input": true, + "output": "#00AC00" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Redundancy/Connection/IsConnected" + }, + "transforms": [ + { + "fallback": "No", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "No" + }, + { + "input": true, + "output": "Yes" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Peer Connected" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Session/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Session/resource.json new file mode 100644 index 0000000..d7c7720 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Session/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "792b57f291d4c503b5f0012e75e0514c0ad177e464df2fdf0c0f94f514ddfae9", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Session/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Session/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..c0bff8249739b63bf77072c0ec44ae25c6256e26 GIT binary patch literal 4839 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Session/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Session/view.json new file mode 100644 index 0000000..65c9981 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/Session/view.json @@ -0,0 +1,880 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "height": 300, + "width": 300 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Id" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "session.props.id" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Id" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Host" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "session.props.host" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Host" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Locale" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "session.props.locale" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Locale" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Timezone" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "session.props.timeZoneId" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Timezone" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Theme" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "session.props.theme" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Theme" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Authenticated" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "30px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "session.props.auth.authenticated" + }, + "transforms": [ + { + "fallback": "#808080", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "#D9D900" + }, + { + "input": true, + "output": "#00AC00" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "path": "session.props.auth.authenticated" + }, + "transforms": [ + { + "fallback": "No", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "No" + }, + { + "input": true, + "output": "Yes" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Authenticated" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "User" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{session.props.auth.user.firstName} + \" \" + {session.props.auth.user.lastName}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "User" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Username" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "session.props.auth.user.userName" + }, + "transforms": [ + { + "expression": "coalesce({value}, \"--\")", + "type": "expression" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Username" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Email" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "session.props.auth.user.email" + }, + "transforms": [ + { + "expression": "coalesce({value}, \"--\")", + "type": "expression" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Email" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "User Id" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "coalesce({value}, \"--\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "User Id" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Roles" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.instances": { + "binding": { + "config": { + "path": "session.props.auth.user.roles" + }, + "transforms": [ + { + "code": "\tinstances \u003d []\n\tif value !\u003d None:\n\t\tfor role in value:\n\t\t\tinstances.append({\"value\":role, \"align\":\"end\"})\n\treturn instances", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "direction": "column", + "elementPosition": { + "basis": "auto", + "grow": 0, + "shrink": 0 + }, + "path": "Diagnostics/Embedded/Label", + "useDefaultViewHeight": false, + "useDefaultViewWidth": false + }, + "type": "ia.display.flex-repeater" + } + ], + "meta": { + "name": "Roles" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Security Levels" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "session.props.auth.securityLevels" + }, + "transforms": [ + { + "code": "\timport json\n\ttry:\n\t\treturn json.dumps(json.loads(str(value)), indent\u003d4)\n\texcept:\n\t\treturn \"{}\" if value \u003d\u003d None or len(value) \u003d\u003d 0 else value", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "enabled": false, + "style": { + "backgroundColor": "#FFFFFF" + }, + "wrap": "off" + }, + "type": "ia.input.text-area" + } + ], + "meta": { + "name": "Security Levels" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System Performance/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System Performance/resource.json new file mode 100644 index 0000000..eeff395 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System Performance/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "62e47908746843bf2dfc272d610add4c29b44ad37901f1a05730efbd911632c1", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System Performance/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System Performance/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..891713fa287a5834ee3351050fc9b6b56af732f6 GIT binary patch literal 3296 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 EKamkVPXGV_ literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System Performance/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System Performance/view.json new file mode 100644 index 0000000..ba78160 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System Performance/view.json @@ -0,0 +1,603 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "height": 200, + "width": 300 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "CPU Usage" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "55px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Performance/CPU Usage" + }, + "transforms": [ + { + "expression": "{value} * 100.0", + "type": "expression" + }, + { + "fallback": "#808080", + "inputType": "range", + "mappings": [ + { + "input": { + "max": 70, + "min": 0 + }, + "output": "#00AC00" + }, + { + "input": { + "max": 80, + "min": 70 + }, + "output": "#D9D900" + }, + { + "input": { + "max": 100, + "min": 90 + }, + "output": "#D90000" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Performance/CPU Usage" + }, + "transforms": [ + { + "expression": "numberFormat({value}, \"##0.##%\")", + "type": "expression" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CPU Usage" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Available Disk Space" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Performance/Available Disk Space (MB)" + }, + "transforms": [ + { + "expression": "numberFormat(\r\n\tif({value} \u003e\u003d 1024*1024, {value} / (1024*1024),\r\n\tif({value} \u003e\u003d 1024, {value} / 1024,\r\n\t{value})),\r\n\"#,##0.##\") + \r\n\r\nif({value} \u003e\u003d 1024*1024, \"TB\",\r\nif({value} \u003e\u003d 1024, \"GB\",\r\n\"MB\")) ", + "type": "expression" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Disk Space" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Disk Utilization" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "55px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Performance/CPU Usage" + }, + "transforms": [ + { + "expression": "{value} * 100.0", + "type": "expression" + }, + { + "fallback": "#808080", + "inputType": "range", + "mappings": [ + { + "input": { + "max": 70, + "min": 0 + }, + "output": "#00AC00" + }, + { + "input": { + "max": 80, + "min": 70 + }, + "output": "#D9D900" + }, + { + "input": { + "max": 100, + "min": 90 + }, + "output": "#D90000" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Performance/Disk Utilization" + }, + "transforms": [ + { + "expression": "numberFormat({value}, \"##0.##%\")", + "type": "expression" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Disk Utilization" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Max Memory" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Performance/Max Memory" + }, + "transforms": [ + { + "expression": "numberFormat(\r\n\tif({value} \u003e\u003d 1024*1024*1024*1024, {value} / (1024*1024*1024*1024),\r\n\tif({value} \u003e\u003d 1024*1024*1024, {value} / (1024*1024*1024),\r\n\tif({value} \u003e\u003d 1024*1024, {value} / (1024*1024),\r\n\tif({value} \u003e\u003d 1024, {value} / 1024,\r\n\t{value})))),\r\n\"#,##0.##\") + \r\n\r\nif({value} \u003e\u003d 1024*1024*1024*1024, \"TB\",\r\nif({value} \u003e\u003d 1024*1024*1024, \"GB\",\r\nif({value} \u003e\u003d 1024*1024, \"MB\",\r\nif({value} \u003e\u003d 1024, \"KB\",\r\n\"B\"))))", + "type": "expression" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Max Memory" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Memory Usage" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Performance/Memory Usage" + }, + "transforms": [ + { + "expression": "numberFormat(\r\n\tif({value} \u003e\u003d 1024*1024*1024*1024, {value} / (1024*1024*1024*1024),\r\n\tif({value} \u003e\u003d 1024*1024*1024, {value} / (1024*1024*1024),\r\n\tif({value} \u003e\u003d 1024*1024, {value} / (1024*1024),\r\n\tif({value} \u003e\u003d 1024, {value} / 1024,\r\n\t{value})))),\r\n\"#,##0.##\") + \r\n\r\nif({value} \u003e\u003d 1024*1024*1024*1024, \"TB\",\r\nif({value} \u003e\u003d 1024*1024*1024, \"GB\",\r\nif({value} \u003e\u003d 1024*1024, \"MB\",\r\nif({value} \u003e\u003d 1024, \"KB\",\r\n\"B\"))))", + "type": "expression" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Value" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Memory Usage" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 1, + "shrink": 1 + }, + "props": { + "style": { + "classes": "Framework/Card/Label" + }, + "text": "Memory Utilization" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Value" + }, + "position": { + "basis": "55px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Performance/CPU Usage" + }, + "transforms": [ + { + "expression": "{value} * 100.0", + "type": "expression" + }, + { + "fallback": "#808080", + "inputType": "range", + "mappings": [ + { + "input": { + "max": 70, + "min": 0 + }, + "output": "#00AC00" + }, + { + "input": { + "max": 80, + "min": 70 + }, + "output": "#D9D900" + }, + { + "input": { + "max": 100, + "min": 90 + }, + "output": "#D90000" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[System]Gateway/Performance/Memory Utilization" + }, + "transforms": [ + { + "expression": "numberFormat({value}, \"##0.##%\")", + "type": "expression" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderRadius": "4px", + "classes": "Framework/Card/Value", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Memory Utilization" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Framework/Card/Row" + }, + "wrap": "wrap" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System/resource.json new file mode 100644 index 0000000..5646c78 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "bf7064a1da8fce33c59ecf31a808449d58b18d03cc5feb635dde84c951546495", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Diagnostics/Embedded/System/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..ca52d8aff1731546325a35db6b623590981340df GIT binary patch literal 4454 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Alarm Windows/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Alarm Windows/view.json new file mode 100644 index 0000000..427d170 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Alarm Windows/view.json @@ -0,0 +1,98 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "width": 260 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Features" + }, + "position": { + "grow": 1, + "shrink": 0 + }, + "props": { + "backActionStyle": { + "backgroundColor": "#5C7080", + "classes": "Menu_All_Header", + "color": "#FFFFFF" + }, + "backActionText": "All Features", + "headerStyle": { + "classes": "Menu_Item_Selected", + "color": "#2E2E2E", + "fontSize": "14px", + "fontWeight": "normal", + "textTransform": "uppercase" + }, + "itemStyle": { + "classes": "Menu_Item", + "color": "#2E2E2E", + "fontSize": "14px", + "fontWeight": "normal" + }, + "items": [ + { + "items": [], + "label": { + "icon": { + "path": "" + }, + "text": "Alarms" + }, + "navIcon": {}, + "showHeader": false, + "target": "/alarms" + }, + { + "items": [], + "label": { + "icon": { + "path": "" + }, + "text": "Alarm History" + }, + "navIcon": {}, + "showHeader": false, + "target": "/alarm_journal" + }, + { + "items": [], + "label": { + "icon": { + "path": "" + }, + "text": "Alarm Analysis" + }, + "navIcon": { + "color": "#6C6C6C", + "path": "" + }, + "showHeader": true, + "target": "/alarm_analysis" + } + ], + "style": { + "backgroundColor": "#DADDE0", + "classes": "Menu" + } + }, + "type": "ia.navigation.menutree" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "classes": "Menu" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Menu/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Menu/resource.json new file mode 100644 index 0000000..dd00834 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Menu/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "cab2b04ce03c2e58b6c9e9235ffc00b2c72854635d010cef09b07c107bd8996d", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Menu/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Menu/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..47a225f5fcad530aa33bd2cb04b14adea371e6dc GIT binary patch literal 11502 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 Il3#xQFO%3^i~s-t literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Menu/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Menu/view.json new file mode 100644 index 0000000..1cef814 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Menu/view.json @@ -0,0 +1,187 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "width": 260 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Features" + }, + "position": { + "grow": 1, + "shrink": 0 + }, + "props": { + "backActionStyle": { + "backgroundColor": "#5C7080", + "classes": "Menu_All_Header", + "color": "#FFFFFF" + }, + "backActionText": "All Features", + "headerStyle": { + "classes": "Menu_Item_Selected", + "color": "#2E2E2E", + "fontSize": "14px", + "fontWeight": "normal", + "textTransform": "uppercase" + }, + "itemStyle": { + "classes": "Menu_Item", + "color": "#2E2E2E", + "fontSize": "14px", + "fontWeight": "normal" + }, + "items": [ + { + "enabled": true, + "items": [], + "label": { + "icon": { + "path": "material/zoom_out_map" + }, + "text": "Map Overview" + }, + "navIcon": { + "color": "", + "path": "" + }, + "resetOnClick": false, + "showHeader": true, + "style": { + "classes": "" + }, + "target": "/", + "visible": true + }, + { + "items": [], + "label": { + "icon": { + "path": "material/home" + }, + "text": "Process Overviews" + }, + "navIcon": { + "color": "#6C6C6C", + "path": "" + }, + "showHeader": true, + "target": "/site_menu" + }, + { + "items": [], + "label": { + "icon": { + "path": "material/alarm" + }, + "text": "Alarm Windows" + }, + "navIcon": {}, + "showHeader": false, + "target": "/alarm_windows" + }, + { + "enabled": true, + "items": [], + "label": { + "icon": { + "path": "material/tab" + }, + "text": "Trends" + }, + "navIcon": { + "color": "#6C6C6C", + "path": "" + }, + "showHeader": true, + "style": { + "classes": "" + }, + "target": "/trends", + "visible": true + }, + { + "enabled": true, + "items": [], + "label": { + "icon": { + "path": "material/pending_actions" + }, + "text": "Audit Log" + }, + "navIcon": { + "color": "#6C6C6C", + "path": "" + }, + "showHeader": true, + "style": { + "classes": "" + }, + "target": "/audit_log", + "visible": true + }, + { + "enabled": true, + "items": [], + "label": { + "icon": { + "path": "material/trending_up" + }, + "text": "Diagnostics" + }, + "navIcon": { + "color": "#6C6C6C", + "path": "" + }, + "showHeader": true, + "style": { + "classes": "" + }, + "target": "/diagnostics", + "visible": true + }, + { + "enabled": true, + "items": [], + "label": { + "icon": { + "path": "material/filter" + }, + "text": "Reports" + }, + "navIcon": { + "color": "", + "path": "" + }, + "showHeader": true, + "style": { + "classes": "" + }, + "target": "/report", + "visible": true + } + ], + "style": { + "backgroundColor": "#DADDE0", + "classes": "Menu" + } + }, + "type": "ia.navigation.menutree" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "classes": "Menu" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Site Menu/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Site Menu/resource.json new file mode 100644 index 0000000..4c46042 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Site Menu/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "ad72de2094099cf22a6e6faed0496e363fca9cca9b295901bd21ecfc02cb02ac", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Site Menu/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Site Menu/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..93fe087dd09483a22413243ca83b564782971247 GIT binary patch literal 5735 zcmeI0`#%#3AIB>>oyz5$BOEE}l;mC{RHzV=Wz?8!$y{QVxh!n+RHAYVvCL&rTDj)V z=8_g-ZnH7Q%xx~SS>`e}m#62ycz!rPeZD`xU!U*y^Lc$=IsmMt4;?+UXU`sKTN_Kq zU;22@p1pCu@B1~GFATWs*`uIqYkBR?V^7}brjznQ*4O2^K1R&F;>rxh=?uoHk*zdl zQBRQm@-5%?iX>>a&eazr_bL5*OLk+k=k7_(>c=<4*29>kOG7$;3^Rfc265GE>h;mX zMKhm8v^#xtX6aC1!`h*yudgUR;WrbH{=CYPQkhp4fF+9)tCt}y9hq5}LE-+VTjj!Db!ABafXQa=+%A7 zE9rK=cW-nOn0QnYPKpQ9Uzo9vmU#J>lq>mHS^ULZ$`mBlTiUxuf#{38q>;&Z7SpbW zmU%JBMW$|5zDX<&Jb3V>0kO+QGUXO^*|zheL@4Oyb@+|UGj+%as^%u3Hq-NrS$%e9 zK3Ow>5prmaK|ApBs6A+MqsXdS6(r9-{lS;Ee(Mrya(m6ls)6ukwWRlRk}1_^>RB}Q z7IV7mqeoRuLy@tG&ihK}cTJl<*SwD(AxDO)VPHr$l^rJb^$Nome)NZHW%lItEVOR$ z`FKA+=L=FQhr5169n0hqUL~*bk`mu+RNwM&y;ex!L>e%1%WTQopRzn%N;JrXP@|<@ z(hO&IIh^YK1dxqgtA|C|D{bou2+a}iAmE52e&*OqNW>YaPvMo|z)zZ`Q7SJj;Z=W) z{ub}#SX3tiirFs4DJps58WR#Pu(!yt-Dn8uNKDH;ru?I`yT9>tTVr-+txypVBAhls z{Z@%hc1&tNYbE15I-L-B=_q+6+f#I<*FDL1q6gpsaHI~GksDoIT-K294C@+OCr#uf z)a9UTTf)cwO)xRP6pvqia;8r{xzQiSQDMD)=4Y*Ju-wUzFOCWLq*mG(EdWD3L+a@K z?pGVN_6e)CXL&LHcWth!c`L?+JgD0PPspspN{JVDAowz<1UIY(Z-;G~g;{ zX@qXAwkN@;EHsbsre`+sUWeuX3J**viDQ%Uu zniG|v&i$jQmNeKAa66Np*({!wm30~*V{iDiGX#NBx~wcXuHv#)3VqZ8>|*YFC^y!5 z)|%>=ezGfgFwrxv_p?5}^D9>}Sty-Iyue;l_;^T(2P zO9PB9nDy$ELHQ+`npm()cmJL2+oxJ5K3lxb8UGSexqaO^3b8=8oL6Ksr%{g_8%OcKQ@0)8yAtE4}nHREU zj^4yMU5*!Re4yJE*TLFMd0d#0lr{|fp?~yws%VUpOtrCuAF!l*29J@Xy?h`abcuoy z0oTUSHNwvBfn!uF*5K!WLmt>A(7%Yrar1295abkL^T)Z-CZ-IS4V8nFUGtk$G*kY& zAL1jFNirK^husd+;1@onx?|Jx%b_~GL!gurZJ8nFj&5mPxz^om`Y64WI!nL9q1q9W z5#wWo^tUVyXF9m}#;pT9?B@LT?$7Gt4hKvY>+xC1 zAc|3+>H_u&Xjn32u$~Zp+9e}0n_SgWRpT=j@}t?F+MX5=-C2+Duh9Ox4hpy*5=qv6 zp_Nb^51RWvY~yC_94MZ6B~TCMx9%(z1dJ8{_FEB8lxUZ6T~6ak7Y$k-3il@+cIwGR z1;*=MyYo?LDQo#Ysfr@u{59C*7&m5UXncgSJD@Fj5#wc46W)vM&YM_Rn!V}f)-gO) zJF%<CWzFX_uroPhv8d@bq((kfDw~F+>zTwrP2QM$v=`k8p&7JhWwR4CrTm9|i<{R6z zOT;^Iwvjgr+(sM<^o5SK84I~~Abc<-05{_>cf0E}_q+0ymFM4{R)&T#5GKI%0s|e$ zP+=qKM^^%HQyfaL*l`$E$~~bu_a_S9Jn<6Fsy?KGxN6ebVD!j4^o0zfU-43?Z7`&$ ztb1REZbOrz(?0gqR^GupVw2+Z5=eF1+pjfx>ToV&P}6;w{x_ zd^|!SUR#6snSKJ53amx%T-8bkL0%QP*TG9EClgREuhn1<4c_d|v!R|4x5#f5StT9< zO^e7Nx$&6Sn;Yrh+Sb|Xk{D6yoWRst>GLpNg{{|qjM=>P$B|Lq6zMs`9Q(K}qWN#( zFibuyRj>LpZtvRsFv4>WXNd*AT6)bv`C|GTb-dS(w7X*i#*W>5Ku!uoR)a z-_sd1WZs|gxjggKpF)ZwyZ~+SyK(dPj-r;mbeZaz^%u`S$8;4hAzeRF5#3sKhr=}) zgRps=3swnm_TjKcQtvxN%Bt+tTm*M;bD_PeKm6?Z z!zmpSD2vDMV86?*N^h1tsdY!!f{Y64)@5U&8ioN(UYGDzg=$hWYsGt7;Iig-#vV0C*g3w$BOaZ2vz6gWleOxd zcOqUQc`>b#@*KhW$DE?PEie~_KU!tb_&$RfF;7Ku9vElSQutoL2>uB1!<8I(iM7Xd zyvkI);26g&b- zOB*+cespwI=~A&Ys&9?3I?7_9-r~ zjil2yBfosC_IbSdLr$u^StST<7Lapvzz1YP;zwX^tnpA6M?>rvre|o~nax=*?^`@{ z+!6|x@E;ewlz1u~9|75yiF4Aw%@l2|wqum%Cewp0roT>ApkivyS!2@53>sbKy0br5 zlwV2+RHze<=5f*umF_}G)=z~A+N1SDHU9%mykcPy9%37>6^1TpbZBaB7CkLTzrdX{ zu~6@&v9<(s7CRcyySgdF`X!T|Omm4s^;(I&bp&tU5&45y#ib5;?j`8vavk4~u1X*! zKP&7GgQ6@-&(w)r4iS)(&r=CwB9&NOZM4W53LU?apP#ot$16P2VE!?yRs1ji1ehi@2Gc8F7toK2~^8yt~Od zUT<;eH%0D2XRU*BUcQU<)|a1>H`qezxiH1qT=&XL7+!*SBkh+P1ylJ^|}dAExs)|VAmA%?ZZ*(-m+ z)E}lVp)u~~!xSP%mrw5&m$$%<8Ac(|@s}GnD#5Hv=ZyN@fkN-_oi^DzH0}ZJOQ#57S{92mKXJ08n-aRsU^<_nT6zOgSz|k-5!~)7 zZd9S0YMP-WX~^rji`|NYQn%_5Q%5h0iSeG&VTJ)=Y8Iqtj1unobc=@YtzFsbHEIoF ziL}jpk~f~YzSOE%u81*8;Z}Nt@%daOdt&=tYMB*k#og5t?5sF&kepB)4H{W+yaD&F=EmdkdWfQ_R$zP21B}J$Tb+)>fy%{!A9)WjaHDf&y2`@i z!6}F+`QY)l@*q^3-rBzb)YqP6h7D*?^OYT2FILR z7t3`$FKU6E)S{_H`K}4ow9?Y#w zv5*k~Xc>`4232Shcxh3!K(Y){@%HB-=#MJ!KF zaYT)>IAdMKBzO0(>}k)<-&ZgoCb*z)s_Sm5xa5hixyrA^ntalH@_&ie(nUD=rM6k^ zhuID3GiUIbAo|~iZ*yY|3=PPiTF3Jv`9HpWYMt#hBkuiD6a6)K&&2n$djN_1{*`|b m{Of{$7vcZx7JS>?cOl*7TxHs+pT8c+du*)$mSxxPJ^e4N?tu>g literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Site Menu/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Site Menu/view.json new file mode 100644 index 0000000..0111080 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Docks/Site Menu/view.json @@ -0,0 +1,100 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "width": 260 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Features" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "props": { + "backActionStyle": { + "backgroundColor": "#5C7080", + "classes": "Menu_All_Header", + "color": "#FFFFFF" + }, + "backActionText": "All Features", + "headerStyle": { + "classes": "Menu_Item_Selected", + "color": "#2E2E2E", + "fontSize": "14px", + "fontWeight": "normal", + "textTransform": "uppercase" + }, + "itemStyle": { + "classes": "Menu_Item", + "color": "#2E2E2E", + "fontSize": "14px", + "fontWeight": "normal" + }, + "items": [ + { + "enabled": true, + "items": [], + "label": { + "icon": { + "path": "" + }, + "text": "Prime Process Objects Demo" + }, + "navIcon": { + "color": "", + "path": "" + }, + "showHeader": true, + "style": { + "classes": "" + }, + "target": "/hmi_demo", + "visible": true + }, + { + "enabled": true, + "items": [], + "label": { + "icon": { + "path": "" + }, + "text": "PLANTPAX INSTANCES" + }, + "navIcon": { + "color": "", + "path": "" + }, + "resetOnClick": false, + "showHeader": true, + "style": { + "classes": "" + }, + "target": "/plantpax", + "visible": true + } + ], + "style": { + "backgroundColor": "#DADDE0", + "classes": "Menu" + } + }, + "type": "ia.navigation.menutree" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "classes": "Menu" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Card/Card/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Card/Card/resource.json new file mode 100644 index 0000000..7964fe2 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Card/Card/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "c7ac0bab2a9bbaeba6f48ae360fe240a3c56af31f47f1a4a1f3250b2bdb79d73", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Card/Card/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Card/Card/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..37e3a2f87cb2058fa88b88c4834432ee061946a9 GIT binary patch literal 1738 zcmeAS@N?(olHy`uVBq!ia0vp^n}K)<2OE&Qb6oxc0|VPcPZ!6KinzD44(5lHO1SRd zwjkGc@+DptgH575NeW&G%~yNNma;6>&2zo5#ce68=M91Gs|%cZmV7W@AzivOHPJN7 zKo)!Q{*%gV|=SV%ay13g&P=`-}^ha`jb^kMnpt}$Ft|p7jN8X z_@mLmRLEnJ%B)$l7A0n7X;rRxIx)+Jd9GrCe4~ogvgOMshw^W4U}XyRU*Pl1X`#UJ ze%@pDj~{>h@$Br!gDW4-&=yJhad@GG&9Azu8;hCUlhV?xYWMB_?l8xq?)%5TwzeOC z9ds`I`APnxUw!pA)P>#H`%DAY5h8vU>STh-J1S7I-FTzAq&iSF+1kDvXM4J|DNrOoZ6qPN)y z#@ByME&2ZCSnFryjmtM1AN&7LJFar8wVi#n+Pzn=`zLiQ{jRxpoyzOpnKP^3SJpj= zvH5%ET*T#l&+dKxe)`VOJD)$ko7k9<`Ow_;pH|3!(bFkKc}5JcWznvv-5Vgveon6_B;%B&iv_rZccCR?Rj4RV@}Sk z{Q3CQz1rW8zOB7obEYDJ>&m&-pX>>5b0WX1J3iYLzMzajp%~2b+;6h7nu}otC)3Nh zI~Olrtj2d(@zrbwqwC-QnU?-Cn(6MY?-m^$?JGOsaEN~6(xppp?5z$z%C0f_=cT3h zlV4v`*XH}|#F66p;M7$6 z2URW#3C<1wGg6FMT|<~otPxVlcV?KGyKF&+7sJfZrYE@^3Y*W0hy-#fZ1$S4hnF#B z+sq~sWFI0{Z>Fj~!W z^0t6O+H6gYMM4f~Qxz(unNH-4S~ePtqX~qpd?v;+Nu@L7*|lreGV=1aX}EH7tZ6xL e=T6KWMwc10t~i%pT?VY97(8A5T-G@yGywo$_~|MD literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Card/Card/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Card/Card/view.json new file mode 100644 index 0000000..f7b284c --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Card/Card/view.json @@ -0,0 +1,131 @@ +{ + "custom": {}, + "params": { + "params": {}, + "path": "", + "title": "Card Title", + "useDefaultHeight": false, + "useDefaultWidth": false + }, + "propConfig": { + "params.params": { + "paramDirection": "input", + "persistent": true + }, + "params.path": { + "paramDirection": "input", + "persistent": true + }, + "params.title": { + "paramDirection": "input", + "persistent": true + }, + "params.useDefaultHeight": { + "paramDirection": "input", + "persistent": true + }, + "params.useDefaultWidth": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 339, + "width": 369 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "20px", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.title" + }, + "type": "property" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Framework/Card/Title" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "EmbeddedView" + }, + "position": { + "basis": "auto", + "display": true, + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.params": { + "binding": { + "config": { + "path": "view.params.params" + }, + "type": "property" + } + }, + "props.path": { + "binding": { + "config": { + "path": "view.params.path" + }, + "type": "property" + } + }, + "props.useDefaultViewHeight": { + "binding": { + "config": { + "path": "view.params.useDefaultHeight" + }, + "type": "property" + } + }, + "props.useDefaultViewWidth": { + "binding": { + "config": { + "path": "view.params.useDefaultWidth" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Framework/Card/Embedded" + } + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Framework/Card/Card" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Cards/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Cards/resource.json new file mode 100644 index 0000000..52f85dd --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Cards/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "dfab2173c58c34daed68dcf1f2810aa1412ef2231ea1a576279eea674c327c6a", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Cards/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Cards/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..8cb03c081bed32ec2699cd034e2d92ae7608ad0d GIT binary patch literal 5352 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Responsive View/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Responsive View/view.json new file mode 100644 index 0000000..0ec04f3 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Responsive View/view.json @@ -0,0 +1,185 @@ +{ + "custom": {}, + "params": { + "cardViewPath": "", + "config": [], + "data": [], + "filterEnabled": false, + "header": true, + "pager": true, + "rowsPerPage": 25, + "tableMinHeight": 0 + }, + "propConfig": { + "params.aqwerda": { + "paramDirection": "input" + }, + "params.cardViewPath": { + "paramDirection": "input" + }, + "params.config": { + "paramDirection": "input" + }, + "params.data": { + "paramDirection": "input" + }, + "params.filter": { + "paramDirection": "input" + }, + "params.filterEnabled": { + "paramDirection": "input", + "persistent": true + }, + "params.head": { + "paramDirection": "input" + }, + "params.header": { + "paramDirection": "input" + }, + "params.pager": { + "paramDirection": "input" + }, + "params.row": { + "paramDirection": "input" + }, + "params.rows": { + "paramDirection": "input" + }, + "params.rowsPer": { + "paramDirection": "input" + }, + "params.rowsPerPag": { + "paramDirection": "input" + }, + "params.rowsPerPage": { + "paramDirection": "input" + }, + "params.tableMinHeight": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 857, + "width": 928 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Table" + }, + "position": { + "size": "large" + }, + "propConfig": { + "props.params.config": { + "binding": { + "config": { + "path": "view.params.config" + }, + "type": "property" + } + }, + "props.params.data": { + "binding": { + "config": { + "path": "view.params.data" + }, + "type": "property" + } + }, + "props.params.filterEnabled": { + "binding": { + "config": { + "path": "view.params.filterEnabled" + }, + "type": "property" + } + }, + "props.params.header": { + "binding": { + "config": { + "path": "view.params.header" + }, + "type": "property" + } + }, + "props.params.pager": { + "binding": { + "config": { + "path": "view.params.pager" + }, + "type": "property" + } + }, + "props.params.rowsPerPage": { + "binding": { + "config": { + "path": "view.params.rowsPerPage" + }, + "type": "property" + } + }, + "props.style.minHeight": { + "binding": { + "config": { + "path": "view.params.tableMinHeight" + }, + "type": "property" + } + } + }, + "props": { + "path": "Framework/Table Card Layout/Table" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Cards" + }, + "propConfig": { + "props.params.data": { + "binding": { + "config": { + "path": "view.params.data" + }, + "type": "property" + } + }, + "props.params.viewPath": { + "binding": { + "config": { + "path": "view.params.cardViewPath" + }, + "type": "property" + } + } + }, + "props": { + "path": "Framework/Table Card Layout/Cards", + "style": { + "overflow": "visible" + } + }, + "type": "ia.display.view" + } + ], + "custom": { + "filterEnabled": false + }, + "meta": { + "name": "root" + }, + "props": { + "breakpoint": 650, + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.breakpt" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Table/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Table/resource.json new file mode 100644 index 0000000..477652a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Table/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "d2a7e540e7ba366f0d3e00e76bac26e9e6c09552dcc7a6b784cdfbd8023a6b00", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Table/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Framework/Table Card Layout/Table/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..beebda002e2bd1dd0e99afea4c93e77c1dfe1dd3 GIT binary patch literal 3194 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Large/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Large/view.json new file mode 100644 index 0000000..6ba0e12 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Large/view.json @@ -0,0 +1,48 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "height": 58, + "width": 818 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Header Large" + }, + "position": { + "size": "large" + }, + "props": { + "params": { + "menuSize": "large" + }, + "path": "Header/Header" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Header BP Medium" + }, + "props": { + "path": "Header/Header BP Medium" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "root" + }, + "props": { + "breakpoint": 1024, + "style": { + "classes": "Header" + } + }, + "type": "ia.container.breakpt" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Medium/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Medium/resource.json new file mode 100644 index 0000000..749b2e7 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Medium/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "5e26861fe62995201db9f63ff4210419ce6295fa5953783ce7998c715acdcd99", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Medium/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Medium/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..56855b58e44313f3ecee57bb68eed2729e751707 GIT binary patch literal 2016 zcmV<62Os!}P)C*VXfdi0ArHG1(f`Ng7E?xJEub7w^L`FvHtgWo9 ztOxQB*JH>E&P#D9Ef*W!SqLM;0jxWGtE?PpCo>T6)Y^%=6Hq$DIKC(}&k?d{FB%U#-KW@f_E(^DtDbOITfCO7Rmf=klhsXsE^guFf* zE|Z*C1^It~j8&kVQI8eqb|(8OH5(^R7cv4Ez~>?Ey+yFJ7^pEY4l<1r^&5k3K}NFI z$GeZ9xw!?#Mus3+jbt)KgA$`1h9PY6eEPks(iSq}Lta-${qT8w7#kbW>h%f*nwpvz z3v*L}fVO#0E(edt`?r}Ez|>TrZc?FWQ2XdNqot=E(HgRf+trBMbCj;b2oN);O@_Ul z4J4OKkt;5yGR*OK3Jc~=(+V;IQbbe?2pnU_I3dXY4O;)ykEfB6nueyPW*8e8!D*xe zLV^}SF0aFiRcjzHHbzr(Gx&Tywr$>^Zc}=_6y|287-DOqr$f_!!qytHElI~9zFeYK zVAP1m5FYq4Lf7v>?Y%nsozLeXc9kD&yExY9Xu6#4?Sq(g5imD1!$jwC)YsAP(ja^z*!Jl=msOHX^k3No^wKlptP?#b)hb<^5X2p=yO zBpptNvazY%?=BOaFlD?$myoG84rIC{nM@aug@%8C6F+1?axMd8qrjEEQ$QnRjg3u6 zKYJb}H!C`fQWIokbKpDEt=+MPDwDanx*(_UGQ6Id2m+b&gfSR3(h-4+-$ZgsCe4!c z4DP?_l4P=?UvJQBEVAZnoylry<+xcc!zla55Vav5M^e7WnNumSvK-uZ3Ue((BV@8W zH8^x4w^OM!K}ISLwXwiUUM>tDD#%2lskm82z!*v)n>+h?3>!KGzCQCHzEpy#&W`OM zBOsXxOkg22XF_&Yj+)v!+^xL>vE)46G;CVG2KK|B;D)*n70?J7$z)mi7jgAQS+_D7 zk7t0FUvPz$#iJcUMy{3GPM3}jBj^sZb)&E0m2*;oyN?`(G@et7~)C38(i9;!`uan`sdQ#sYun(VWkN$`1b z7A_WFK}qQiEM3Cf6mY}dy9%&^jD%DuEyCVSuI=D3NYIjMdw}AthM<3c`vbaxnU{&Zc{B@@q;cKF?XZz;fRh4Uvp#W>h zNG)>qw0iAEhJ)Y$KiF7XVqFY#Ak9ook)3`FHr7@hO5Pb{vC*qBc(4VW9PJtP{DVWW zeal7&+Uyi_&gSEnqKjC*bg|l=OqDB_Eujat-t%5XPWpG;u=k+?T0utQTp6|ohg1GN zdm_8G=nvmR@QQFo7f9w3=bognbXGco%-w4q>gyGl{Nx1e+7{2K>iy!YIPz5zhP6n`q&oM{c&t+EO%@C!mo>2DY` zNC-uJJ>+%w&(Fw(_0j-8M7A3Ajyl&CGI9}4u7damJeZgm!%Z|*U9IBJN)%s_LSQ1G zS4^!-Zr)Gy?(!MYRC-JB>(y(xD!q<5Grg!;+Q}a={E5dge(dPJ()gioS8K?KVg)}- z;JYvYN@Zg^0X?R{Ll|Ve;1%zkdY&Y#Jyi2IyQl!kC~Y% z&YVnvt&Qd9N)o>%%aNX$P5&h8FtU>*uOZl!La_uwp%9Mt z!`YZ~HhQc;k02xKGXLPWajm2jAwm8KTNw;P!>%7Is1S#H{X9Y y&AJw6sILm>1TuZ?JQsKGD8ND1J32qqt^5P)PN&zA5xY770000+4 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Medium/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Medium/view.json new file mode 100644 index 0000000..e3d5526 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header BP Medium/view.json @@ -0,0 +1,51 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "height": 58, + "width": 306 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Header Medium" + }, + "position": { + "size": "large" + }, + "props": { + "params": { + "menuSize": "medium" + }, + "path": "Header/Header" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Header Small" + }, + "props": { + "params": { + "menuSize": "small" + }, + "path": "Header/Header" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "root" + }, + "props": { + "breakpoint": 500, + "style": { + "classes": "Header" + } + }, + "type": "ia.container.breakpt" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header/resource.json new file mode 100644 index 0000000..012c53d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "7795cbe487f62065350b2fd96190b5713840fb98417069140f05606cf87fe94c", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Header/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..f13ed3f6dc573e2ff07739009d124f0188bf6687 GIT binary patch literal 3495 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 FV1iyT-P-^F literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Options/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Options/view.json new file mode 100644 index 0000000..5cf4b88 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Options/view.json @@ -0,0 +1,187 @@ +{ + "custom": {}, + "events": null, + "params": {}, + "permissions": null, + "propConfig": null, + "props": { + "defaultSize": { + "height": 54, + "width": 200 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "basis": "22px", + "grow": 0, + "shrink": 0 + }, + "propConfig": { + "props.style.classes": { + "binding": { + "config": { + "path": "../Label.custom.numAlarms" + }, + "transforms": [ + { + "expression": "if({value} \u003e 0, \"Title_Text Header_Alarm_Active_Dark\", \"Title_Text\")", + "type": "expression" + } + ], + "type": "property" + } + } + }, + "props": { + "path": "material/alarm", + "style": { + "backgroundColor": "unset", + "cursor": "pointer", + "marginLeft": "10px" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "auto", + "grow": 1, + "shrink": 1 + }, + "propConfig": { + "custom.numAlarms": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\treturn len(system.alarm.queryStatus(state\u003d[\"ActiveUnacked\"]))", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.classes": { + "binding": { + "config": { + "path": "this.custom.numAlarms" + }, + "transforms": [ + { + "expression": "if({value} \u003e 0, \"Title_Text Header_Alarm_Active_Dark\", \"Title_Text\")", + "type": "expression" + } + ], + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "path": "this.custom.numAlarms" + }, + "transforms": [ + { + "expression": "numberFormat({value}, \"#,##0\") + \" alarm\" + if({value} \u003e 1 || {value} \u003d 0, \"s\", \"\")", + "type": "expression" + } + ], + "type": "property" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "backgroundColor": "unset", + "cursor": "pointer" + } + }, + "type": "ia.display.label" + } + ], + "events": { + "dom": { + "onClick": [ + { + "config": { + "draggable": true, + "id": "options-popup", + "modal": false, + "overlayDismiss": false, + "resizable": true, + "showCloseIcon": true, + "type": "close", + "viewPath": "" + }, + "enabled": null, + "permissions": { + "securityLevels": [], + "type": "AllOf" + }, + "scope": "C", + "type": "popup" + }, + { + "config": { + "draggable": true, + "modal": false, + "overlayDismiss": false, + "resizable": true, + "showCloseIcon": true, + "type": "close", + "viewPath": "Header/Popups/Options" + }, + "enabled": null, + "permissions": { + "securityLevels": [], + "type": "AllOf" + }, + "scope": "C", + "type": "popup" + } + ] + } + }, + "meta": { + "name": "Alarms" + }, + "position": { + "basis": "54px", + "grow": 0, + "shrink": 0 + }, + "props": { + "style": { + "backgroundColor": "unset", + "classes": "Title" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Popup Title/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Popup Title/resource.json new file mode 100644 index 0000000..7e83c1c --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Popup Title/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "3612b35e894ebd02fa066f74e6dd5d695b001b9b88b48818b0d77e869a70d387", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Popup Title/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Header/Popups/Popup Title/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..82351fd31dd87b35ec89e365bc18c0fad4cacd4d GIT binary patch literal 1280 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

8CkyBHcX@R%bt2g|yk{(UH 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/CDP/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/CDP/view.json new file mode 100644 index 0000000..305b9d3 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/CDP/view.json @@ -0,0 +1,2566 @@ +{ + "custom": {}, + "events": null, + "params": { + "site": "Barstow 3652H" + }, + "permissions": null, + "propConfig": { + "custom.History.key": { + "persistent": true + }, + "custom.History[\u00270\u0027].key": { + "persistent": true + }, + "custom.History[\u00270\u0027][0]": { + "persistent": true + }, + "custom.History[\u00270\u0027][1]": { + "persistent": true + }, + "custom.History[\u00270\u0027][2]": { + "persistent": true + }, + "custom.History[0][0]": { + "persistent": true + }, + "custom.History[0][1]": { + "persistent": true + }, + "custom.History[0][2]": { + "persistent": true + }, + "custom.History[1]": { + "persistent": true + }, + "custom.History[1][0]": { + "persistent": true + }, + "custom.History[3]": { + "persistent": true + }, + "custom.History[3][0]": { + "persistent": true + }, + "custom.historyTags.key": { + "persistent": true + }, + "custom.historyTags.key-1": { + "persistent": true + }, + "custom.historyTags.key.key": { + "persistent": true + }, + "custom.historyTags.key.key-1": { + "persistent": true + }, + "custom.historyTags[\u00270\u0027][0]": { + "persistent": true + }, + "custom.historyTags[\u00270\u0027][1]": { + "persistent": true + }, + "custom.historyTags[\u00270\u0027][2]": { + "persistent": true + }, + "custom.key": { + "persistent": true + }, + "custom.key-1": { + "persistent": true + }, + "custom.key[0]": { + "persistent": true + }, + "custom.key[1]": { + "persistent": true + }, + "custom.key[2]": { + "persistent": true + }, + "params.site": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 926, + "width": 420 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Label_24" + }, + "position": { + "height": 308.96875, + "width": 390.28125, + "x": 10.859375, + "y": 61.421875 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "inset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_25" + }, + "position": { + "height": 176.1875, + "width": 390.28125, + "x": 10.859375, + "y": 387.03125 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "inset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Dropdown" + }, + "position": { + "height": 30.31, + "width": 198.76, + "x": 202.375, + "y": 13.203125 + }, + "propConfig": { + "props.options[0].label": { + "persistent": true + }, + "props.options[0].value": { + "persistent": true + }, + "props.options[1].label": { + "persistent": true + }, + "props.options[1].value": { + "persistent": true + }, + "props.options[2].label": { + "persistent": true + }, + "props.options[2].value": { + "persistent": true + }, + "props.options[3].label": { + "persistent": true + }, + "props.options[3].value": { + "persistent": true + }, + "props.options[4].label": { + "persistent": true + }, + "props.options[4].value": { + "persistent": true + }, + "props.options[5].label": { + "persistent": true + }, + "props.options[5].value": { + "persistent": true + }, + "props.options[6].label": { + "persistent": true + }, + "props.options[6].value": { + "persistent": true + }, + "props.options[7].label": { + "persistent": true + }, + "props.options[7].value": { + "persistent": true + }, + "props.value": { + "binding": { + "config": { + "path": "view.params.site" + }, + "type": "property" + }, + "persistent": true + } + }, + "props": { + "key": "value", + "options": [ + { + "label": "Barstow 3652H", + "value": "Barstow 3652H" + }, + { + "label": "Cimarex_CDP", + "value": "Cimarex_CDP" + }, + { + "label": "Kate Unit", + "value": "Kate Unit" + }, + { + "label": "Mi Noche_1", + "value": "Mi Noche_1" + }, + { + "label": "Mi Noche_2", + "value": "Mi Noche_2" + }, + { + "label": "Silver Spike", + "value": "Silver Spike" + }, + { + "label": "Worsham_CDP", + "value": "Worsham_CDP" + }, + { + "label": "WTI", + "value": "WTI" + } + ], + "value": "Barstow 3652H" + }, + "type": "ia.input.dropdown" + }, + { + "meta": { + "name": "Label_7" + }, + "position": { + "height": 35.36, + "width": 185.49, + "x": 10.859375, + "y": 13.109375 + }, + "props": { + "style": { + "backgroundColor": "#2B2B2B", + "color": "#FFFFFF", + "fontSize": "22px", + "textAlign": "right" + }, + "text": "CDP: " + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_26" + }, + "position": { + "height": 33.359375, + "width": 175.046875, + "x": 30, + "y": 44 + }, + "props": { + "alignVertical": "center", + "style": { + "backgroundColor": "#2B2B2B", + "borderStyle": "none", + "color": "#FFFFFF", + "fontSize": "20px", + "fontStyle": "normal", + "fontWeight": "bold", + "lineHeight": "51px", + "textAlign": "center" + }, + "text": "Pipeline Overview" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_27" + }, + "position": { + "height": 31.359375, + "width": 150, + "x": 30, + "y": 371 + }, + "props": { + "alignVertical": "center", + "style": { + "backgroundColor": "#2B2B2B", + "borderStyle": "none", + "color": "#FFFFFF", + "fontSize": "20px", + "fontStyle": "normal", + "fontWeight": "bold", + "lineHeight": "51px", + "textAlign": "center" + }, + "text": "Pump Overview" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_28" + }, + "position": { + "height": 124.26562499999999, + "width": 390.28125, + "x": 10.859375, + "y": 580.4375 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "inset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_29" + }, + "position": { + "height": 33.359375, + "width": 137.109375, + "x": 30, + "y": 564 + }, + "props": { + "alignVertical": "center", + "style": { + "backgroundColor": "#2B2B2B", + "borderStyle": "none", + "color": "#FFFFFF", + "fontSize": "20px", + "fontStyle": "normal", + "fontWeight": "bold", + "lineHeight": "51px", + "textAlign": "center" + }, + "text": "Station Status" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_30" + }, + "position": { + "height": 33.359375, + "width": 184.140625, + "x": 30, + "y": 414 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF" + }, + "text": "CS-640 (P1) Run Status:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_31" + }, + "position": { + "height": 33.359375, + "width": 190.140625, + "x": 30, + "y": 484 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF" + }, + "text": "WC-9178 (P2) Run Status:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_32" + }, + "position": { + "height": 33.359375, + "width": 197.40625, + "x": 25, + "y": 594 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "fontSize": "20px" + }, + "text": "Station Control Mode:" + }, + "type": "ia.display.label" + }, + { + "custom": { + "historyTags": [ + { + "aggregate": "Minimum", + "alias": "Selected Tag" + } + ] + }, + "meta": { + "name": "Sparkline_3" + }, + "position": { + "height": 30.31, + "width": 95.72, + "x": 292.015625, + "y": 131.1875 + }, + "propConfig": { + "custom.History[0][1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags.key.path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_01/Cur Top Gauge Feet\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[\u00270\u0027].path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[0].path": { + "binding": { + "config": { + "expression": "\"[default]\" + {parent.custom.site} + \"/Tank_02/Cur Top Gauge Feet\"" + }, + "type": "expr" + } + }, + "custom.key[1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027+ {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if({../Tank 2 Tag.props.text} \u003d null, False, True)" + }, + "type": "expr" + } + }, + "props.points": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "24", + "mostRecentUnits": "HOUR" + }, + "ignoreBadQuality": false, + "polling": { + "enabled": false, + "rate": "30" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "transforms": [ + { + "code": "\t# convert the incoming value data\n\tpyData \u003d system.dataset.toPyDataSet(value)\n\t# create a blank list so we can append later\n\tnewList \u003d []\n\t \n\t# step through the rows\n\tfor row in pyData:\n\t # append the dictionary to list\n\t if row[1] is not None:\n\t newList.append(row[1])\n\t \n\t# return the results\n\treturn newList", + "type": "script" + } + ], + "type": "tag-history" + } + } + }, + "props": { + "stroke": "#FFFFFF", + "style": { + "backgroundColor": "#2B2B2B", + "borderColor": "#FFFFFF", + "color": "#FFFFFF", + "outlineColor": "#FFFFFF", + "stroke": "#FFFFFF" + } + }, + "type": "ia.display.sparkline" + }, + { + "custom": { + "historyTags": [ + { + "aggregate": "Minimum", + "alias": "Selected Tag" + } + ] + }, + "meta": { + "name": "Sparkline_4" + }, + "position": { + "height": 30.31, + "width": 95.72, + "x": 292.015625, + "y": 173.15625 + }, + "propConfig": { + "custom.History[0][1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags.key.path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_01/Cur Top Gauge Feet\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[\u00270\u0027].path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[0].path": { + "binding": { + "config": { + "expression": "\"[default]\" + {parent.custom.site} + \"/Tank_03/Cur Top Gauge Feet\"" + }, + "type": "expr" + } + }, + "custom.key[1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027+ {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if({../Tank 3 Tag.props.text} \u003d null, False, True)" + }, + "type": "expr" + } + }, + "props.points": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "24", + "mostRecentUnits": "HOUR" + }, + "ignoreBadQuality": false, + "polling": { + "enabled": false, + "rate": "30" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "transforms": [ + { + "code": "\t# convert the incoming value data\n\tpyData \u003d system.dataset.toPyDataSet(value)\n\t# create a blank list so we can append later\n\tnewList \u003d []\n\t \n\t# step through the rows\n\tfor row in pyData:\n\t # append the dictionary to list\n\t if row[1] is not None:\n\t newList.append(row[1])\n\t \n\t# return the results\n\treturn newList", + "type": "script" + } + ], + "type": "tag-history" + } + } + }, + "props": { + "stroke": "#FFFFFF", + "style": { + "backgroundColor": "#2B2B2B", + "borderColor": "#FFFFFF", + "color": "#FFFFFF", + "outlineColor": "#FFFFFF", + "stroke": "#FFFFFF" + } + }, + "type": "ia.display.sparkline" + }, + { + "custom": { + "historyTags": [ + { + "aggregate": "Minimum", + "alias": "Selected Tag" + } + ] + }, + "meta": { + "name": "Sparkline_5" + }, + "position": { + "height": 30.31, + "width": 95.72, + "x": 292.015625, + "y": 216.015625 + }, + "propConfig": { + "custom.History[0][1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags.key.path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_01/Cur Top Gauge Feet\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[\u00270\u0027].path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[0].path": { + "binding": { + "config": { + "expression": "\"[default]\" + {parent.custom.site} + \"/Tank_04/Cur Top Gauge Feet\"" + }, + "type": "expr" + } + }, + "custom.key[1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027+ {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if({../Tank 4 Tag.props.text} \u003d null, False, True)" + }, + "type": "expr" + } + }, + "props.points": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "24", + "mostRecentUnits": "HOUR" + }, + "ignoreBadQuality": false, + "polling": { + "enabled": false, + "rate": "30" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "transforms": [ + { + "code": "\t# convert the incoming value data\n\tpyData \u003d system.dataset.toPyDataSet(value)\n\t# create a blank list so we can append later\n\tnewList \u003d []\n\t \n\t# step through the rows\n\tfor row in pyData:\n\t # append the dictionary to list\n\t if row[1] is not None:\n\t newList.append(row[1])\n\t \n\t# return the results\n\treturn newList", + "type": "script" + } + ], + "type": "tag-history" + } + } + }, + "props": { + "stroke": "#FFFFFF", + "style": { + "backgroundColor": "#2B2B2B", + "borderColor": "#FFFFFF", + "color": "#FFFFFF", + "outlineColor": "#FFFFFF", + "stroke": "#FFFFFF" + } + }, + "type": "ia.display.sparkline" + }, + { + "custom": { + "historyTags": [ + { + "aggregate": "Minimum", + "alias": "Selected Tag" + } + ] + }, + "meta": { + "name": "Sparkline_6" + }, + "position": { + "height": 29.296875, + "width": 93.71875, + "x": 293.046875, + "y": 263.03125 + }, + "propConfig": { + "custom.History[0][1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags.key.path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_01/Cur Top Gauge Feet\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[\u00270\u0027].path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[0].path": { + "binding": { + "config": { + "expression": "\"[default]\" + {parent.custom.site} + \"/Tank_05/Cur Top Gauge Feet\"" + }, + "type": "expr" + } + }, + "custom.key[1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027+ {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if({../Tank 5 Tag.props.text} \u003d null, False, True)" + }, + "type": "expr" + } + }, + "props.points": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "24", + "mostRecentUnits": "HOUR" + }, + "ignoreBadQuality": false, + "polling": { + "enabled": false, + "rate": "30" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "transforms": [ + { + "code": "\t# convert the incoming value data\n\tpyData \u003d system.dataset.toPyDataSet(value)\n\t# create a blank list so we can append later\n\tnewList \u003d []\n\t \n\t# step through the rows\n\tfor row in pyData:\n\t # append the dictionary to list\n\t if row[1] is not None:\n\t newList.append(row[1])\n\t \n\t# return the results\n\treturn newList", + "type": "script" + } + ], + "type": "tag-history" + } + } + }, + "props": { + "stroke": "#FFFFFF", + "style": { + "backgroundColor": "#2B2B2B", + "borderColor": "#FFFFFF", + "color": "#FFFFFF", + "outlineColor": "#FFFFFF", + "stroke": "#FFFFFF" + } + }, + "type": "ia.display.sparkline" + }, + { + "custom": { + "historyTags": [ + { + "aggregate": "Minimum", + "alias": "Selected Tag" + } + ] + }, + "meta": { + "name": "Sparkline_7" + }, + "position": { + "height": 30.31, + "width": 95.72, + "x": 292.015625, + "y": 303.375 + }, + "propConfig": { + "custom.History[0][1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags.key.path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_01/Cur Top Gauge Feet\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[\u00270\u0027].path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[0].path": { + "binding": { + "config": { + "expression": "\"[default]\" + {parent.custom.site} + \"/Tank_06/Cur Top Gauge Feet\"" + }, + "type": "expr" + } + }, + "custom.key[1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027+ {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if({../Tank 6 Tag.props.text} \u003d null, False, True)" + }, + "type": "expr" + } + }, + "props.points": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "24", + "mostRecentUnits": "HOUR" + }, + "ignoreBadQuality": false, + "polling": { + "enabled": false, + "rate": "30" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "transforms": [ + { + "code": "\t# convert the incoming value data\n\tpyData \u003d system.dataset.toPyDataSet(value)\n\t# create a blank list so we can append later\n\tnewList \u003d []\n\t \n\t# step through the rows\n\tfor row in pyData:\n\t # append the dictionary to list\n\t if row[1] is not None:\n\t newList.append(row[1])\n\t \n\t# return the results\n\treturn newList", + "type": "script" + } + ], + "type": "tag-history" + } + } + }, + "props": { + "stroke": "#FFFFFF", + "style": { + "backgroundColor": "#2B2B2B", + "borderColor": "#FFFFFF", + "color": "#FFFFFF", + "outlineColor": "#FFFFFF", + "stroke": "#FFFFFF" + } + }, + "type": "ia.display.sparkline" + }, + { + "custom": { + "historyTags": [ + { + "aggregate": "Minimum", + "alias": "Selected Tag" + } + ] + }, + "meta": { + "name": "Sparkline_8" + }, + "position": { + "height": 30.31, + "width": 95.72, + "x": 292.046875, + "y": 345.40625 + }, + "propConfig": { + "custom.History[0][1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags.key.path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_01/Cur Top Gauge Feet\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[\u00270\u0027].path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[0].path": { + "binding": { + "config": { + "expression": "\"[default]\" + {parent.custom.site} + \"/Tank_07/Cur Top Gauge Feet\"" + }, + "type": "expr" + } + }, + "custom.key[1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027+ {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if({../Tank 7 Tag.props.text} \u003d null, False, True)" + }, + "type": "expr" + } + }, + "props.points": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "24", + "mostRecentUnits": "HOUR" + }, + "ignoreBadQuality": false, + "polling": { + "enabled": false, + "rate": "30" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "transforms": [ + { + "code": "\t# convert the incoming value data\n\tpyData \u003d system.dataset.toPyDataSet(value)\n\t# create a blank list so we can append later\n\tnewList \u003d []\n\t \n\t# step through the rows\n\tfor row in pyData:\n\t # append the dictionary to list\n\t if row[1] is not None:\n\t newList.append(row[1])\n\t \n\t# return the results\n\treturn newList", + "type": "script" + } + ], + "type": "tag-history" + } + } + }, + "props": { + "stroke": "#FFFFFF", + "style": { + "backgroundColor": "#2B2B2B", + "borderColor": "#FFFFFF", + "color": "#FFFFFF", + "outlineColor": "#FFFFFF", + "stroke": "#FFFFFF" + } + }, + "type": "ia.display.sparkline" + }, + { + "custom": { + "historyTags": [ + { + "aggregate": "Minimum", + "alias": "Selected Tag" + } + ] + }, + "meta": { + "name": "Sparkline_9" + }, + "position": { + "height": 30.31, + "width": 95.72, + "x": 292.015625, + "y": 393.359375 + }, + "propConfig": { + "custom.History[0][1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags.key.path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_01/Cur Top Gauge Feet\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[\u00270\u0027].path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[0].path": { + "binding": { + "config": { + "expression": "\"[default]\" + {parent.custom.site} + \"/Tank_08/Cur Top Gauge Feet\"" + }, + "type": "expr" + } + }, + "custom.key[1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027+ {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if({../Tank 8 Tag.props.text} \u003d null, False, True)" + }, + "type": "expr" + } + }, + "props.points": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "24", + "mostRecentUnits": "HOUR" + }, + "ignoreBadQuality": false, + "polling": { + "enabled": false, + "rate": "30" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "transforms": [ + { + "code": "\t# convert the incoming value data\n\tpyData \u003d system.dataset.toPyDataSet(value)\n\t# create a blank list so we can append later\n\tnewList \u003d []\n\t \n\t# step through the rows\n\tfor row in pyData:\n\t # append the dictionary to list\n\t if row[1] is not None:\n\t newList.append(row[1])\n\t \n\t# return the results\n\treturn newList", + "type": "script" + } + ], + "type": "tag-history" + } + } + }, + "props": { + "stroke": "#FFFFFF", + "style": { + "backgroundColor": "#2B2B2B", + "borderColor": "#FFFFFF", + "color": "#FFFFFF", + "outlineColor": "#FFFFFF", + "stroke": "#FFFFFF" + } + }, + "type": "ia.display.sparkline" + }, + { + "custom": { + "historyTags": [ + { + "aggregate": "Minimum", + "alias": "Selected Tag" + } + ] + }, + "meta": { + "name": "Sparkline_10" + }, + "position": { + "height": 30.31, + "width": 95.72, + "x": 292.015625, + "y": 87.71875 + }, + "propConfig": { + "custom.History[0][1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags.key.path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_01/Cur Top Gauge Feet\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[\u00270\u0027].path": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027 + {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "custom.historyTags[0].path": { + "binding": { + "config": { + "expression": "\"[default]\" + {parent.custom.site} + \"/Tank_01/Cur Top Gauge Feet\"" + }, + "type": "expr" + } + }, + "custom.key[1]": { + "binding": { + "config": { + "expression": "\u0027[default]\u0027+ {parent.custom.site} + \u0027/Tank_02/Cur Top Gauge Feet}\u0027" + }, + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if({../Tank 1 Tag.props.text} \u003d null, False, True)" + }, + "type": "expr" + } + }, + "props.points": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "24", + "mostRecentUnits": "HOUR" + }, + "ignoreBadQuality": false, + "polling": { + "enabled": false, + "rate": "30" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "transforms": [ + { + "code": "\t# convert the incoming value data\n\tpyData \u003d system.dataset.toPyDataSet(value)\n\t# create a blank list so we can append later\n\tnewList \u003d []\n\t \n\t# step through the rows\n\tfor row in pyData:\n\t # append the dictionary to list\n\t if row[1] is not None:\n\t newList.append(row[1])\n\t \n\t# return the results\n\treturn newList", + "type": "script" + } + ], + "type": "tag-history" + } + } + }, + "props": { + "stroke": "#FFFFFF", + "style": { + "backgroundColor": "#2B2B2B", + "borderColor": "#FFFFFF", + "color": "#FFFFFF", + "outlineColor": "#FFFFFF", + "stroke": "#FFFFFF" + } + }, + "type": "ia.display.sparkline" + }, + { + "meta": { + "name": "Label_48" + }, + "position": { + "height": 33.359375, + "width": 229.140625, + "x": 30, + "y": 519 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF" + }, + "text": "WC-9178 (P2) Speed Reference:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "baseline-fiber_manual_record-24px_2" + }, + "position": { + "height": 38.5, + "width": 33.609375, + "x": -171.109375, + "y": -7.390625 + }, + "propConfig": { + "props.elements[1].fill.paint": { + "binding": { + "config": { + "expression": "if(tag({parent.custom.site}+ \u0027/Status/Oil_HOA\u0027) , \"#00FF00\", \"#D5D5D5\")" + }, + "type": "expr" + } + } + }, + "props": { + "elements": [ + { + "d": "M24 24H0V0h24v24z", + "fill": { + "paint": "#2B2B2B" + }, + "name": "path", + "type": "path" + }, + { + "cx": "12", + "cy": "12", + "fill": {}, + "name": "circle", + "r": 8, + "type": "circle" + } + ], + "viewBox": "0 0 24 24" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "Label_50" + }, + "position": { + "height": 33.359375, + "width": 142.140625, + "x": -135.375, + "y": -3.21875 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF" + }, + "text": "Water HOA Status:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_52" + }, + "position": { + "height": 33.359375, + "width": 217.140625, + "x": 30, + "y": 449 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF" + }, + "text": "CS-640 (P1) Speed Reference:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_51" + }, + "position": { + "height": 187.265625, + "width": 390.28125, + "x": 10.859375, + "y": 724 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "inset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_54" + }, + "position": { + "height": 33.359375, + "width": 147.109375, + "x": 30, + "y": 706 + }, + "props": { + "alignVertical": "center", + "style": { + "backgroundColor": "#2B2B2B", + "borderStyle": "none", + "color": "#FFFFFF", + "fontSize": "20px", + "fontStyle": "normal", + "fontWeight": "bold", + "lineHeight": "51px", + "textAlign": "center" + }, + "text": "Flow Statistics" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_55" + }, + "position": { + "height": 33.36, + "width": 140, + "x": 25, + "y": 85 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "textAlign": "right" + }, + "text": "Inlet DPT:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_56" + }, + "position": { + "height": 33.36, + "width": 140, + "x": 25, + "y": 125 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "textAlign": "right" + }, + "text": "Inlet Pressure:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_57" + }, + "position": { + "height": 33.36, + "width": 140, + "x": 25, + "y": 165 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "textAlign": "right" + }, + "text": "Temperature:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_58" + }, + "position": { + "height": 33.36, + "width": 140, + "x": 25, + "y": 205 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "textAlign": "right" + }, + "text": "Flow Rate:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_59" + }, + "position": { + "height": 33.359375, + "width": 140, + "x": 25, + "y": 245 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "textAlign": "right" + }, + "text": "PipeLine Pressure:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_60", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 170, + "y": 165 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "mode": "indirect", + "references": { + "1": "{parent.custom.site}" + }, + "tagPath": "[default]{1}/Status/Inlet_Temp" + }, + "type": "tag" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_61", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 170, + "y": 85 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "mode": "indirect", + "references": { + "1": "{parent.custom.site}" + }, + "tagPath": "[default]{1}/Status/Inlet_Strainer_DPT" + }, + "type": "tag" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_62", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 170, + "y": 125 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "mode": "indirect", + "references": { + "1": "{parent.custom.site}" + }, + "tagPath": "[default]{1}/Status/Inlet_Pressure" + }, + "type": "tag" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_63", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 170, + "y": 205 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "mode": "indirect", + "references": { + "1": "{parent.custom.site}" + }, + "tagPath": "[default]{1}/Status/Transfer_FlowRate" + }, + "type": "tag" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_64", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 170, + "y": 245 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "mode": "indirect", + "references": { + "1": "{parent.custom.site}" + }, + "tagPath": "[default]{1}/Status/Pipeline_Pressure" + }, + "type": "tag" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_65" + }, + "position": { + "height": 33.36, + "width": 124.05, + "x": 285, + "y": 85 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF" + }, + "text": "PSI" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_66" + }, + "position": { + "height": 33.36, + "width": 124.05, + "x": 285, + "y": 125 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF" + }, + "text": "PSI" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_67" + }, + "position": { + "height": 33.36, + "width": 124.05, + "x": 285, + "y": 245 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF" + }, + "text": "PSI" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_68" + }, + "position": { + "height": 33.36, + "width": 124.05, + "x": 285, + "y": 165 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF" + }, + "text": "°F" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_69" + }, + "position": { + "height": 33.36, + "width": 124.05, + "x": 285, + "y": 205 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF" + }, + "text": "BBL/Hr" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_70", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 170, + "y": 285 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({parent.custom.site}+ \u0027/PhysicalIO/Discharge_MOV_Opened\u0027) , \"Open\", \"Closed\")" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_71", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 170, + "y": 325 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "mode": "indirect", + "references": { + "1": "{parent.custom.site}" + }, + "tagPath": "[default]{1}/Status/FCV_Pos_Ref_AO" + }, + "type": "tag" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_72" + }, + "position": { + "height": 33.36, + "width": 124.05, + "x": 285, + "y": 325 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF" + }, + "text": "%" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_73" + }, + "position": { + "height": 33.359375, + "width": 140, + "x": 25, + "y": 285 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "textAlign": "right" + }, + "text": "ESD Value:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_74" + }, + "position": { + "height": 33.359375, + "width": 140, + "x": 25, + "y": 325 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "textAlign": "right" + }, + "text": "Control Valve:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_75", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 270, + "y": 449 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "mode": "indirect", + "references": { + "1": "{parent.custom.site}" + }, + "tagPath": "[default]{1}/PhysicalIO/CHEM_PUMP1_AO" + }, + "type": "tag" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_76", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 270, + "y": 519 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "mode": "indirect", + "references": { + "1": "{parent.custom.site}" + }, + "tagPath": "[default]{1}/PhysicalIO/CHEM_PUMP2_AO" + }, + "type": "tag" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "baseline-fiber_manual_record-24px_1" + }, + "position": { + "height": 38.5, + "width": 33.61, + "x": 235, + "y": 634 + }, + "propConfig": { + "props.elements[1].fill.paint": { + "binding": { + "config": { + "expression": "if(tag({parent.custom.site}+ \u0027/Alarm/Global_PLC_Comms_Fail\u0027) , \"#D5D5D5\", \"#00FF00\")" + }, + "type": "expr" + } + } + }, + "props": { + "elements": [ + { + "d": "M24 24H0V0h24v24z", + "fill": { + "paint": "#2B2B2B" + }, + "name": "path", + "type": "path" + }, + { + "cx": "12", + "cy": "12", + "fill": {}, + "name": "circle", + "r": 8, + "type": "circle" + } + ], + "viewBox": "0 0 24 24" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "baseline-fiber_manual_record-24px_3" + }, + "position": { + "height": 38.5, + "width": 33.61, + "x": 235, + "y": 664 + }, + "propConfig": { + "props.elements[1].fill.paint": { + "binding": { + "config": { + "expression": "if(tag({parent.custom.site}+ \u0027/Status/PSD\u0027) , \"#D5D5D5\", \"#00FF00\")" + }, + "type": "expr" + } + } + }, + "props": { + "elements": [ + { + "d": "M24 24H0V0h24v24z", + "fill": { + "paint": "#2B2B2B" + }, + "name": "path", + "type": "path" + }, + { + "cx": "12", + "cy": "12", + "fill": {}, + "name": "circle", + "r": 8, + "type": "circle" + } + ], + "viewBox": "0 0 24 24" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "Label_33" + }, + "position": { + "height": 33.359375, + "width": 197.40625, + "x": 25, + "y": 636 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "fontSize": "18px", + "textAlign": "right" + }, + "text": "Global Communications:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_34" + }, + "position": { + "height": 33.359375, + "width": 197.40625, + "x": 25, + "y": 666 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "fontSize": "18px", + "textAlign": "right" + }, + "text": "Battery ESD Status:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_77", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 230, + "y": 594 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "case(tag({parent.custom.site}+ \u0027/HMI_CMDS/Station_Control_Mode\u0027), 0, \"OFF\", 1, \"Auto\", 2, \"Manual\",\"Error\")" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_78", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 210, + "y": 786 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "mode": "indirect", + "references": { + "1": "{parent.custom.site}" + }, + "tagPath": "[default]{1}/Status/Flow_Net_VOL_Ystdy" + }, + "type": "tag" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_79", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 210, + "y": 866 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "mode": "indirect", + "references": { + "1": "{parent.custom.site}" + }, + "tagPath": "[default]{1}/Status/Flow_Gross_VOL_Ystdy" + }, + "type": "tag" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_80", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 210, + "y": 826 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "mode": "indirect", + "references": { + "1": "{parent.custom.site}" + }, + "tagPath": "[default]{1}/Status/Flow_Gross_VOL_Today" + }, + "type": "tag" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_81", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 210, + "y": 746 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "mode": "indirect", + "references": { + "1": "{parent.custom.site}" + }, + "tagPath": "[default]{1}/Status/Flow_Net_VOL_Today" + }, + "type": "tag" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_82" + }, + "position": { + "height": 33.359375, + "width": 178, + "x": 25, + "y": 746 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "textAlign": "right" + }, + "text": "Net Volume Today:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_83" + }, + "position": { + "height": 33.359375, + "width": 178, + "x": 25, + "y": 786 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "textAlign": "right" + }, + "text": "Net Volume Yesterday:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_84" + }, + "position": { + "height": 33.359375, + "width": 178, + "x": 25, + "y": 826 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "textAlign": "right" + }, + "text": "Gross Volume Today:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_85" + }, + "position": { + "height": 33.359375, + "width": 178, + "x": 25, + "y": 866 + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "none", + "color": "#FFFFFF", + "textAlign": "right" + }, + "text": "Gross Volume Yesterday:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_86", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 270, + "y": 414 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({parent.custom.site}+ \u0027/PhysicalIO/CHEM_PUMP1_AO\u0027) , \"ON\", \"OFF\")" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_87", + "rotate": { + "anchor": "65%" + }, + "visible": 1 + }, + "position": { + "height": 33.36, + "width": 109.12, + "x": 270, + "y": 484 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({parent.custom.site}+ \u0027/PhysicalIO/CHEM_PUMP2_AO\u0027) , \"ON\", \"OFF\")" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "borderStyle": "outset", + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "site": "Barstow 3652H" + }, + "meta": { + "name": "root" + }, + "propConfig": { + "custom.site": { + "binding": { + "config": { + "path": "./Dropdown.props.value" + }, + "type": "property" + }, + "persistent": true + } + }, + "props": { + "style": { + "backgroundColor": "#2B2B2B" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Embedded/Title/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Embedded/Title/resource.json new file mode 100644 index 0000000..af82641 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Embedded/Title/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "457181b59a56a23382a704f9e3ed46fbf724d9b5c43145f65e0408e005967cf9", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Embedded/Title/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Embedded/Title/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..be0886a29a5683be8602b73557ab1d75b5c8ca87 GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!WjNS?g>rf|G#vcI z%)*hv!V|Vk%aK#SAfm2;p|Pjo;HeN*4Mrxm)BFMo69f$+X0BpUbvTgllaYzVh>1-* zci(QO<`bce#*`vaDqc(jZbKkkV3+SKMagal8nt$S9%37vG7cj cr;epIPb4xmdKI;Vst08OP==l}o! literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Embedded/Title/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Embedded/Title/view.json new file mode 100644 index 0000000..1b435f0 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Embedded/Title/view.json @@ -0,0 +1,94 @@ +{ + "custom": {}, + "events": null, + "params": { + "feature": { + "icon": "", + "name": "" + } + }, + "permissions": null, + "propConfig": { + "params.feature": { + "paramDirection": "input" + }, + "params.key": { + "paramDirection": "input" + } + }, + "props": { + "defaultSize": { + "height": 56, + "width": 600 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "basis": "24px", + "grow": 0, + "shrink": 1 + }, + "propConfig": { + "props.path": { + "binding": { + "config": { + "expression": "\"material/\" + {view.params.feature.icon}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Title_Text", + "marginLeft": "10px" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "hasDelegate": true, + "name": "Label" + }, + "position": { + "basis": "auto", + "grow": 1, + "shrink": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "bidirectional": false, + "path": "view.params.feature.name" + }, + "type": "property" + } + } + }, + "props": { + "alignVertical": "center", + "style": { + "classes": "Title_Text" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "classes": "Title" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/L24_CDP/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/L24_CDP/resource.json new file mode 100644 index 0000000..edd2b3a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/L24_CDP/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "e543f75f572532d0135c60f716d6ef915b7fd847dfe34748292d48e2cd3a2b9f", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/L24_CDP/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/L24_CDP/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..6898c3e914b7adcde5708046822b619f7bd47f75 GIT binary patch literal 42212 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 z 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ç~O!SDtetaxTaaLT-7CX7Q6J8 z9c)3id8MrANWp!M{Dsidw;AWoqrQhaOjm!r?W57c;j{L4A`ExQW^R`l?c|uP6vL3s zIIz*uOZNpKNF;*UX@6lEjL!Z(N$Wt6pRhFV4?ANUtuv^ZFa7 ze*Nn&u6};|){W0T{p9`kF3OVd)|+pHq1%+iVpm*ibQBHA-{aRE5}*$KN+Mq=&gU5aEi)Uj&c&g| zcBrh>tCjjkbJ;~+`v1v$?eE!}0-E+=8=R1s|G$d&&a&Q_8jPzE1wi^z6xDiNVu%7c&3|Pm&6dNbt z;Cevq%5zdnl6wIvZUG_N?a^h|Lz*X?O(F-0!ALdn!a#THfpsr;VE1^goOpW~47m5P zuCJO-m6kWDD%IEdUU9u&*+hJtr(p| z=kXGKw=QL2m+v9_Tl%!=K=Yr&KV35hbsqbK6$MGD;@ z=RDO88&r@ghNU_dQ!V5Nb%FM|c#q@?!Eo_nW#JnL8g7xpbf_=SoxOYe)}1@IPMkOn z__8?v#5T3tw{Je(*;;&fUv5=3sy27+YPD9bRSK!)g~j{#-u=xRj~?BB@ZjFnD_1I& zQYx8PSa@>$_@{+@cB_m2mzpTusk6%z52&ANnfxjK71Km|s4J1E)R~V6 zJw&aqtuPYh8bbs#1)I#aiS^C#2kcI9fJIqzU(!qG8DXR*Z z)yDn>w8fc({WP68ale*|FhCU5F1$e!OxL4JI61RF1Y?7-z}^|l%OL;(o#nx5@k*k$ z(Bf!CZp)Ht5#t4YCDqv>h$MwDG3kt#T-s`v;D9~4i11NI zmkpQ*h#ey{bAUnUEDo{knuUzUV2yIk;K@=CaJGTa6U!DZ=OeVvs8E*>J#kDz);&DV zNbvTtt@i3E^kb6t7IbZ- zY1d3m-eFr$x59Kf`Pqr%jaupXSKF4M^aw#J7L4{Rf=5Ud&{mX^AZ>Jz$!z+h13@(q zqq@;&G<(bkiFGBSz5A$04$+5H{)&ToC7ehly_A@Wq}|WxV7sD{kO(Y4i!Wj=r(eIf zF*jGfbw6U6F5lRxrTcMI-U}c2WcD8@N~#=WN|V+%kqOTlfDz7oDxi6s*~UKV>LM-hBhWV(2tWj?CoxEk2Evi`Fk)jcp@6L!`y>(K>?5d$6R$xWI0`Mekqh!j z!rA47;K}M1PhnIfwnYQE)`qi+(-IJOsi2{6W!D@-)yBfyT|J(j-?NK1mZ2SDMuCa5 ziZ9}EM+`#Ss-D3vN{Dn(Ul`_{A{_7YY!Sqn8p7omDnWw`10&UFfB7KIs!D$>H+Yba zKl?Ibl|;iiIDoKZ0m~EV*tX*a6Q2%?I0g=K+Ipr(bPaecC0Tvk;DS!AkK_jf%M0GJ zVQChj959Bhr5hUMQp3`vC~~?2ja4ChQsON>yJvvT2-YZAtbpS^s)W;FwKR-FaXC_a z*F@n8VO-2s$6Oo)ePThTV}!rSyPLdO94&ga6q?3h&?QOg-`?kJn4DwF5t83)-zyb! zr@r|7*|VK5&!0W<*{98V?dFZ^fA_b4)2vsAlbTcK_}xf6*Nah(Cg>VnUFb?opeO-O zqS2(xxrxnm07I{QodZZ}V$9xm1xfn|Hbm5ow`LoO$BkHMCQ)qPb3v#(>WYv1a3Fzl1Wlv-*Y*Hqjg9>o|M(+!U@lLJrJ1TK>*Q%$-XAtO>~N~3Zt zyJv^d-ADHjdLCOP46XF-L3Ybf2sLPBzenm3eie+)pZaM`2m%^Xx01lOU#R+uI5EIr zOT&UOc%1KX<+@a^fUVJu+>Q0saw#tgOe(oiEP}SSZzK551)rCJd7HB2*BYq0=gPtI zN(h#kAOz^8|2i-LuiGFqi^G-A&6j2QU z58U}B&t7!+{1eRNEaVp;n?^PZhT@VmdMEZ(gRwKLRrdlRXpWJ4k;?Z-9WBt8$&9;-d2(c!q$Y5g3f38i`_9 zZp1`Oc*~j`CJH?;Dv5uG5PmkdHH=rXY^+;h63s|QN>5NQ$ElaF4U|^1twJ@Quc?x_ z16CyZg=abPupg1gNmIha2?EVzG>WxgG$H+5`2~%Npwj+i;j!R!iWzeCh|1x7g*+g` zfo9_(W9Obn^u5*FtJS-!y*y^(KHCnrdtNWJo^FNPeSh+}zZ<~^ikzW1WtJ{s%jQ^Y z{`(L;Fc|_T-QWd6-2H{lOjCRr+Z~V zKlgyxd-A7O5jQ46*xUc(aRLbd+QZ;FO#T3i%ycj!v5#d$_f7IdFEU{ic--W1dVaJX zDOOY@@Sd{B+@Wd^dry%9?Pa$!=sYBXxyMue%#%^(J)9kmHs8VtgdJb62%yal7@*>P zp`&7+&5)G^VawKfaCw3GV6Aj(sbCP-8#=8_rC-a;q(++|w#w_OX=))w`?-n_cUpzB z7-5SF9zE<@a+kqKCDe2f4N)a*D~g~iqOS6qD(PsUkF4D|&$d}@RW^&6OvTWZ?Rt6; z0zQ4};RT?xOd^T*BehqcLAAkP>lZ?jPtG_o^*Lw>#JGzG07U1m8#SulX2u^XyZ}bF zExE{1MV==K(D|O+?yTQkt=(J-vt=Lc(qUZEtB0k$M!^AD525+S1$i|RRTOi8k+B+j zY_Jc%&x-{HG%yFO*wV&99`oZTd(iKlLRpY$~!YcRd4(N%*E0 zhq_|4o7n|;5~wYz5J^lqQKSluxlb;(OSQFI%bA7E@@77{u)cn8WpVCFBU|miV$5OO zm}YDlXK!KA+7}yBuPSlCSM2?PcPH&SXdL2sMGi@{AYL?K0vqdwO3NfQbhMs0BS2H$ ztqM1k7!(Hok}|NpR&n33pmD+GWWos7E#-TK&B#H!4`JHTl8kt(#)`U9mn2ZxM(lA! zqs00sqoNEkXo7B~8p@sJ!lh!T9cT92v7*%I)0G!%g>lyf1x>ef-8I9$3-){0kV3lU zuWWeN?g!~?SLfnWBWxxJEGN_viU=kuGbTs`$TS=z|wR?~P7T+luU1QnR z76~IFnR+9EywkhCf&>H>G9fVg#wKXZ1TZq{@uE7wEacto(S4 z_NX>PhE#sOd&HEJFtpQg_>dP0jRO)np};P$)eH6)f1Y0yMa4S^xVQFEO5pvk3J z5%iIPS8IrUaGS)Vgw2oKyIK{c1S?+Ks9s(!rCAZRwm7^Xa<`fVB!QeT-$wn`Aze4H zpx?R@6LBrDBK=AVXWZFJzq%3JxfeJ#20)Bmvo};HceThd!d!TIx`qWvG?6bB8xqeU zQ30u3GMI)RJJd^rOsnBccOo+&y4>%1lAkaT!NaLc^iGI$pQ-liSr~+RtsIz~5qb&a zxG1jQbL070vO8({V+a49N9a3YZF)J~xU<@AVY~pUwJrw!;G8-P;Nz;wewXzv#U}a@ zAoN-`R7A{2+e;un5ZJ(0utLL&6r9;I))lcWl4rDcoA}lUIo^QUm5?07mFCcGjKRLd z#`b2>NbM1FD3aVrDE;>i?*Ie>jrp__KtLwxV2IOX)ux*^$G6KZm6Z%pHh4j-H>)cd zo#m-~O>ARr3FJ8*j-0avdZ{M#xF*i%lYiliHZH_-XJi8hXUbkW48A}B>tV!>AqiVc zx)_oyfxVll09&CUZdH>w80?J(@W|U4?_+!RwTCQX%{|E_@yz$0EnUI_tc#$QqHk^t zh$jWx8}hpJVrENx4mudlh|XlMjgEM|$`%Erf5gxPR|Dw5>m)5FesTD(i;UMu6HW=| z7mJTmwP-}_3vWl|`<*IA7+8ZE);Kjm`faR?L{hugsczNMTkSF;sm$m$&SnOo+vl6% z-FxUko62{c5O{7l-3E_>%>5T~wPL==iez%J`~Q2nBE60_@xQiczc zXjSBxqyRUflBe6Mw0U=xd$6{}3&@44D*@GxT5Yu9)1`nRbjvv7J~rJxeGemXU!E&k9_S$n;beGevMlRUuJbLj{HCM402<%EKLn zplOntdIVy|np50t5a4t_QS4Gxz$55ofW`e*0rri!IAbw z-K8jBjdB&gPGQa}+!eq?tqG%FP^f}hj%D5BXrR%__S_7>yyE%nw3Rp;p)D*&6Os73 zP!f@*VDf;Ig62k?Wr8i^B^&Q2&{(??GRC3r8F2^s>M+PqA;mwYt+qH=gUqty{5MXD z*SpAAL}C}whpi$hH6PEEH+npUl}nr{ZJDH=5B(97R}~A6rR12ye>IFKi`U14Gx3+B zUqfPgbdelwKR_WNFo=~%_ZKRJNyZ>}I)Ify!UV?YI=d&GApu6BB9#xah3KB8b`+V{ zl&UDQSoBE^dTvmx`vN~R*xD!No8w^iX}_L|%-sZzfOur=sm%C+V2{E&s1sbP&h(b! z0=)&mH!f;6-ADk44XM}6lfilTYpi4`9K1Wl!pO3^BweX6ck5hRWkg+k++=ftOjA@( z=SQV3(Uc?X;{aF>*NgeJoULN999SSG}STk zP|~O*`$W{hGJ))g#9B%J^R&AEOqACf#ax=uT5r+lq{aC&3Oh zrd~GVIVmu>YI2aTA$fqU_P9pBRqWT&7(hdC2jIJ3%iyen0YjsOS#PnujHlRpmeETD ziL7oT3-)^)CLTZ!g7KqM?bcF(!b~y&$Q@?$;d=H_LSgx6%f%MpB3Po20F(%kM{EMU zsa!{QPpmf$omG3p8EC4z7laBPd5eR~CBMQw_Z-mkgN+>K;Jrvc8WS>QMvCpHaNHFD z0Du5VL_t)TB1*BC}eHMCf2G zBNF37ZWB*23nrldOPGr^``1?%WI^;z)zSr7+M-LCB|B*=P0JWHsDmz#K~9EEbWe@% zGNjJ+6e^(`5}q^DiKuoZlT4-871+4vxUOCkrN=Ff*W@U)!)z*ev=B`**p3MX*SSVl z7q-TD8vVV_kx8*I17! zl?byt*^4Mg=;c6GxzZ#gfhFu(DwVG+Uw*=r8=*g}S4GZ;*hCUsF$%uYz!T)F0mEQs z6NXR|cp^!#0|_tyFTjdjW~j+NX!SPc?8P^R$5ExA&A9U$ApqRAM@H8PXq&z_ygeM{ zRE`AHlBk(|x116iL4ihk7HRlg*u84 zoGF2&_83y{ckr}FFAghtAX-h~IQqN^FP%@Y27sml>Q95eR_R z$nS?54Mvw>5ZX8f&3crtD1$co3P`g#AY&E$H2~5 zZzUR2fT<+;i4u$ips`&I7;nk*1aRpQE37O?IZm`}z1yzLeAKb`gKIR|dJBejj1NLh z%><3WlPS#-WWB{{4bzeg3u{=;781DF?NlR!3n;FaO7~P68|vsfNk~LDwDFdQq5K1J zblo-ql@vp%){!1yu#IaV?K0R(s1o8_C!iIKB`*+ zn#lgKiPhHbgmo%*_+W*bi2@44Ehix<7SB?qulkz!spcaw5gn`mD@WYb`2!D{Fh8k0cK^lZ?C8ROX4rA@&WLm^d z13jj(_bTr8cmX(iV1gpwj6mOUV^+YaOC1S9n2Zh}xgB4?9*q0l2s|i5BE+mS+VnS- zIK+nOBI(**3*{9AqwL1l#8@wPp33buLqB@-V1EA5=H^_2N zeYKM;ml+Y1Up{;Pk)ZIs?XcG__qZnZ{C%EnKzhFI=sQe>>rls!AHR9?#&$n~M)Lew ze`9^^&Yj!o^yc%gwqVUp-v>bKcm3@?7I)sVtbVCEawo+wq?uFmZbKPBExP#>VqZ66 z2V7`tk)!tjl6+F4ZhRL&r5MGCLP7j@gX4e^*Yz-fqu0!aGlLjh%{FDaSYs++UJ!4Z zjS5AdE+P9c28bKzLK-PVGX;wbvshdJ#s)`sQl$_^YYW*X}Wy>~;gk)R_w9+DO4324=7CZz&wsY&19>?y=DCi_4Vj#oP0qL;5cscz;0 z4pGV6=fw{iUqGTW4L&jjSQw}|aY)53z)v;P7}sJ6kO~qjUcv|rh(^&tivpF(&z8Ij zVI2XS8sr2LA6A5hA#np^^aQ$=Vw&plW1`@R;O65-NkVUDI=`mw>$?!w=m}Ja{*>1U zNkl8gaw(Ik>aQXb6dx#LqIz5Bl~(Ql`O`nWI(IqnooiR;u3ejZ^zi%j`RPutRLXsN?8yAW zW1ar&f~&i5L$*R|thW>B~^LkY++ z2g*MYRK!RKqB~F@wD{Trk`WSNh9lK2Cqg6}VsL`Y#d>yw%X2XvGLSmBa_pL2)Y{-I z28JEtPkU(&ZFG7FG+j*6+rEk47DgoH5m*~*5Alu z0)1e3ma^4%=~AP#mfzX#=T|bBrKH>u*+xg~@KmAM$W&JEtuhU!ku7tL_QKrbN}^cX zEIl}Nld016RQb`B2UM|P2om3<1*-D`5h;dkQk{i0k?x4?j)c-47n$kEED?s0xy}HR zcur_hwPZ0ISCl;BCeID)(2+tcXt~cCx@JQXc{)f^rLfG><;UgKETBHI{3rJx+aBFi zp^S6qBVX6PC^l2#UEoeoAsQHNpdz7`#B%^rnEDU49@u@UQc!N-{0rceuEY*DfZ?9p z>Y98IIT%PaI*5;$h4tx>(VbXoySCw&kx0VZCNJrA3r_Q4v4a_d!?zNwH#OoIoBH*I z;*n|W2~>jq*6+D=v-a`9_s)KCY9q0J`O?J;7tTMpf9J?2pB(+Z;;&LI{e=v<*d z`3f7mz2L~P;O?f3ydQKK)bkk1NtM7D5Q(qd)vD>T%5l+f&Jl)BqK?g)^_vizc-FBX zP#v_Jwk%ae3CY_cQV(tua0>0pt-e=H6ih_{h^cNCTlxCpmHAe=m0ivhS2C4kY4hQ_ z#Biy{iOu`#ol0x{?&|uTmBvP9<;EgFQfWO0d+j_8FeG)#=GrTI1PWuW9Dy0+&oIzt z2&j;erLrvFq()Bw?+a9oVjXMqji$nUbBiht2~PJshy5XGXd8o$w{-bQ^8PBkemE<6 z0h3#fB*56#mshrUi45RusJ!3}py7tPUmWt|=xCQx?WjQ^NTo}Dx)_w}5yM5re6X}0 zBy$K@Ey{1U0#WGd9L6#AJY?;(bsr4FRy&|*Scs>V@teH+!Re+i=`{&)oi=88E5D@> zNcsjYbCOf0Dx?_nI4Z$ghUO^4P+CXN(UV6Hs?|y^n=WP3olfiV!v~9t^Oj}IUA~lF zU$57z04UiE^zcEy1+f7a#>G^||243nxwW#q`0;xO5*r(RHQDYzr^URhWRSdr}+26b#8{>JHf$z5zWM zSy13OhGdzF&o;y2M!?hqw&80$;;%hmh=%9p=yE+(vULdqtcc+T1{WB!uQUi@_?3+w zE+j%4)TBe>l(?CZ4k26iJfq)r6Zh5&%UQP3-h8lHNt9~2^6HI+o7lFGBYkOY0!P_Z)7$g5xz&N89Z=f+9|59LLWgy$d@oNKB}SDvIFt;1N+ zMaaa!(^zcjFJ9u>=Z+Cd<ZowVvwqXp@a-i|WI^-lwLTnY z2uV2A^)(=gG>V1#Gb13w_uDlx?Q*5>iDW0 zMGiXkd<&X~sfi#)EUGXPOK2M^ti)wq6--T#72a`lj-|OuKJ=`1r-k$ymTnoUZDOc5 zT`4*uyRy1`@Pqd&<$~v$%|_MKB}3s1S2gPmb0cfos;clhIi{v^ywu=SMJlGUwR*b4 zC8$oe&G?20u%aUN@^~={4`!p=EV`{SEa1^#B^(y?saDB`>ojDCD#3|hds`EDiGNt7 zI|A>B44lQ1S+7|D(6K=$ZC3!HT!qCfGgA&cU2M1MVy%Zf4XE9NM3&NvEtIL}KPj#e z8NybJgi1}cKJJQI}$n3@tmITx`rWeVi=>`VKy*m52$(t719pgU{jhKx8wh}RQ58G(l ztJfV*M{PnDomAd&RKOPy9kbbaP2n_|RY4>ML=ihEGN(22dN~CP@UJ9xWcU`^k_4Su zw|Ls3D_}IqJgwkQZ2&bu5Vu*<=~^n2Eao$SWs2C=72F+#r&V3haz%9`tr;Txge!%% ztciLxD>ut6o`sbH-+oxCFV-opT^H$wBI8OFfT6;MD$vU43ds>v0G(P+Z`bu!33M-V zF&$H87Ano9YRif@##5wqs;n9^z^*OOUc2H7l#O%biY9QaVy!QAIt{nk;B?OHlwN zL9y!5<;cP^Etu~XhXPFOW4vE#oSlF0sOcEZhoO15@maq;4#%{!|y)9K>14z;+EcqS=(8)tI9{7$}= z#4(eYbF{}}9XJN&!3`e@ic3=V#wp*XB}DqsU_FPEeKEk{Sx9t7?0DMUeeY$AA7uI> zhl0@+-`=X-M-cD6CM3aF2c|(?k}i~(JSSm5_S7~50o)hcp!|A{(XXVp0%N;xY&Gfu zO&OMIq8`L+*x@@e01Z!zEF~~4o@ue27KaN>o~8I!h3_NhQ4JETG@Es90U}=G)D7KwUrq&aQjm@M`%J4#mojq9xI(4{ z`^wdvvi=ZHgzK9E+iXycT%(TLbeaHjaxJHpQWC%`U?>2wE`oaH@U-Wf&2mG@=b@Vs zR!{QipoxYK)^{SR@xG-Tz`B7h-KoyhprLz<07)=pmTE!Ii5*z@6X|`(L24<2rZ~f3 zh=7Ds$vQHtfa2ei+c^1SV|eYTiMp7DzJGJY?m!@ERt2|MCR+GwVbP! zv(*ZI$5JU~Sh{}e=C!~5+yBaR=(pbf&HKN7JG+s1`_126y?W)}|NQ4yzC1T~ZSLH; zGjG26>l-(&fArzuci(yE%$YCRRIO4<#|NpFGWABWzPMbwcDGR}P-~A`tB-2+QWbtG zrW={{Ms}l~SbqHY@!`iCAI~T9s|)nzV!f27AKhve(|B$1^;B~8Ql^z!X>2Yv6N|7w zKe=6p4dTl#XB!px&Xr2JI&4|VH)}<9`F^`m?zF0)e*px8KIpcJYQ0il-3*x;va;>I z0?b_9YUCo%1PA~#c@Qo%E_NKsSnshlLW4Ks^&zhg==H@KhA4OK;Wn6^`gF_R?z$F| z-XK&3IA5VOMG?M5fOK7^71{38`&B|UJ8XX2J$I)!;I|>_@L*x^4Qm3^Yf=G)khBYe zLm@F-yZ?H`@60z_#gz=`N+T5sIsdB-BmkI56pL?Jq#_tc0|v018RVe?fXDVA6v zLKyN4zR?0yDz9ZtMH~b)js&`~DR<+FwehU{)SF!OiFpR*J8%7BF8miC2H*c} z@ZO+5 zWm&czhvPV=)A3xFVVE}Eb{v~!*(eJ49LM*G$NDhF0W@>*q?@4c>N4X(Vg)jT9N>KgQ7Np}u^o~yC9vZxQ{7Cg zRm+8b*9U!dtLFhoMWG#Scfqh!48?^*n@Yzrw+!)l2OZ=A1~-}IVm_Bi^&%IJ(+}-l zXu~z5PnwYD00u=pXN%>cHtYHZY|srXcP|+ZPB;!5m4~_F07(>8sE)gIQ1MBZ&}th% z1V&c&zDWTVmvzmMtt&x4#}F#S&v`w`&O$HUH&<$LH>MDs>XBI>ZH= zWGA4WQYCRf-vKHSlMR_`_M2YCYrv?p7j3hj*f__B)m?1ltQfkSh+E3kFpLvW2{frp z2_q7~POdhw08WbvYZR`}SCJiD76+s*0kQZnFzPj=woQmfX0=D-6`~UIT_ACNT=XLT zX;Q}?ifikpC25xIV7c(gUw1ci&8H??Ds%txNdNcViGK1y_$LSbpT6(>@NM&-{!0I= zb8WU=haUUhp-qJd!`u7>`EOc{>${Au^frAwcEdgRpU6A$j+bA0do*)yM?gys9c_>2Dt%H@$` zM?U@Z*zH?4A3c8j*4u9#J9cz!ZRx9LJJm|@(4h}9+0?O5Kh0$`pM3Js#~*)KDin?# zKO$Q6+4HAi<*}ome0JiqLm#|XDVL5OJ#zTq`?YFmt22nR*d@DP&9wR*Zpv?RPQ z6F4#y zjBP{GN3bC0%S+L}q9D>?z#-R|L5(&`NOWS0WSqPviz&t?TpoUpW0pOL_Cz8?RSIj( zpw>co%2mT!t*7x}V57Mgy;^W)JlgD@aUfVPXg@3_O`L?YBN4S}@si$}h=d}3#KCgt zYNDnnhT8SwpT^EYX50Yyo`&jj)%yN{-p>w4KX@4n}*47r-p0M!j>C?@nwKi21IZBgRQxnG&B?3u+IMX#kVj=k}Fmg{v z=k56vG+fG*WXdk zoIQQ&)T!GyuRs54=aY{=K6>nvgCD$i{IgH3NyK2Jr%}@#|;Wi+Hh8I=BVZ2 zYa=Qc1}^N;@@9{><3|W=EW|7{c&*CFMaL4*$whv};1OGLkb@nM6B1s;O-5u@CGrf@ zQgu@yZUVIzIsM3WEOjSPPOZ2ANk4u+{9jK*e5v7OGhL5+?_BLCZ?>Ii=lMWI`iK09 z)uNr9on$iEY&N4PT3=shSuXxn;MiI@%XJ#E&>mNm;zrwVEz;CQR>kh_Bj;bx3ul*IOPSG{}=)S}Ps+`0~b-hc1Fh4W|M`t`4K$;5%*zEdq0 zK)1Pa`O@V}7jNIax3spF%4IKo{ux|tsaiaD<_kp@jvW2?$^86h$3d4mn%G$V_>&JW zUOM;JfBjb*>ubl39sz)R@9p1iEH58E_(5_b;aUa~5A4_J0F`_rx0F&?hEQwj=+m%J zt()93zCqs#g;ozNR<3E*6Ipq4m3dU+6W;5NJDtwJntT4-_nmSf)uC!5MQPV|b9G|4A<*x6M>g`1;9vNQe!J8yXM-mTJ*L`MSY2f2pFCb$UD~l^o^CEJ zFS2xNJ9M+DO_^s!uJh!<-LAx1&5EVVl4bL)@>V9}3LGbPc6vdFZia!IN+punO{FK) z`SP8`I~A(b-|l7$nbT)aAAI)!Xuzpla&dLZ4XhCBCz9ON3DArilBY`?3#thY!z}BU z>ys00du|_Tq56%S3kXXU?8>^U(9lC)10?xmM1`wK+*xVmE72%QYFr2?qFYCNc@^f_ zg0py-LytXk(lmVqadqU4#L|Xe->LNN1!Gm=;u{0a&c#Znm>JWcgG3>0BGoBIqQi@{ zG|Vop;bb34=qm+0A1abxsQ57E#0Bi8k3TK&xHP1f3p^`^9>+#rF~j6KN=Y%;iQ{0z z9XukHBMX|QOJ)>(@WK0UzVYj)&$b1&@~CM1;N9NO4u#);$N#U_o#nOKFArS#;onn# zdb|T2^4b1Y+p}k2);xVSw#B#?X1@B~x^nax{q%xu;?GMr7>A_i!|i?F z&1VvHv%)h?RbmWP*tOkA$D4qp!E}|2NxVH6Jm6)iT$czEfgw&+`|UEo&{iW0c3)qh zU>SfZ^mS|@G~@SNEM5@U&!2Xm?L;t^7_Rlz(_X*pz`>txhuy#edH$>qFLX<1`khLY zTkf?>tJmk|Z(O3dvg2z(-!^Swr|WGgvRKaQjSA-XwOauv+`n<-+{u%TCrkYXwWBD{ z6)kKdKL;j7NQ8|#997>Q-j}V0q0!7&Dyd?SuY`(-$tcrG0Kf&(T?vBG>H-*r3hPpi zO84q%S82UANQxpezmx*mGxatu1eIV+2x9`^=?!Mf@KC5{H9~t*`+ao@2>W_hAay~e ze*JF6)q5CfI7S#YP>6^&RBHu^Jirqci3gjmPWcRj5eA^5ECWsZWN} znNN5^kPf&x3fda!M5ZOU&MbF;L!1<`$rjq3PV4Z8A09k-u*0-Zojjf{R{rhTXFq&5 z_~Q?}KX}Xj{Wq20|F!tv{Id4*g&=-+rD-uOA0VoRk`Bg2hhn0USCxtY{jvtHslO-1bNLK5L! z!pyY^NW$)5_rP*#m$6Q#+zFMq>I4G|I29$*j-%MNj1k*}bP)xXBOBvU29*&I@?v!i zR9#LH3{40~RFn%!G1x1bz?r3!Cl*^SfQ&sL~Tno8NqCYrBqO>JEf|bDcXs&{b1qsK~iWoGo_6?E76Na z^4Rm*A#uigiS%a(IS64{3kW%MB)7kOPyPDc3C_*aGdK*%gNg~K0=f-N z2a9cuLN4PC$P6nweL$-!)v?~MrVzVz>MRq2aa&l$fD8b;5ACIaTF}IwKkHqayZrZm z_qV_L)!%=4>C*9&pHp=8o!jz%|CayL54=A*VExfM>Q8>d{kOlY{Mqr=^A|!AMNy9) zJxU}JqYkgC>fTNEs4(%erfIO3Wm(hPzz5)<-^V$=@sDlWBggafN0OxN?d@K#XBfu# zp{75s>yDOZZaF#&TmxuK@iw08q!KHQT7jYKBX<(fl90BvU&G>#9!aAeCWv96?^cb( zBKd?^Ze+C$4L8REqnq&Ij!&UrB`z(FB zI~}p2>1}akDV12RH7cuLoZT*zVC0cC+Hqypq8fU^^yM&goIp2R$#qHmWY-B<-mf&g zEz2XCQ4m=@fJIAntJP?6)rSUYsA!-$gXRi22nv2DQx%M6k=qcpVJV;xYaK;~5@Fsu z?PiMRX2wjXdlcn#Iqu4!o^2)vAVCKJB z+mH4_Vs@mX1-(Y3z+S^Dqu*3N+Lf4O_G_l6z6K$2l7qyT>0gH$(;lAR>CGHc1Q^=c zW*#Hs<7PUw&7SRTwcn|~JXB(@pq3Q5r#?UFIi}&-C(fL`e)IarAAk7nM<;&#j{HX- zgg<`Q_`|o9KYWw@Cx2P`vrloz-4BwWyB;`j0PyJU-McF*EA4i>NIstD!8hm{@C{%A zTPBl9nx^AjWLZ9b{P@F%55M^03jhe%3x0*41VLC{UIys7c=6)g+#GBVM+kyoadB~L zYioXfzFaQn^Z7!dFnt+Ej~;zaY_6+UuRbTI1G5W23XTs)0F;5tSX)~&P4id3`W3(y z{0iDod{VH{U`>3Sy$8lmywY`@&5fmcCEuZH5>M|51t8ow{Z=9HZNjNSo-fj7LEpiQka$j(Or+SJY?`vsqQg>ygv&JohQ$qtt}WSYNEdav z*65Uqr9@Dy^;Vwvt{@wXOU`ARqDKnPnkL_p@}?>HxXgxu9wv*H!`l|JIh&@k*%sD$ zj^oSQ$et+qiF{BclsmDTN#MguoolvPre4xEJ7yhu<7_SHFm9%-Y!(bq#9DOMQXN+? z9FcRhtfVZo*u}PxY4iI+(qwtRS%MVq!_81p3e4JOe(CaKM^|3d2k;4!dLB|c!kIW^ zASJ~9BY4u0xmBdQYz@9cOOE5DCy(ZVKtjJWl0x3>EOS>Gzx$RvO@9Vk9k4{*Dj9%C4blP24 zIscITy?27295DXbTk;>i!2l%v{P;^C>7$Q60!X@Z=g#BDkKcRmJpiT$4;}!ZeER99 z@DqT}g$oy8gHxwY9XoccL%cKh@893t+F2rQpDa|TW{p)SE?96o#)&U@|JwVO9@0uCNIa^&2(bGL8bh7*-a zB|uEL3^+)wR)a0m=`>szTu*#bxHdR!e4Nqu_`#nONJ^|PR?FFTs|t{$DcpE;QW)4s z%!W)-MD+j&aE+}x1}p6jLIat6M=0a5AV|<`1f{yqu^wSD#3UzKfKKk_N@1$t*IEw8 zW3YG}ri;7dj_@|SwM*+_-Gqgh&Ni5<25KyjEGF7PB(z zRa!xZ4MPjIeAwj97CL9jLcUm`8g<68x}bv8TOLl=P=G#Rhw&RN+cg^5GT4S)svQ(+ zL8|0c>pa8Ex5W)X4nmXFxgsw-YI2uLo%4mxg%a~+5x-|cl1J(vOs^l8kQ9nBtv!U~ zp>L!ft|uR?MT4Bx{bXR2!7D*pPo~>H}CIC$cWVMj?X{@Y{x_usOA{Fd~iH`xE~FS5rjEkWlQ>!fOGpzO zLqgVY8$H~;PTBTN8x3>Q?|VIs>GSoV@9)Oh#xh_sA`&myBo+kFCn8(I_S+sP%gFg< zsu=i_Ec&@h(4a#ZtM$SuG)H%AEJC&W#>wp77FSoPdPUY$O)*W*vgIHdb2;H=HkQoQ zyRH>DhU+M_Tv(=)bEWpVno!O)LNKo)X@lm!EOlLsgUG&N|>fWkbsFLJR5j%Tifi1Ps<`-Jr3dLV3Gv^5gT`n_M#$;be60|90 za_RdDUmLM z^tlGQSDjd;B9!MO(FvQWOTt-U43OHMgG3fY!@@2!inzrEun}OJ$Zp)caCag3Z%*`n z@TT~CzY_lR?`|*NyFTic(;rw5x<>3p0+;~c07D5(CxDe|wF)2txB$8dK*`y&X92Ku zU58!3h5{W53^#xqKpy}s_!sQ5>({RASHazK!a}>fna4^#ttd%VSx@Clz)FYg#J%vLgMlqNc=|hDb-Llb23=mLmCq; zXy#>8qh(Ov^j_Bv%FTe~(91)J0XVHy7qdBbt-!B6u0Ncsw6B!d3w17?YIvPYLd##R zbiORGAFqpt)|BjKd9Bg9P+=Z6_>L@cn&QHp_FTWx44952HCwqVAY;(AJPdEvbOWn( z0tQ_wbwDAyTxG9RSiqxLE|KqjA<6&xhTA|0jfv2rzl^!$;4Gl5#pjy&i2+wr)i>UF%ffmk{ zm@8H8a+O0cN;j|M>4%hXyTM&7F;^?>96(ZKe@Obq0uQJgS((S1t?WKAO1nZP;BX2o z_BX#^%hx5t@Tk|Lt-P|tRp<8i>3kDGb3nr(v_T=c7npL;pyN6g#8SWl0c@=cDC6Li zAJ)zTHP)1|y2hCA33V<~)C|L3K!xO+UABR4FR{}l-~}dOXb3?z>t->p%3MiVh1{i^ z`G<$j-~IT&{Pj!FA-~$kaC^niOz+I}^6UDHYfpQBnX%@jpBR#Oo_+tlcRxFJRLYmc z#SNoSvTIGJUejq>%+;Js$xG%UP4#;*(cq99ewSu`*KixS2=Ud#TCI*sF+fj1MjbNe zmC7a4$u+8y?R9qvMtn5G$v1|2XtF*C&?h-)_^#2o!Fk&RFY=nfKf6 zz}EX)fhe+zD^I?9x>YQd);aA#M=P?5m9H%@(*Jwe{=tF%A06!f^icOt4tM|fQ13_Y z^?!Oeyi~GQH#g=ht)y(rnR=ZQ!^qWLp`{mTs@bYi9Z6;k<5q#bl&D=!H7~>Wa_RDV z6~5<^^*LA{LsFH!l%u~BNCG6vFC;NW>BW#l>dp4PE`P|k6hH@!>tf90E9awpdx;%M zSk&m-Ig%!X#0QXEUju29L1U`7g1(DTWhs5S0?N)<2pGB9Y4vbGgGUXfqDedyZsw7| zD10@fKts9e(`~m!8I6W&u-5u~Yhh`9bES|@Jbz(Np2in6sD=xp?}>P#uf{?pM?a14 zK8h8Jw;W$Tew@)K-gvYy+HCybqlM9-M%#~epZ>%@S*o^r|G}+mSLs$=kr>^SEWia< z7A*<7ePCniDQYY6fbk+3yxD%_bOWLRksu@Z-s*ZVc)%LZQbn#!)r-AK5)@mP*z7T7 z5PXA)tsCe_5_QEy_YgwTuC9dbpZ7Js>lv1%c4S$yIe@RQPI>E@r<Jd}!xK@Atodp!?4ccLAjSud}^RKR>;m z$v(V!`}X}ORT1{OUaVA#rQ*3SFFxEzK3-3ry?ixYZ(q%{E+^}kQjJT6_FRoalP%e} zyjHoqTE4VW!iD+#zK}F&k-f6Skd%46QCNHlB!PxG;C`I$C*P%DCUB=5S`v0w3I7v6XMreHHpL*Msh z0Wf)nVl8Z#xw6T%geQwsHk;3H)+)tOxBSQXiSONaoNRKP=^$Yy1_3CXt%;^Cvxlur z3#X2Ldg}-W z4dFtWz0qLrH;-Q(*?UltM?a$xjUUsqnJyUi`ki4$v>V?3`x4C zq&8RTl{`R_B6ct?$&g??Xh@=jb-kt@>HgxF(#}`jjoVk(R+gSW+bQHS=g*xjoH}>r z^t*5V=8ID&L7~ZJ(uwu8R5Ee$^OFY;A3lHn+*Z$L6e$kuFp1$7+i?>@qCGTDMO13!k--M{pf?8 zzxgb`w))`g#WTmxoV{}A?vaxxzqoqq?#jj*#csB^Y_*iit>roCPJ_8qXC5}$hb`s_ z)wx`nM5VbG%(#7H!_6mUKQoUu%4^wuAt|PppXSW|9Sd4*yAG7D*uqSgU{B7@w->_A z()!)qEJ@`fD!v7yq)-{g5tW^=V#%23UU#I@R_t^hz%-Qx~~56m%rpi z@w1~x6AO=nDeL|N3bE=JjUtZt~Z2{*MlB|Lk!0hwpEl z{OsZK`rQZF^ye$N!*>=wzWw<9xqF9i&!0&wbv7n{Y?ekgfR>Hs1suT9n%#Ee8f-{%hbNF zE*`cyB(ZyuS+sZinGN@A2-5o!`bt8Ogp)P7O0UiI`W~QCFR;;7L7<0-;vtO*6H4uV z*L(i7+anaq@dks<0Lwzlt2aSx(4bY`He|P06FIt3D^yF_TqePEs1Y8;*!10fVu$os z`@`S(HZvDS-{0~RpUw?}Y$maqSSyzELc4B=?FP%#dCs$B!%zT^u2)zCS*TRNg>g8* zQQy^yytGUU1zzGboFI!g2tC8K^im-!@Sy1M9l99>j%ypfZ`W!i&#_ilmM>nq@YVBe zRp#^gY{W~xROrGAKuug{Y*O2v625pG-h}HKe%?67gD+ zl;g1`sAno+q<^~N|G|N+pB?V~;lbVy4s?HXAo~7+?oSVO|L|b{fBx8ca_vgG@@Ru9 zoXvGkuNMyAc<}bco9|q{dwwIsI|be;CYkz5o4H*_Jc4hKNt10T-wh;%CR=MQU3ubS z%-*DGfDt-zRi&w)erE!$0dNzpGr|PL;d+};#A!TEeoO68<xSp=~ zs#O492P9#@0U`Ouu?~&~qoq=+NNlIy^Cgjke|P$Rzw1W6iPJh=cSq;?3e(}4#f5o> z>43ujY&+_PHf+`lZ9uUwwEK0cZ)iK)A?%{7;^W)5C4toyzELmVyL&sI-K40x@4L^) zXIHc>_ zTi=)*f4Jaiu-EN6h70MY5(H*nmDpP=|N4{g#|L|Vav0^O3=?7e=vV@ zt+G%z*D_)?)y^Kj`{XSGNpqV?$tep?r6`vcsLrDn21DMcF*j?2*vM&l{g8x$6`jkGBb!fuhdp}-BJee@b5bY58qJ2fsqTPd!jGmjHYwE>qJ>uWK0HM+MvGXz^kC7vdM zMv^9Uewzc|O{`l@9elQs^1p=V_qz%HoEA(i21puITX#uX|I*6BfB5;&Bip)k`63Lq ziNq>RH%wh^H7mL=-~YPv7x`p#T3u?{OYH&)_bXUYcoUWf1XmDS~i#ra38D~ks|_~7%CpFiD-o=+vR zJd4dJ*ST?J?$EpMp8n$0J8!=E@b29YKlQYM-GYmghVa^mfOElk&OPh^}Y^V}|x~2jc0VLh3 zu@ymb31GzzAOsytH8C4@&~gG&pbgZVr+q(g4b8xreh0PzJqSIOx?iaJ>2joqU6Ps) ziVveIu$fMfE|zQSq6v&vknPI{5PTS)RqQ74h2ADz9YavY4tgJ)_J$|RxnJ5K2!QT7OwAx8Hby{=tP z7FVw=6jw5!%B@~otR)M*$d2_UTa_^9u;=)m1x8J`=SCRtUGHjK7jA?o)lo>utA@uX zmd*^E!Zm2Mk-FZaHB*=OngtZS|G&NW{&D0?(**Uu9B})~VR6{onKskYy<_iyS?pr5 zyNAX7GPwI;?abVmo8H-WlDel`EtN`AsiZ2Yd}fkKW-`6cWYT-@O^}QThNpKymt~aq zzF#m+rKu{J>Xy0%JRpL>U_>w&-xJUKey>r=LwVw=hjV-UupbKtuV24ryf?kKyL0#M zo$K#kyYkkX>uW1Nd;PWh_aB&7OoyKgKb%_ri=W)MrrViaSk*uHNS39k2lwyXy``U; zZgS$RK{q}1U}16Ipqp9H>98@zM>l@?i=W@WcV|X7ef8?wAAWE>9t->2HivD`X4$cr zH!XXc=G_hR&idX{Sliy+++Q-p@=Iynet+mZ9TwY&YSXwYFnr7d7 z_v-cc-v06XizOL*q8zi5w!l_;hMC1TzyJN$fApi3^`+|{T)Xkk)#drQ*MIuj1Koqo zt#$ZO*6ppk*WNc9=T@d>_ddR5z5apu`VI4~JNt&YedD}&)@YuaH-B);^3g|@6@z6# zZ(W+T86VhZ@7fpiaLzmCoyD!KH*Oi<(5>Cvbw=aiOg0h8WcYHip zk+PHLHga5ElE5J99Q{Wc7hq+zUM(x($Tt@_eS+PixHdM|L+_HdS(i+folcF`;vT`8 zZZxpDFi;W?s8YN&%SkWvzRp`@D3bvung2i7Z$B5U?ww^eU8YZ*au(gIE9ug8||Q#clgvY|-+O_x-n$K!URBC_cm&{J^7 zo$*G4dmbPu--a`85Bk=fo>e=O%r>iXuOSa5h7UzU%jRk-rlgYHy4-2kG>^=ahy6!H zWB14p*LbJXlm}{S2#02}+8+;sWe7&lC35KtWGi&lad|EA4JZjzlFed{Mnco~@4fxj zoA;+4+`jd3KA(H-)t{`bt^V}YA1tp}UtNFn$JhGbcysWF*AD*linI_t*jit?dE{hdR zZ`*F!*3GZ}lRr27>G#*U>V%avJ`!r`pZw7NZ~x}O?JNJd@czv$o!&e@@0neQ*lZD} zC%L;H-Pn$AnIkhZ=_O-y&+OgY_HJ%2nAV(|8crraRzg5I4y%kAa8?O-UDh!&|7Ht*$&6^R9w=+wnQOD;+h{Gko>A7P(` zakn(j7Q2{6TGO^aCJwNzG~)|nj_S$| z#eu>C;@c~L$%i3Gco%hR{b9RTpfMMB)P`Z06{TtePNUXnaZOUc2{=w9vE66xoJNc9 zbt-TaP;hlH+4}8=T)vZuHk%E)8D;wW3+V*dZW$Rol$s&c=pw&6js&l~i2Lg@j^Q$fcExiz%(;z;?TokDis|_W1!^(5@>E(>_NP zCIL!VBj(bs=Pv`GKbwkF6}c?PqD5>S4(#KY2W4b!*U0Qcrv?(YS&?9asKuZ0#miYL zVGpLgQ7W7Y?6|z^4yS3~v+fA&`JIcFeciTm(Q2L9^cgm#0@Fo1zvJ_HlF67N@%?>UCSn;V0vAnQqo(!b)dP^$VmV5-N!$3W>2<8TFf@z`_Hy z)vQJx?v@~eomG*AOghzVN~`wdA6#vJh$eZS z-P_qtXOcY2)G~RdkS}wL$g@08@9k`{bSaZbdcE%L&GkYqO&2nGt${n??d0lCcyT>s zTJac{{5st)-d_A){=)K4{-2e9{gXYpjTRgblF%IetJhus(|@%5%hx@NE6YFq;eVg` ze}7=S^6t{r_suu&TDHu7{bI(joOHPWg+O}0b3S{)zOfq)n>+!XGqCOt#o%nS@pLwp z&Jbh?(y>$;Uo)9_DjCTp!|_Bo5D7;T(QUVXdELU5(&bW4DpOUFMnAH`3yQ!hVjeh! z6DdV0DKfB3OhAfBNitJKl4_Auj~;1YE7eY>;RYa@x>XQ9vk6w0V3LC5rUfq}_K6Dcn>lEUF&X`;8AIJ_qd{YGEKgd@4kvM>~rxrQtVg_6v$rF7n=-!8iSpFAF# z46`PKE}2Rs5;2Y~HR}}^?d@hQn@Qfh`C&ZdFHz}yK0WMrBO(6>*WYKE!l;kaUgyvD z3j;*G;x7)d|rw)=zD!LS3I^6e)H{zfBOFL+i#D)b9MAB z5~2G??+w5G-V>|6a@cRQvE4&!P_6VMaDU6AVSCsmZS2~$k%}!++YO~vms@p7=1W|e z;)D{*0lDY zgG?aEWReV>DHM~y3)yru77b=%o*&=!{?otq{qw)`{NCT}EE<;w?cU>d>%Ci+|M@Sy z-~1oZKX^6r)_XVJ|HV%iuYI(n*DYVaxpwpRhQ+*-NEheV#GOsSxmWgE=Y7!|)*!$g zPjJNy{7v*36w*u~oz0~ZnG{>hP*kQ+$mFO@I+tNsDi(nMGhC4v_(^W6w3RNcrAiC2 zq9Ksed$UG=ZZ?pgjh3(s5G?x;h7h%yDeq9cn-wc{Y%@7LC4xFcJ;D0rOqrz1qZ4W= zQ`Q<0!>3jBO!F(5@-D?`rG-o+fgWr_p{fK}VJpu$N<6$~MQrok>NPteuli!`e6ilC zON|=eXoh*-%?Mj1QD`aMZl%>#`kh9v9Rr2FuP0+m(?5eL{o8!EwHtMxda>p3XX9xw39A_ zv1UkM5Wt0Gbc~luNu(-3vE*5Ez+FqsH|)Q5eh%(s0Q;t>4TWVv)KqwmkWLfM2ac{? z?sMBuVggP>i(nY2b>t~k%OQgAVpRt=OF8ED>ZQW9YwsQ&9vlvuTkC6cv$|L`?Du)} zdfock@`DHW64B_+_V(4QS2j1-*Vk7*{^%y5q-WFu{vrVEGpWIH;=|I==~Q}Ex#JFl z)%mb1+f$8iyfyq2eahgUkM)gauaU#hE%ViPorKHs%2ViZ8@@^opJ;K47MJMsi`rY8 zM{;;XhhN+>3wEy`8%;#yLMluZZ+j9m{^VV6(v{9t_>#aC#it<<&~VgJf#-@Pro?fuS&1o^ zXtu-&tk)l34`+3O+_WP(V~fu^5=L)k&YztR**elTbI5(dz>!RGOPbpBTMf09JxS!r$_GI=V zSy!e=xhdLKU{f+(sAZ!fwV5xkWx1sc=V$os`~`tX=kXFLsYlGBPD25a60-%74!U)W z*#4DJQjb`UVY3fRupt(3(1sU$Gyz$=M+vffK&GprLckWD0-3M_rJ@vrnb>F{xw^+=*bd}U?;9TLkV05Ho zxU)y?UL?^?W}h5(@4GwS#N6)Dzq>V5D%D5h#^IoHXHEI$+v9)n-uU0#?3t}jw`0%Y zv%40T-K%TisJ~2QyTwvJndwE+-AJk%N_4`>P9WY2#G3wS!xwJElMRt;)a80rtXIT} zT$W|FE^@UpR-~@-G-Yf_D8YXXbg)Z}V~uhd1kE>*#Bk;_$?Bd@ri$Sl}EoKWO= z8hD{tDoEw5BbfcY*O_m>R{Y%`=l|g6)PKI2`uD#~{_d-#@4Qa`^PkE8>E~Y0iYbze z6xVi&RNAw-Wu7;g9ec5*b%#H;l4ET-dNG!t4(0UW+=E~)K{L$?SCJ7_WrCW5ZzYM7 zWv;I9vRsDEcGJbB7-fv)4UznOqGa-?r=3ZoBW?`k=Mts)1U;8zaBe$I^0tmWxZ1*G zC2NY6F!j`vo`u&WW1~f$5YvzZ1Q8b!{#gCs z%5%etAjq=RtPM~O*VR^?X$Prh$XY5m%9&C<<7OC3hTctNDS>O|qP4s$-%y&}Motv% zG?x&V{UWnXG3G+qL8E+I$(ENdpJfBAWy=d$ZZ42}xs=o;PHr%EtcJbNo(Cvt#8YHo zpWX6{g(i{8Im)qML4o#CNU+va#EduY+xN`rbm35dp^H+P-rL%6Ivq+?u~;omhn32v z&3n6%P_R~2c6PR$4qK-=2{3tyz-UQsq_9e}UPr&C_V}%}TS~3Y%MG?xW!w9{1HO1~ zyZWuS2_=0zs5P38s{COra(h|&=G6nBq<{TkXWQoRnm3(mYtH+6`$zYkhK0z&svL^K zUE345UQJQq-xT;R$wh$2Pphf4I#rNP&8pBqhz%qrU?>q+)AOD{zV$ly&tBz!_ow3T|6Kh2H{@^s zymI5Unb6i68;vz%DP?9YwYF{D-`dz)i7u@<0*Qqbt&0@&(V`(%oQ)NY@ggq^Epi}Y z+~5MdDiyJYO>6P2;%s?6O~Y4aqWDGl7JfHgnvE9b_9JtyC6JhCMQJyYk2Ej1pB1bHUa6xK8r?%ALv1u+D~zsO z&y`p6MJJmN%W-ol55%NV6;AU}9H7=fM|HPVlj}TN&5NyKt_Jj1F&DUEt=j8Xy1m*- zxp%lHiPeTR|AC}>wR*E!g`<<=qWyMFYL`NCG*StaI&P*DM6VDfBt^+Vi{^sR&L{f$ za9b!f+l`bU*^0ci$br?S*=S&FUKWLP47@mSL44VlOG!P#O27{7njCY4{j0W~P#lfg z*rNB`mR~GDBDt4sDbM9eEuRmt&+)Jobwzgcd+}iQ@uR_b&>3~>Pin$=+%MN^Dyhkn0PZ#BgLWAV^?&AQMI z#agSj$Cm;HC`WCZe89 zL2BNUG5B+aXlXsiIax6QCTm5J>q--6>u{=0C1o=J<*E|oq!2IdQlejsGpaS+2xObS zOx+(~%9}ZyeS>jC}LpA3LoVv0fsNO{OP7Q$QLO|Daulm14`oAMtxY}YWes$7w&ZGg-T^9%>WZE zrO|oxe0vQz8u-YQnSU7xCFjv4@rMU3Ik|1~t-Iom5SOQj9asBQ2Gom!_^{Y?-m_|N zRz#$LmvIzL19obG{lM;;vye~s+Kq8T9Jgx4T0JK#y@m|*L=|%RY)b7m$HVq`(C$39 zRLJLtR?Jss)n2nn(x;^wcGj*n_(<8#H4FWCRxOr#qA<$lE57ug|AmP=}J1Ef0*_SnzE-X&c+E-KNHB&z(?W2yeF+)ieCjK z0lK6`%%D;(CUfCEk7vamG5cCo`B{xjJ}Xd{^&7z*cRrlLnZ9!u{R>39Q;QZjhr{>% zzyE%*Nb`bV+1-le@+nR#m&+no*6C+Hx_M(b=;bo0SS&nL+vj)k1%nj%))Goo;+Qyk z)`1b-9LRDnmR1kCJy~oo+nxl1H;uwKu0HysYeUQuz<3jU{ocFdKl`A!y=RX{y%h!P zQi9USXX7r%zQYD~sJEu@FT?z7P5gA{fR6dfyZTc+V_D#U0$1GN*^?vWu@FLW#Fm4nngb=03PGZ znet4WxgTS8DK0BX_9DNN=S*qz76U_}-H}GtK%*>NL{keGVK;2FCrr_zDN;1WX;3{d zkaSBf{fc*DpdFiOKxeTM64ue0xnN#zjsh`FFFK9h3?U}``oztYpwSl|rr_rHpabm;&>y-D}{R4!=Ni26j@fn2VO~$+dx}wcnDQu zxFXdmM)<1aPXV2zk0W^hJ8mP_Dpb6%!ZEmj+&A@W! zixmzak-D|I#5)%)Vu|ig`aPW6?27>WRgIdY3vTe z6Ak+B-M+oFWLjP{1p+>|)A{qC{fsM@h9vRz{NBDWbn0W7#X?jhWc*}=!$H-0k1BL_ zU22&fWGFTob*(OKubKbl%>gJQEhJZqg8SChM?W>@1CA}X%T~-Ms|qKS3&2E9yBP*~ zG8Sys#IwhJ8W%Im^Kd3od4g6|?YFuNbC51(!jaio9am=V-n)Cyul;`?+J67NPyYDY z;5+Y(|Id%R|L~(%-+%YYU;Wiz=yX$Fuft{DbnkCF9s5DIgWk3@yY;bDXqBloN;GP8 zlVX97Y(<`u$d#U^Y&>JJ~rLDch-^6+Y|cjzyrMn zOf!7ir_g*m!qFa1RDt6BPj0iVLCC1bL@n&mQr%vUkBt$ptH>mG$`Yi}`bn^=q0MkOyH z-4rCr%T=mWawM0zMl~e}9!A*8mAwouSWA3_6T@X8%1eBeP1Uken{KBgZN4DY<^2LT zcTp4)Tm-x(-Yn`PWK#THbCEBo0r!hQtA~%FTuo)zZ*aMSb78+G31m9#>^1t#K#8O_ zB!+e^S-UUGv3&wGh$`Z>Ywy`?`ybu-@aD}MVPD8@v92yJEX>Z_xqUkt4ka_G4?p|> z2GW~v{t~p(!LY5_>R&vx%h;(8Pf^nGM`%oqNVA<}zPo1aZo3`3+lPmTd@1?HhwksZ zfA~l5VeS&Q_9vWtV<8H0LKP&yBi^L4*t; zrn14AoL;a^&)H|qk$Er)weG;~Z=@Ctj-mSH@5)20l_CC->S+9q@KMFP}= zBz7sri@+dYZ4EG3oLudriwpz=7BQ{JH4@}qkmR%|JyL5)UIMk~DDf_u_p)MD5gzA5 z-A*IMOBoUD=qg*0w{qNC787*gSPSWLO61G6qSB?f8r#b_yCNG9t6(D=63p>qU;?J@AYtrA}bnR^} ze0=-kt>vYarG;?78;=D`v4EUUH0n~fA*-Xd8qc=ZoPDpqC(*lkj5Y*W#3*Q7z`)a{ z&nE*OJv%uQm`>)%%#v%`J4PE1+w$W)g#NR8Qw{kd}2Ap7Ms~foEKf3;^!+XlsKDYm&lm|OU?l$!O4U4 zg9S}d#!55iDd{uZLobSx9%?umVW@PQ72poAurj_FMp0^!(<-{XKU3(WJb>a#z6KDs0~0=TKu!P@ok6OKEtz(qcMGCmk~Mp!#Vef)5k z&m^X1bkS%4POMbQNvUvC0G=r~Dtx=CbdNhtz_Y5~RH@R?>X1djRFpPy80)-4afXS{ zh$suNlF*dM7V6%>-ekTOPG-Yzk zEI2_m=r;p;P-KA30FdL9!J^yn9|HA0Y#t6id@5*icyj zO4`bEjb23){rIP#Nudv z;!n^R7Kr|Iw_DAL1;lwW^Y?{9B{}hDGX1ptGLTEYb!XBMD#f!(nQbT{MhQ$pTICMu zQ+|Gj=b<^a6V7nL5gxqk26Wf^b_e;q{2yJ zX)sDrRC8&Jv(oOjdJNsP z`h1amrp&WdWh+NQieX5AzHp^Xv68_ae=uvAMRP1S(I&^-@$#VU|2Tq4Q(n=c(VNj* zq8L>GFh`6;2kAC^aE3S!I5Famc5*bZC-e$h38>1Q2DJsm1T2#hqyQ^y=Q&V4V4cC+ zU5cBIGr=-ib3M}ITBs?NI!@FATLEBWprmfVDUZt80T^XffzZ>DL;|C%QwMwP(UXIJ_`wh2@kpy#Zz;mo)`rbu zZa3@Z-JMzeOgt7o=(h(9TW6TR{LlYoXK(At;bZgOj(+NXDiODCZ~w#J{^h()(l777 z{pLSfEc@2|y$?Qk|K^PkO2z#4_9pDpV&2v1rom7helEIyu`iO=20+{gxlp$?vA%)U z4AcDF41d!Iac$j}A9*A03q8V&B7cYEC?OP8iU{&0C|@yWvh=+@)CO(wHD)sif2 zmPB8^tj5zc$FJqlg)|w)ICM*3C{4{;(dA5u6NBQ@T4bLSc*G;+MPdt{vJlb1#4b>x zeme*v4m8DtyiP@9k~K%B5PYO5kyyz}3*oX@l4UmyRKkPu0QS*>7=c{4szS+F6&Iva zrGbuZ_((_WS*^CwGT9O?mrzxJD1cA^x;SnCTW;mcSh)67(^}1rGm&tF`K-885EgQx zKxI-4Y=eGrN|t=AFqg(2lX&rgJ<06kD;Vn5*1BR=WFp3@7f@2=)SdKVx71T0Ws=0w z#g!x{d1MVO2dz_AB$|PTRCv#;C6`TVo4kN22Q&nF%Drs!t~+u2mm~LH1Yk)$>@|i$ zkKIkLh)Fe>bjFJd2BZ0JZ0MH=hRR(WiejW#chb(fmRP3H!wPt5@DySy{e& z|K8%_!rZ)ZX>N9H$+WOw`UKAqDXB{mRtLm&0&n4&zmjI@YQ-xk1~R~iGaL2DygLKd z+^i)wz2L-A{jz1z3*wlePFsjcW+BTXE9or;YZTNR7;8BFXN?=&X}u#k7o;?L!i|ZN znscU%aoWy^1x1PTQeKh=o!S;@GdoY{W+}~@DQ-Pi22JEF2|H-1O=v}98SSk;!GKwp zdCpFffhXjiB7SRaen4|$Ww83Vi^koiWHH3CaELG`R!KbrOfWvybe;^n zKF@G#X7JFTL{JcJ0ZN16ksK_`@GePd(V$SpDT2Ki}9`pPrdIJbe6% zS6>}<+x=1Z)mMLFGR^xbRytq(phZ*6XFtR>RPyC2;=Y**g9_O3y% zOC@88cw}zQU^L9?b<=CBOKPWe<*i?WN%*NI4Uurm*;D;>F9-ZOwb^e}dg0_CnN|nb zCbQWTwV6Alq$i`Doy`aL@6x5>#~z8ln^}2nVC6~+Go4&U+KexTI1SkB-qakdJ z;Z$v`au3p=Qdjm1+-8nT3+O1BjT7%Ojvq3i?oOLB9E|NL-ToXrw6*#8FE@a3w7BqT zlVf@gLlbn%?wJM0G+@pK3x@sZBrX9x$Mn2AHS5h9!-b_J0~S-UqU;rTjJML9&17zF zmRM(Sm9#PgXOBo;(;`@ZVuTZ$t!j`J*7L}HMvYbgU`~b$=wc_?A;>bMk)*l6M>qlO zL|aL)6uGPpplpu{~krN02P$d|87#V~iA#3y$QB2GbEeo#&(D zPeIy7urUL?B?d51AeaShZR!Tz!Gbb~(_; zM2f4mDsqJ@)5$E1YATevz>CqsbT%+LJ*$p{BQzej;frUt`E>x#pUd~qBU@tAIUZ?SBtO9@w9v>b&Y&0Jhm_fY?d<5H!)b^tT zwcU`0z2@U551+J@hZXJ-uZ#zs@u1u9wH}UogJJh^r}~61z{+92^Kh&J#)I|&d^Bi{ zhtCQ1M616?3IS`Ib?f~~c~ne3Yi<$y#5D)4%0VVHrc;;$G-#f-yR}->J&k$Q=95Q* zgJBm8RroEVK^t$jZhbuJ98{&lnlc*qFad?I7>MpDht`3mfHO^69U>x*%J4il5#OqQ zGw?vauipyH5ns|*gO84JV$EqL9(e_>LB~9Y(rMjmBAzDPMsp#jNx*a<52|p^9Kjj7 zr&ZyZVC&Bo(_B1tjvB~Rcfj@9+T-+DH}PdaVj^W~M}uZn;5;if(qEvdRfE$uz>NHg1WGDu z4YX=lWBAzv=2ryLJ9ESp(b^^9OES%P*PTs8JSqG8BIs26@O6%QQ9>ubz0;ICaOnoE zUXJQ{BE1Hd4V?H^$lM<;G?h-bu9ou$e4!gjWA`NdF8LITdo>1Zw$J5Zq1%wVM@^P` zt!LAHr2{`)X2(!Nt$OC;B<6^? zT~3e2uP~69(8&$f+?2s$uqV*veA>a3B_1?S`j|?Nl@aF3rZH}4AdX3_(xgzSJm+B!~egNBj{_*AdU-M-XS zOTCWtg7(^FKsQqpO*uB3w;A`sdtU#hGZ#z%Hx1PK!MI(FXWYwH;s$<+fsvmMSd*U} zqP3+B%UZuK#a6bfJcmxP7e7g@@{x49747Li;?$N$k_2Tb$fcItk0kn_%kUv_(Pe4j zoWnpU9B`BxKO3BZJMT3|d;tr1AF(0qxz*u1ZETltc5g>Or%$Iotdz%@z@Uji4}_hi zQ6YBL!;PF(>-Af`hH_Ad4su}(qt!0gx!pbknwtq&iK*9`ETg9KYQNQP!d-^}foVb7 zFYqVM5sh>L7zU}^@J|_SIIhme9R0=s=j?ccJB1-mb9Vh!5SAxQktS1Jz$qAb37eHS zDPbX7Ue0mLBry$4+IfF=AzH+@nzl+|7M?Lk8GN~UX9{@)r}mhM3WEz6qQGF(TVk^t zzA4P(bD82KQXzFhNujdfVg&dKm~6WgXG}74Z~|cNg(qR$=T#E9Q*juShypr$e>`>X zYThCqTUUcD0)q~8(}c*tdg_(CD&6aTUP{u?C7B`(MNE03BKlxK?x#iD=H1q_9= z{ulMk`}IJJ3&q^mNnrX|ZKO8MBvk#Pskh6Z?Wd|alC&8*VgjEmXu1^vOoYJ%<@`u4 z4U=&-lEm~{ls4yfJ3&ot%442VLrG0_K7~$gP!mU7;kb7LFj2ijKbw*eEp$vIXOM;v zHRmJIOhHNu9G%l<=mVs9h!@?}X!jvWk)7uSqceprc9U}kU(tazYmLv^VpIBkP59tx zc+&7M>``2xj0(#TEbLHdvY}rbXc5bjOeEFQltjdKzb<0uvUB&SN=*8qJZZo}fEE5p z>|c2@AB5wCWP5h`uF4>K>=(#NXikn=Rgq7+B7tpp%o^~nJ3_nOMn(E`2GPp~cC|(a z+=P;vmGQWn-^1=q!{Ir1*lFM#<*DFobjh(Jp`@xUc#9$0GK;=EnbGDMKzw0MTLs?& z8Nm|*^GNzFHI`Ln>0*6!a;zE{l%ry%7t5UgyUD|;fe#zLaIDduLq^8{eWbR=x$sbC zyZug|FO1kMKH-ob@g9SpGZKpZNL*#uey5(0D$T|P4Kq%o^Nfpj#7eLSAU@K;u{Q43 zVmQZqL^l{KOq&9E0~spl#zt}U@?#*s4A7#hwAiH#H>I~=5rRCA0pEnCpQ0o{oS1T& zEr$A$%+Le5XnWJRLvyaDSluRyO)L%tsw%+{`r{W0lF^+4i+Exug0^y}*K=iGSp+_U zM*`?C5{b&87aS;0Q(HM6P7EkX>-5D^P$MaIFqw6F2H-M|V*ai(&>OUR7idhvN-~35>BNM8F%U1<2+T2HXMq}v zgx63&wfj|JoR5r4DI{62?rKV;{G7T1Jv7ZUZ`axN8ahYq7~v4u&a7RHa^h2b6d?tP zZ1HK`{u~%?dEvK$jLv{i1`K=MynQ}WBXHI%aRXMbLfsBOW8I^>-q$;nH zMoi}nxB6s3197EebHN;?(lpjBeeU(aLo|BsP`}Le)C;#KtRyi5v3Q{&e<@moXPfd! zE{<4g$kV-XuivQw6JgpNu&3I>=Ulszm!y(%K|koz&=}|Z`qMz4BYAMbmd+BdWzyok zp23WBlRu~148RaVKGMvV^CR}R0fatgZHZ~UW!4;>kCu+S(N6(O9XOKu{iqR4Hcd3a z6^j<(>gml9-4bR9gN=r2>%7<`hcIjh4fZ(J&rB233|J{$MjJ3P@j&6Xj+Ga2u46*q ze)JWbp6Jy3LJ5OtFuM9o!pF(-WESIDcLqG71&~FAjA-IZV#xy6dtS+?7eT*UYsdl> zP7QD>{p_b-F5t{J2l}OZbUo2SKWx{79{apmU<$q7#Ki+5VkptTM171YCH(T#exCA4 z5uD<(^T#EW)GyL1Rl*)P7f{T(?MY;&>Wy96?-Qj>YeYriBqvJe{5BT?q&Jw56xFjj zRd2YTPY;5D5l^XV^Vp58{g0PFTeZ@%{3pQW>!2?M(gyVb9T+AU-#*^gNSwC%z_aeJqjdCfmH@rWN;e;P8}LY~*JcxJbQ zAlzQ*H>5|U*jS;}PD|}|`sk54`R}!|AukM|B#H15ON_ND(Mk*w6AGpC+kZNMGNO|? ziDkZAZlenUL{s5ZiQ(#)EONBI_OK91`{JH8o5lt306=A`FsEWEo*wWQP|~x3qDGBn zda^j_7x-Kt<23purWa0P+`xrgPgCBlY)-!-dPGU7N+`n6GH7jo7$tDfXh(6LD#h%PUw4~b!O_>}E zV5g7)b9M;*76M&Mq;6caIO|O6t#O1og7pThF@p=MhNF7Y%rO$ggsyHfeKuLIIf*X2 znB-eidJEA+Pd@{aXguORwOwVoxiB@e_Rx5w4tlMA zx7F{p25>J3;-H7Yhv#pUOHd)oh$Tad*l|Z5rO#!)k#gFVa#<*pFf#kXVe_Q|=@HUD za&Hqx>JDVU>sHoa*)sGbwe{(>BmHMsGCX8tpAHyH1w1 zS74l4qq3eW7Zs(CeFv)bCf)DIv@)Tjdb0xJXe~?HF%tccGuD|&GN%dnXw!dxk~ja` z;mm$u4LRyk;|~9$N*Deb zwFSQjONcaTy+Z1MPL5N)anh?+#1WrA$OO?-dGwQkag=&RtYMnBO2QgxMLss=)DBh% zgXKoE8s{bWw1dsgYE`%qM6Bi$WJM1nXk>KK(3#Av&HJ-hA2!9#VA_`xpUj$QIzM>6 z#w6_fG|p}F89>a#Szw=8%j|w+E|9~hC3hM_H|K2FPa%-gJCg=a#+1Ohw&O3pVlnRV zY0AB95AON7939^GhxYy1K+?13NPFW6S2*L3KYaM<j=KCbMj?+))Tgf$diQY?K5y zD=4F?$b&?BPV()S2P6ofFEO3Tgr?>9e5GS%y+eG$wPLr!!DVLaARr>un^csGWMNBX_FINGOcUS#&&Q z!y_)=8}-LRalldCK?kcrRLbLQXsEEjTtGTvRar=}KrULP=Vr4SD2tjt5^G9`6Vrm! zC(L!w!ybpAr=py=oWXKpJ9%y^hqi+jb97><9o5O!9?|*@5`%NvbMZBPg@B7c7s%^Y zz0;acYQbr+#PH9`9u-uX7=R~Fi&tXqxOc-b%KEz`V2b16^UyY5stG2x2(w!IAy z%%8!X{M3{`NO%zgls*F`fmW|8Re>udvhA9zH6#8CfV9AV)Q}H984tSkp^Ecm?S`zX z%|NzUz8=jDjO2)R-OYhZP>-qtCf1CTF2^QOKEm9S9X=K4%y_UPaXM6 zBSljnKj%zhY1(34qms;@3c!X;I-hbys{;S&QZat5fCu}iRpp8~yWQHT z$+A@LwrY>zs*csi+2A1+il4Ze5i{ zHJSSiX&H!Sr8j7)>3lC&xKt>esSB#{QI#LFS(18E*9^DGN2t77ppu3>1q&+iF`)?R zw}H7vnZP5NrDS zrTY;io(0Hg-ks8|c^??8U@V|VNqYjHyW_vcuK~v*2#v&ZpFWLO#{S(Qo9=e&m|dy$ zu^^F?lZEE5Gxi6RMXM@jeDP+L1ZRIm_^3xhjh_s=GxzT-E-u`<^-(MqY1As=aFC&L zU4gM%_OHEjl`c@5%WIOr2mD@822?&13i!KP%;c$EY59iFj%-H2-!y2dg%aRmLb)88 zD+edGz<_F0`oRQBq4Rs_)CN4IYME==8j^bi2HK8OA_VKFRr%QO{^4% z1-Woqun7z`tO)L0WFwOq>DZZZFT7DGv0JR@iXVuSXf#~?*=u)heyB6(ZMOXf_wUZn89x5t2G4Q#@7~tyW**$X zw`ejA`<J`jLzw2-+AZC&6_tUDu4Cux2Rm^V0fyOJyMdEa`?QOc{u%FR|9e4 zNIL)NrRcOPd{uD}?~Jp^m+G}4S5o&~{U!+$Kg~)VjQ<>pG=@H5p~##np&LLAtBMgsclAH`~;G;5)sJ6Og>J+maF$VgO@wZMC5VIzmdSSQLzo82dM z3(;-lN$b{q(?;8@ErvFl*3RhME&esWT6hIRY&8|lq#hUJ<3em$Nc2fNFu2PHYNJo+ zKod%E(;q9Qmo1%uj~a@|&|A9%|>N+ zXDgA2Np!Iyi$Rxve{YXvO0dT3akZP6cXn!5n4~(WOCvUe&YH_2m|7%465B>*FAXfZ z1X^TJPLu|W+aM?R{-opX@(52~Qr zur))sUF&wFR=Z3|3LNn`VjH-LtH|AU1r!qoUMEzlhsl3pSrn>$5Njfe(lLqZ!B0BJT23?}sF5{y%_Dvb5 zePq7>v|~&0Fr@%XMR^YUj%el^nd1kBq7}tn;=x7(afAg7iR95L^`HYgNXW>U(qYDf z6WhaTy&h9vyN!OMfRxm3C{G^tgMQET>(?GUxR)#DANQJKI@W79jKA+yv?8S3UxumFcvmwFJyKn+k{(y?9{wN7|yl@JY=p*3YOmHC4$Nkr| zLkv2#P+6K!GmB})$B4j#gH9C;x^h*v7KOzO?JpO%a@?ujA*38_Fb`y8u*Rpb4w+5A z9mI_G+;3J9$ggn(jgsWUCnNLTw#VgY*5v#5Zm+DZymRHs=ECCQ!o0;|wp#afGt;SL zVtZ?|UatUi!J3b5-T*`6V5ENW<{L;Pwa(>>HHp7KHGBn7X*ZR_!$)@W&VT)H|E;HX z470jcvu4@ftyg6rcQD+Fg?u)f3VB>*mfl=ht1413=!?f97xqLv-Yq8OSA{W~!+I?3 zTC*YWN>Zv8I-QEDNNPAqJUf?t{l!4cLoCung?puR*J^Ld*}hO1R=5$F&hK{`qikGl zE0{jf3NqqDRHG?WzN={RF9U^r4imhB}$mp}u}%aj9U+K`--RV7IwNJd6y za(dA*WpWstsY&OuugT~)7e|!z$r#3o({3%~GdkVO8^8F+t<80p)2^SMS}@Ju`0#^t zGBzCa?%uhxvA%le)<^SmhFCOm|K8nB3pjR9WB>pLj7da6RBLFQzb`)zKpBC(#%3wC z_mz}LSd^nK97=p-XZxd%KQhkhc6YY#-no7K`n$8U!0iv5cFWX*d)KdD4+jJJeD2Dd zZ!Rw`+`9dd+wC|YrR>k{@B|gqN|Ru2WCXsF&GBBbS?HH}HJSO;c_bHrc&{4DLBu|) zFoSGnVDk;&U#<)NhO9*%4cYXtobRGgI`>_*Jz}#sMR+c~R&!|&yS0ocgHg7aW;d_~ zSlO7Oopd=Rh<-+xPacI?r`dU5))XsYMuNd=a3)V`+J8+(ztKQSf-&%D+)E|n*RH(> zT+?XO0zS|5^aGkMdOYr+*IP=b?%%)b^LawS!1B`K^n?4MP{3-n%<5-w_}LWf ziAhnDSfq2Ge#y~q*M@vyz!eTt1)JF%iG+-X**Aar1`z$Nk3UK#V>2^TKCc^yNw3$b zz4px;AO7O?*WjuK0{*w(y3%boo*ki%rXR)uO|A?WZk?voQEO_kq?TT+Ajz|EBnCPl)Y&UQemEI+M zRBcqi>IX`S^OBL!iY~$IQZywqQJ&wx>9(W$GQ*)h3gvY>p$7)5Neea7QnAk6!C&Jy z43k2)U6Ot^9`>+jj@lRxJ43bI?=>Hd`>lo|#k~i^o~kxT|C~Nw!23j_ozWL#YGt*O| z$oG4#R5BV2c$r*we`gPt4@RU~_Srq3;0z^AR-$h^rB>z7+u#?AkW|J@M(s66#UxfT z0P|37$OWb!PGRYirZVie_xH`lnW?H&e)4FHx6PpY=%7Cu_MVKoPk8FlNFDXt!#?(3 zf?K8EZ4SG2@u+kp7;bq<1~M`xSvOtIOWZES&nAwXN7^)hm@)+^{km^@&W2O|UuVqz zHsPf9_T+)4l@o0#Em&y7gHHDO9KoQMqLM&W_*5htkk&f5@!5O&b3>bGYgRsGbD=K- zaF$IPOT~VP=||JR;KN>H0A$gvKOEsy+QV@VhHf^U+FV}~covr7NCFwS=nO2Sd)21i zKtyOhBW!|57SuwT@FMeAPl?u~htfb{ zwQ$)Hrpr=5Ny85I5e(D($R9m?JT@)N`@F8h!^7R(9rxZ=G#q^U%3JH}t5iBZXPnKX z6YswJj?-z4Mga^0^Zi1zCez%);=+!lSgq$piK$>bv> z=wRX3fm-Ks#Yu+k`E9vA~%uP?NCxL~JfDu}iggcsWhA!yq zJ2_B&P~|a%8UvI_LRr7rFO+(P&*Ml!J{nfaL!mI4-B(*<5$D&sDyXDNwN}|vlOK(eV7t)Y^h+V{bR)wDS4%wQJWFO!HQ&WogND`}W7{JG*9I==C?R z!~}UW$8G1a->iobQi24_x;Ux*m?nIL(bzeoBY{c$IJ1_-XzZ``(QhTrQc}NzHH<6u zNzMOmrvm1iR{iH7AL&=Q&ZqQNV3GD0aS3%QDs~@Hm<)B%Q2eq3B+^h}2Kj=T$ey2U zdOljD?rl>Z35CAI1~%PPIC)v+0}P?&3zI}#YzSOOM^a7s?2aTL#F_vEG_ePXVj@%i z8bjf4ahG_x-RMVC2cjg1<)Gg)?01SKib;e=1xl@or4lvu;9jXnJ$^W#ig`;Y8YwF_ ze^8|J4n~@a(O|5#TUD`ES;wMlN45Hs*ywTIm(_0trWYIrN76*PA)dcezs7F~{(s2c VmZ!swk$nIF002ovPDHLkV1i)F+SC95 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Map/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Map/view.json new file mode 100644 index 0000000..c40ef18 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Map/view.json @@ -0,0 +1,794 @@ +{ + "custom": {}, + "params": {}, + "props": {}, + "root": { + "children": [ + { + "meta": { + "name": "Map" + }, + "position": { + "basis": "799px", + "grow": 1, + "shrink": 0 + }, + "props": { + "init": { + "center": { + "lat": 35.148884, + "lng": -97.198665 + }, + "zoom": 6 + }, + "layers": { + "raster": { + "tile": [ + { + "WMS": { + "format": "image/jpeg", + "layers": "", + "styles": "", + "transparent": false, + "uppercase": false, + "version": "1.1.1" + }, + "options": { + "attribution": "Map data \u0026copy; \u003ca href\u003d\u0027https://www.openstreetmap.org/\u0027\u003eOpenStreetMap\u003c/a\u003e contributors, \u003ca href\u003d\u0027https://creativecommons.org/licenses/by-sa/2.0/\u0027\u003eCC-BY-SA\u003c/a\u003e", + "crossOrigin": false, + "detectRetina": false, + "errorTileUrl": "", + "opacity": 1, + "subdomains": [ + "a", + "b", + "c" + ], + "tileSize": { + "height": 256, + "width": 256 + }, + "tms": false, + "update": { + "interval": 200, + "whenIdle": false, + "whenZooming": true + }, + "zIndex": 1, + "zoom": { + "max": 18, + "min": 0, + "native": { + "max": null, + "min": null + }, + "offset": 0, + "reverse": false + } + }, + "url": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", + "urlTemplateParams": {} + } + ] + }, + "ui": { + "key": "value", + "marker": [ + { + "icon": { + "color": "#4190F7", + "path": "material/location_on", + "size": { + "height": 36, + "width": 36 + }, + "style": { + "classes": "" + } + }, + "lat": 36.195575, + "lng": -86.792662, + "name": "", + "opacity": 1, + "popup": { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "Prime Controls - Nashville", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": false, + "height": { + "max": null + }, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + "tooltip": { + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "direction": "auto", + "opacity": 1, + "permanent": false, + "sticky": false + } + }, + { + "icon": { + "color": "#4190F7", + "path": "material/location_on", + "size": { + "height": 36, + "width": 36 + }, + "style": { + "classes": "" + } + }, + "lat": 31.943913, + "lng": -102.273813, + "name": "Prime Controls - Midland", + "opacity": 1, + "popup": { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "Prime Control - Midland", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": false, + "height": { + "max": null + }, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + "tooltip": { + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "direction": "auto", + "opacity": 1, + "permanent": false, + "sticky": false + } + }, + { + "icon": { + "color": "#4190F7", + "path": "material/location_on", + "size": { + "height": 36, + "width": 36 + }, + "style": { + "classes": "" + } + }, + "lat": 33.020705, + "lng": -96.981087, + "name": "", + "opacity": 1, + "popup": { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "Prime Controls - Lewisville", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": false, + "height": { + "max": null + }, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + "tooltip": { + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "direction": "auto", + "opacity": 1, + "permanent": false, + "sticky": false + } + }, + { + "icon": { + "color": "#4190F7", + "path": "material/location_on", + "size": { + "height": 36, + "width": 36 + }, + "style": { + "classes": "" + } + }, + "lat": 29.562826, + "lng": -98.285638, + "name": "", + "opacity": 1, + "popup": { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "Prime Controls - Shertz", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": false, + "height": { + "max": null + }, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + "tooltip": { + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "direction": "auto", + "opacity": 1, + "permanent": false, + "sticky": false + } + }, + { + "icon": { + "color": "#4190F7", + "path": "material/location_on", + "size": { + "height": 36, + "width": 36 + }, + "style": { + "classes": "" + } + }, + "lat": 29.643666, + "lng": -95.598704, + "name": "", + "opacity": 1, + "popup": { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "Prime Controls - Houston", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": true, + "height": { + "max": null + }, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + "tooltip": { + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "direction": "auto", + "opacity": 1, + "permanent": false, + "sticky": false + } + }, + { + "icon": { + "color": "#4190F7", + "path": "material/location_on", + "size": { + "height": 36, + "width": 36 + }, + "style": { + "classes": "" + } + }, + "lat": 29.976097, + "lng": -90.180403, + "name": "", + "opacity": 1, + "popup": { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "Prime Controls - Louisiana", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": false, + "height": { + "max": null + }, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + "tooltip": { + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "direction": "auto", + "opacity": 1, + "permanent": false, + "sticky": false + } + }, + { + "icon": { + "color": "#4190F7", + "path": "material/location_on", + "size": { + "height": 36, + "width": 36 + }, + "style": { + "classes": "" + } + }, + "lat": 33.420966, + "lng": -111.963025, + "name": "", + "opacity": 1, + "popup": { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "Prime Controls - Arizona", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": false, + "height": { + "max": null + }, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + "tooltip": { + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "direction": "auto", + "opacity": 1, + "permanent": false, + "sticky": false + } + }, + { + "icon": { + "color": "#4190F7", + "path": "material/location_on", + "size": { + "height": 36, + "width": 36 + }, + "style": { + "classes": "" + } + }, + "lat": 39.827864, + "lng": -104.964553, + "name": "", + "opacity": 1, + "popup": { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "Prime Controls - Colorado", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": false, + "height": { + "max": null + }, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + "tooltip": { + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "direction": "auto", + "opacity": 1, + "permanent": false, + "sticky": false + } + }, + { + "icon": { + "color": "#4190F7", + "path": "material/location_on", + "size": { + "height": 36, + "width": 36 + }, + "style": { + "classes": "" + } + }, + "lat": 30.470678, + "lng": -97.663526, + "name": "", + "opacity": 1, + "popup": { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "Prime Controls - Austin", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": false, + "height": { + "max": null + }, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + "tooltip": { + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "direction": "auto", + "opacity": 1, + "permanent": false, + "sticky": false + } + }, + { + "icon": { + "color": "#4190F7", + "path": "material/location_on", + "size": { + "height": 36, + "width": 36 + }, + "style": { + "classes": "" + } + }, + "lat": 31.989742, + "lng": -95.273849, + "name": "", + "opacity": 1, + "popup": { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "Prime Controls - East Texas", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": false, + "height": { + "max": null + }, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + "tooltip": { + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "direction": "auto", + "opacity": 1, + "permanent": false, + "sticky": false + } + }, + { + "icon": { + "color": "#4190F7", + "path": "material/location_on", + "size": { + "height": 36, + "width": 36 + }, + "style": { + "classes": "" + } + }, + "lat": 35.142773, + "lng": -101.882459, + "name": "", + "opacity": 1, + "popup": { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "Prime Controls - Amarillo", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": false, + "height": { + "max": null + }, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + "tooltip": { + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "direction": "auto", + "opacity": 1, + "permanent": false, + "sticky": false + } + }, + { + "icon": { + "color": "#4190F7", + "path": "material/location_on", + "size": { + "height": 36, + "width": 36 + }, + "style": { + "classes": "" + } + }, + "lat": 33.678335, + "lng": -112.062834, + "name": "", + "opacity": 1, + "popup": { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "Prime Controls - Arizona North", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": false, + "height": { + "max": null + }, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + "tooltip": { + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "direction": "auto", + "opacity": 1, + "permanent": false, + "sticky": false + } + } + ], + "popup": [ + { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": false, + "height": { + "max": null + }, + "lat": null, + "lng": null, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + }, + { + "autoClose": true, + "closeButton": true, + "closeOnClick": null, + "closeOnEscapeKey": true, + "content": { + "text": "", + "view": { + "params": {}, + "path": "" + } + }, + "enabled": true, + "height": { + "max": null + }, + "lat": null, + "lng": null, + "pan": { + "auto": true + }, + "width": { + "max": 300, + "min": 50 + } + } + ] + } + } + }, + "type": "ia.display.map" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/PlantPAX_Instances/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/PlantPAX_Instances/resource.json new file mode 100644 index 0000000..a2cdea4 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/PlantPAX_Instances/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "52ad6658fd1d281344ad0786e4251cbc7e8b1d1fe9520c05d280626efe85661f", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/PlantPAX_Instances/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/PlantPAX_Instances/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..b01f2e0ff8e3463e252224aeb557d3319bb6daa0 GIT binary patch literal 57633 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

3P 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/CV_Control/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/CV_Control/view.json new file mode 100644 index 0000000..724c354 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/CV_Control/view.json @@ -0,0 +1,645 @@ +{ + "custom": { + "program_mode": "[default]Hackberry CDP/FCV_201_MAN", + "tag_path": "[default]Hackberry CDP/CV_201_FB", + "valve_cmd_path": "[default]Hackberry CDP/CV_201_Out" + }, + "params": {}, + "permissions": { + "securityLevels": [], + "type": "AnyOf" + }, + "propConfig": { + "custom.program_mode": { + "persistent": true + }, + "custom.tag_path": { + "persistent": true + }, + "custom.valve_cmd_path": { + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 432, + "width": 381 + } + }, + "root": { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\t\n\tsystem.tag.write(self.parent.custom.valve_cmd_path, 100)" + }, + "permissions": { + "securityLevels": [ + { + "children": [ + { + "children": [], + "name": "Administrator" + }, + { + "children": [], + "name": "Operator" + } + ], + "name": "Authenticated" + } + ], + "type": "AnyOf" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Open" + }, + "position": { + "height": 48.99999999999999, + "width": 165, + "x": 16, + "y": 373 + }, + "props": { + "style": { + "classes": "Button" + }, + "text": "Open Valve" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.parent.custom.valve_cmd_path, 0)" + }, + "permissions": { + "securityLevels": [ + { + "children": [ + { + "children": [], + "name": "Administrator" + }, + { + "children": [], + "name": "Operator" + } + ], + "name": "Authenticated" + } + ], + "type": "AnyOf" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Close" + }, + "position": { + "height": 49, + "width": 165, + "x": 195, + "y": 372 + }, + "props": { + "style": { + "classes": "Button" + }, + "text": "Close Valve" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "3-D Gate valve" + }, + "position": { + "height": 61, + "width": 116, + "x": 130, + "y": 60 + }, + "propConfig": { + "props.elements[0].elements[0].fill.paint.stops[0].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[0].elements[0].fill.paint.stops[1].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[0].elements[0].fill.paint.stops[2].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[0].elements[0].fill.paint.stops[3].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[0].elements[0].fill.paint.stops[4].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[0].elements[0].fill.paint.stops[5].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint.stops[0].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint.stops[1].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint.stops[2].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint.stops[3].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint.stops[4].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint.stops[5].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + } + }, + "props": { + "elements": [ + { + "elements": [ + { + "d": "M56.25,28.181l56.249,28.181V0", + "fill": { + "paint": { + "gradientUnits": "userSpaceOnUse", + "stops": [ + { + "offset": "0", + "style": {} + }, + { + "offset": "0.45", + "style": {} + }, + { + "offset": "0.55", + "style": {} + }, + { + "offset": "0.76", + "style": {} + }, + { + "offset": "0.77", + "style": {} + }, + { + "offset": "1", + "style": {} + } + ], + "type": "linear", + "x1": "84.374", + "x2": "84.374", + "y1": "56.3613", + "y2": "4.882813e-004" + } + }, + "name": "path", + "type": "path" + } + ], + "name": "Group_Port1", + "type": "group" + }, + { + "elements": [ + { + "d": "M0.001,56.361V0L56.25,28.181", + "fill": { + "paint": { + "gradientUnits": "userSpaceOnUse", + "stops": [ + { + "offset": "0", + "style": {} + }, + { + "offset": "0.45", + "style": {} + }, + { + "offset": "0.55", + "style": {} + }, + { + "offset": "0.76", + "style": {} + }, + { + "offset": "0.77", + "style": {} + }, + { + "offset": "1", + "style": {} + } + ], + "type": "linear", + "x1": "28.1255", + "x2": "28.1255", + "y1": "56.3613", + "y2": "4.882813e-004" + } + }, + "name": "path", + "type": "path" + } + ], + "name": "Group_Port2", + "type": "group" + } + ], + "viewBox": "0 0 112.5 56.36" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 29, + "width": 291, + "x": 48, + "y": 14 + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "30px", + "textAlign": "center" + }, + "text": "CV-201 Control" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_0" + }, + "position": { + "height": 29, + "width": 249, + "x": 70.5, + "y": 134.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Valve Feedback: \" + numberformat(tag({view.custom.tag_path}),\"#0.0\") + \" %\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "20px", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\t\n\tsystem.tag.write(self.parent.custom.valve_cmd_path, self.getSibling(\"NumericEntryField\").props.value)" + }, + "permissions": { + "securityLevels": [ + { + "children": [ + { + "children": [], + "name": "Administrator" + }, + { + "children": [], + "name": "Operator" + } + ], + "name": "Authenticated" + } + ], + "type": "AnyOf" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Open_0" + }, + "position": { + "height": 49, + "width": 165, + "x": 108, + "y": 315 + }, + "props": { + "style": { + "classes": "Button" + }, + "text": "Open Man Refrence" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "NumericEntryField" + }, + "position": { + "height": 25, + "width": 93, + "x": 254, + "y": 202 + }, + "props": { + "style": { + "fontSize": "17px", + "fontWeight": "bold", + "textAlign": "center" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Label_1" + }, + "position": { + "height": 29, + "width": 223, + "x": 21, + "y": 202 + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "20px", + "textAlign": "center" + }, + "text": "Position Man Refrence:" + }, + "type": "ia.display.label" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\t\n\tsystem.tag.write(self.view.custom.program_mode, True)" + }, + "permissions": { + "securityLevels": [ + { + "children": [ + { + "children": [], + "name": "Administrator" + }, + { + "children": [], + "name": "Operator" + } + ], + "name": "Authenticated" + } + ], + "type": "AnyOf" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Manual Control" + }, + "position": { + "height": 48.99999999999999, + "width": 165, + "x": 105.5, + "y": 254 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.custom.program_mode}), True,False)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FF0000" + }, + "text": "Turn on Manual Control" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.custom.program_mode, False)" + }, + "permissions": { + "securityLevels": [ + { + "children": [ + { + "children": [], + "name": "Administrator" + }, + { + "children": [], + "name": "Operator" + } + ], + "name": "Authenticated" + } + ], + "type": "AnyOf" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Auto Control" + }, + "position": { + "height": 49, + "width": 165, + "x": 105.5, + "y": 254 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.custom.program_mode}), False,True)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#00FF00", + "color": "#000000" + }, + "text": "Turn on Auto Control" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "Label_2" + }, + "position": { + "height": 29, + "width": 249, + "x": 70.5, + "y": 169 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Program Mode: \" + if(tag(\"Hackberry CDP/FCV_201_MAN\"),\"Manual\",\"Auto\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "20px", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "valve_color": "#D5D5D5" + }, + "meta": { + "name": "root" + }, + "propConfig": { + "custom.tag_path": { + "binding": { + "config": { + "path": "view.custom.tag_path" + }, + "type": "property" + } + }, + "custom.valve_cmd_path": { + "binding": { + "config": { + "path": "view.custom.valve_cmd_path" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#2B2B2B" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Chiller Data/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Chiller Data/resource.json new file mode 100644 index 0000000..978fcc9 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Chiller Data/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "89c83655bbec1529c3ffa893e1968cf1d30b9a0cd01c451893f4f33a86818763", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Chiller Data/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Chiller Data/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..6df9a1ddc4e2df1b9f39a796ab8d619408a7ecdb GIT binary patch literal 23737 zcmZU)18`(-&^?@u?Tt6s*xVSKjm?d1Ol;e>?Tu~Q+F)X5V_V6eUV{vupZj{vDtkv)U~|af^T!awtkf5NOl#MFe>yw_7MEXpdX8QzpA^-ok#YJ9WV zj;2KgM^=``;JoA$T8nY}ct)M+#p#%5_x4R{s~KD*FDse5A4#+N*ejyR>hPOwC{W9Y z;`Cr$VyMd_*9Xyc1E~{|(WXvqUo#I(xFtQm$4_noWE=LhX#whlrAX16EE&#q)Z7Ou zx(;FW9+#cj*|s+A8NVMSt3!0*8lk2n;haAWvoe;6c0#Y{6Qzy z=`fR<+s^CUQaX31&Tjq(QMZt$?gP(XqmDjrPb~(c0A^JskMxN3H^wGs=O1iM496)q zRY8f(mTKv~`pXtgrKy-EZy7LH$M^fbnZ>;a{(Bj~-w%K4v`O<3-K{1TmT`}}^dHX$ z$Kk$tY0vgE!|*|~OLk;3yBUZwTyvtd4odA49Nh*)Xp zO!8)iO5d>PF7-S!GBg|c4N=jJ=G2;-U)9uR0wq+>@PgGK9Tu-iRzLeX_cN%y(?j1_ zTX7;Nc4RfM2YVoBxG-_8e2n)Sx-nU4!@tz$@Gu#L`J4%1-@JL5CPK-S=D+x6K@RpjTPk zlwa6Zs~wWdx+_#K)Kk|*3oFGXJ9?$8+RFB zTwH9j;cNb^No$c#QBs1XddpetNuVe7X#)f?hsP|P4a?})E1swoPC-S;XqrhN=&L!K01=dDe2AMgQ!DAG!(E!*H9yY0*EihD%{81pOtl-^8{IvY+WE^*Ej7KL)qRot z{_ng72G;aN5tMCv*ne7l0Rvlx7Iy+5XZi*!g8~E7!~g$g(kjNRjm%hi+APsr|d!`DISlEZy41W_oPwm+mTHhVza;q(|xo8`1{ZvBm4%xJn6hT-453arL zL@*UArDSs+!L$Qn&7b^BtbO)SZgNp1YjSvgG(+BNh*DOvl}!+ zw?m1kK~Ubtb#4ffI6Z+*A(2J0TFc@6>=hcoD*yT5a5w-5*~RIt24L&vwV)io<3+)s zy~o+v3x}5$Z>F%^ z_G2BTUZQF7_6OENV^qVwm+k8SFQbv$6WLnX@zEJhjwZ!r^TY!qGrs@s!0Xz-fk!=c zZ`qd_x^eqJySz4H+UnaXLZKB}so)YP%%@}+J^<)BUK;$+OxeUnHVk#E;hh~lLLcAl z^3G9>so-5{(ark0ldV`|!Xg2cYlNeqcgvlnTn7S&>;aDCi?3YV!xh%n&Z+~Ma?-F} zTT8`_75E+7 z0KGQdWWa-8r>Vq77RK<|>W>?0KfkyoR`_f9!#mog%q}YP91OK5Z~RLSzrTIkB5fiC z=IgorA5W%Yazr0n5#N-aoh*9SUvBJS!wK-VRT~))eX~jfK*7+NLgXL~~ z+4odGKQQDeHHuq}==|pGVs+kXxin4g+BC@$*+faVW~jv|zr472^`gg)S;S;$DKd04 z&EFNPJQNP_5ORCY!dzn26*X;!1#kZ?bQ9b$01%yRP)Xc7NYH9(ZB>s$w_|9{r`nJA znAtxM+YfmdrA5|FT!%36&?auQb*)VXWO)x~ibZy$nZjkpPheu&w@C!>c64iGxoyx> z+gROoIX4OL@U%C%p%%IQ;z70R6`}zmLVPv-##m)#?TjfJShUfFgYM|kd)+g$?=@ta z&6W_Vz~AGYiu9XCeByz~%A3+P(|+ts>-l*WVie9+?COY>xyAVFkFjBQB^?X)8;w~c z)tmwJBh(}b?6vA7pPTjmqilEV5Dby50P2krsTET{pbo~T>tfbVZaREC?$!8_qVYw} zUkcwa#=Lq-OH2oZpo}YdomHDkHOJN1<5SyW`YY^R_dGes_H)}MX+*+Zb$ISJl_W^b z2jdjp+V(S*;(o!%6ks$FcFC9t#z5NF4mi6 z)@KDcCNJ_f6A_aXNdW&Ms`U#kNl`-)iPf!&9_E71N?csrDD7Qdv8a2;Df1{j_vR%? zMTC&dGiP??QJ-t14B&u6!&;`u9HPYc<25?IL*~@Enc$s5b($+RN%OZM*I58F+;Y{~ zgEhP3VMSr5+5{$p076|yX=1~K^UcfZB};wUgk@_OGJjc;T(+kWTIwyn5Oby@r%v{7 zH5!wB(UE3>V-gUEgb-T(c)JI$`yEORyy7Yu<^Aen6-mRj@CeWjS^${T1E1f|;+(CR za1sqirG_fW?@VmKD;$^HyN+{+M}TF1d1YJ@%kP9u2+sTM?!6q~u5h4QWf@VJdG-0Z zO*vQ|2Jyr;FgiN=^c3LeQqZIv8;>X>$uZrd;sNy^U?maqPBYTcB_<~)6ETgAjnUB1 zkd;V~5=XaxDUp^bLAY7N%;SU(gLQ`saSsQoD*p#leWMgoNMR7~j==9h-T(%G zi{8C(DdVg`C z*72kt8^P|A7l%(`#6SRnsXoqQ^*em469P4@5IjO$e*T-}P~R`tm%FFNYRRXk%k}m> zkBdgnS374b`ezFARR>i#S8C7(^FkepBn%obhjpwue6-Ttft%wCpEF3$W7f7iTt)+9 zeO|>JjiI!4#YE74WIT|hNtXiq0K7f)W97iW^z7AxuVK5flQJ~KxpxV2bsGbKIb%h( z@<0*S!IUq{pM?Z1PIN!*WKt0qP+jD=40mL)gfuc$;{vuSp`MV^-^DF-@`BO)`0YYf zf8qlQF;NN=+~lUJM(Y~mrtTLWM^CL4al(Ia{na_B0bkg0isX8sA>i@Rp1z7kL6b(# z(i)~zYiDMrg-0Ra>I|6urFtm!o-CXvDKAfK_c*!me&_%?hyOeCv0vs@KJuc_J{XWc z9Jxg&{iso+Z*H8O8veoq+D+fFC%7V4qmJzepO?X?iui#MVvmwsJ99Y z+m?Sk7U!0lEP_64mu@Tpo=`_T$JIRmX%c+U1j<#+)<%)3gqmdk|;z;JM% zM7=D`a8I$`Wvn&Z^0r8(d1Ki7=ub7el>eF8KvYp;aL-~BZwe!45O=10pl2fpl!^KftLMP4HBRaGS zz)6!|%D;|cGZreteeeE?rH^95+Vd|sH2ZCbqc`mvR{s_p$ELz$sL*AYPGwqp>j@EF zO&!b0se_3)>-n~a=f{KzTSR$l^SVF6akocH9F|jYjcF~z=sW2H&J7;+kzKyYHXK`cWqUlyK%Ep9+IrDpybrntyIJgHW)Ko+(o4P#?SV&~A z5mt6`)azSjlKiXi(T{o8)aN2*`QuS2aNs<%^GwmX_SN+~Q%B%%$C9IAnml8cObwpJ zi?n=&z1ut1W3r&aBaeZHn5_MNlmq3a%0uPW!rt0-hy&5(cX8mskLu0l3B=~Wm)1uy z3Yimm#jar}-p>sB*Mhy5N$cztXpZ!qA&QOgWAeg66pLjV2t&4LFZJ!i>G)r&GjRIj zW(>}ti0|+Xh3~e*w*O*Y3fDyjJVfbMO)0wFa3(dGc&6kG+JkMC+vbvcKYp?95sAl# zojBJatwlGv*ZVmwHRJeOTKRl*mNO4~OZ7Cs9ueKHk!@l1PNSE*+U0#q*Ph2|!Muu4 zVsO*@jrguk+r0TewnE70Z0o0a{%#U)Hu(=$g#4e{_wQu9-CmOec$>wudvaJH2a+%H z56rz9{L*cx>-zZk^ayRF`cOkLf7^KshVt;QdU&i!7wxt$$TZLb=PwZUD=uJZfPB~=kv_5 zLi8H@l9AI8Ng9E$JG(?md01?S(HGoE_9iMAu4}-4bj#$=G8Gx#s7Y33ld2^r+fxq1vH6V`|JsY8%7e_#$}_O} z{Sk^*OdT)0&w&}8fs@YTweq<6j&EaXvyCHRBre%zn51L3Ox1ex#Mi;rnSZPseJC=D z9g4xrh>Am_Dodk)o;W5U?OwDOokTV~M-?7-t&E>~n<&+FRsrGD2g;Y1n5}$PC!6>9 ztzXSO(y5FU-fcRS5-mlX&v7a>`NyMyTRx94MsB#RK167c!kD^@Y4QoM2;g+#*ZA3D zi;Kb$Ko)Ka4Z1lGbJdzUj{Swe)a=dvag6c4jEutW4}=MdoQEoe#FT7v=T(iB4HJ(A z1d}Cj&~^1#jp}PFjM#T51xV)R!;UTTDo7KqoP`_bvo~(6eZv`R>r(; z6<+Y~iNAE9{Z~Yk8Ev_4Ox(<0be23F$^8&`0qV?ezE^e-9o;?swn;7azOQd}*(iIs zo1|uh`4(pd`B@1B5*Ox|GE=kOsCavi2}-%SQM;V)8JPz73b6mzBKuL#Hd0Vf6qghu zo6JeeOioOU{NM%quScejdo@8aaMJrS+X#RGt;G(lvg6Wk|M3=(Do^el@Lc%i<;&;c z;6qM*r{AuxYLCa|0ZD`cO}yTb7z1l-1ju6?|1BgVh5C%qjDWLir1B)5I)y6@LI>xrIc8$t~R8l zrM>8IpyX<8?*53HXj(6Vyz~I^jd~exQTO$O(ZI~C*~TBrB}y(zAjX!>fJ!t05`KK0 zl=%_KU3*NM4GtWiNcZWaTUJWaowS~0RbPCob7Ihy6STz7FM`Y}iKe$~5#Z6Cx#gSV zYk_0s@?0w@G8*kF{Qc2DEv=a-B;~R<57G)grnoHcv{f%OyKwE(^5}MV{2vp6+7X%T zb&0(6M<*m_f%!F~qbX@thX(uo8a%(OACk#NDw)XW`eP-1mnyAv@6QMfK>H-08C(z? zeSDpHTH$})MxJU!#RVG@?}z$Csnvu*{uO%hQQ&&BiD>^fBs&i?FH=5=x(c7SeYHtH zj%==k77HtFnmWyxnMSrD&fw!h6tI{LJLIO+`&B6gqX61(gR-7P62_+pTi_Q9Vzk84 z)HOlCF6a0R0c{A0Ilg)(jsZ_G9Obu)zPXLuK`i7*v5t)A<86FTsGEH*NE z@Z`MX792Ym;ds)rr)luDx%G9&uJK^VS}Z z_437lz3kM0tEr2)X=mf{?L}JswCLPU+r`-P^={y%%XE71Kt8|hyFgcA!9)0PoX^{- zqxMbD`Z2FAQO?YA1C+4!PuFz^PDoH#5*wrV4<24XWnQao5qdq`^|vLWw$Jb!{LW+H z+gP8ZW@E;uOy=Eud5Gb6s=&+2IwytjQoAe#F}&9#Q|M^h({E=C%m61m$hm1Kg< z!ZUsQUXMLckJ@V5M&McGj*NNUadrK!PC?-KaFqUP={9!=U=OG!U} zx(pi}SM3yal9#U6ASI7CkhgF;irbro*J}YBhUo2fgDf4-i{_7eOCA$bN8KT<{f>*6 z0L@8yKNx|Mk>&fx@C&X@!E$;`f+n^p;e0K2mgE z2pyeZV5HB5REo7-d{G(wBf*A)hAyTdr6}upKRD^HBdDjh`<@7h2aW_yDSffVdq(5e z!PxaO7vxDsCGz*KFC!}N`sd_US3UG_8sxdMoEQe{NZM$Q(wfRzj3T z)$)O(IQ^W!DW+dsXzC2VR`nPEBg$~Gx%TMbh<}?zL@0-<$*{;^cH>76X}Q7gEhN!Y zve2X2-nO}ln-oUr<08sbZ6_!YaKCoSX-CKCp=|ZW&#-z!M+8mF>; z*e-4p)PZn&jxorLeSe5MWTQ-z+$830hX`*dcEa-Bk85(%i*(KQvCc_8#r;m&@l4!M z)_1s)C40c+AjQpM_GBLAX7x~-?#gq0E)P_B_*SltI5%%*;;0ozDXlZ)d{ERIp6j@8 z&HA2DI3NA>$tq1_OAdY+IJ`$sf8KmQex%cvY_}gfH`z`f4eS|e1>%w#v!6W2WWSzu zLWL(7!U8Tl7)|=kfAL^qVRJ=k#*QwoGD{G2i+=1;jtjhYr+vJ24;@sI4Qm~JgFw~b=Pq@J_Wt~R;V3zJy{ASL02C(lzSGE>n#gjk6 zgwx8U+Q17Q*qEXl<`T1-ouWu7Bb#Kwj85nv-olYooKT50DzdkyMTC=(Sk+4<2o`ov z;s*nNF9jvq9{6A>pvaU2A}xHTvd*?-3z77g?e`c%SV3k)nS4o1YigTXf@vCk+rk+1 zIsD~NJl23anO(I7Z#M=+qQk)r?JzK zY8XE&042T0cb83ER#r-%SHsE8kGGrJpBtQKx;XJiE*rQX`;7C}>&Fl#^`8^MWkl+i zF(rw~DU-cDvcm(y9wxG~)>a7#2|hkPz0fH7&&^2|mvgCia8Sa)V4WWP;DnXnriD8K zB0;{^LVd1)Q)a6){Kl#0TLb$a~!7yN>ywa*5Q^O$j*TCGtC@j~|UpbAfqvJ2Mkl9IzWX zpxD3Iyg$GI`f?|I5=CH8)HgGTHpv08spjZDg2UyTDgA|w(}znXCNJ&XLX;F6j{F0v z6a`LA!r+2tbKIso8K*#QqWp~2h!Qgou4^T#LA4Sw&pT{zkS$-VFLg4l1k+qTQLfcU0u9rxw5m^r$L2{9!XH`o}MRvW$6 z-bp7zl1dP0L<=4hKVH}_r@>@?Jh#br!~*AV-BNcJ*(_F1at+ysNGaDQWlu*--N4%> z5+*NPho3pM-=gXDp&VP_;r!CUVyn~{l5!1SPu)$2C?hUF2`Qm4w-6uMQ=7`N<7Wyy zAIcviL}KSq{H+o*Lm)B>89kb(u2T)*o`miOd2IZmfLW&+rOs; zzvovlIhSf*S_kN3*~i&#uaDh{c}8e=l7U{}uszs*lQ@1)pKQhM%DhZRo zRq|wHXoQN6_Nz8)p4ferdZj3WK6IWgT||NGsWUn)Ba{w z-Ht|tae8*Thl%3A+i&k>%pu@%dtz4k{`dSX^FYCJ-_L246A+MeXc(pDb-4b36j7?w!M6N zvC!(rj7Pv&ED5c4+r2f3%)Rq<`AB7PGDf+j;6f+Uj!Zm2D%KqD=z5PWeB1TGvfqjM!9v?1vTPE3QF*en~ z3jP3>Jhd*VGZiTq&5shkI_P(Ui~t+yQo+1fvHo_6Pv>I*QR@4>4U5H4i7J-0sP^W? zia2C1>=>s5>BKnSKLcd|;JouFIz8~jm>&Nm`Oj%-^6dWoSPTAww&kg0WVfZTqJoUw zvAWANLM=zg;T_o*$)=LeC*eDC20)}1`&lfkKr9bA2$x(`L^opRf4jy=Z%;=*3}LGF zD>`&yG$Pyql`GzV4M#Si;g7do%o!kbRy+*YN!hcQn7h z-8=Z}9kd)hY$QP3@nSn2M$NxNy{0__rw=yVN;ak$OF9UkI^V565s^Lkf17bI=vRr+ zaj8}ZN=hEhX9X~mRhR!@^*>HO0Rv+iW|fOrg7wD_R@R$mr$XPQPhJi`VDyL6-+B^f zWUN5mN<6&}kgxR&Q6WLV;LT*rihhE*p)Em*6bd3wD4d9Scwb^!?ZP3_GV5m*fKH7u z&(=wEb+=S5mrYP=}wLXHZ@d7n8u)#+qvk9AmaL7qWgZ0 zk`qnP8%>}eLvRF(Fiyn){rls;5xM4d1I(!I+t>K?@WdpNpdfLDS#NSfeG)BYNZRV@ zYOmj8(;*id5_42C=(X_;>D>0)||{wb#(> zI1&R)Gwba&6-&1+veOLXS3h-p4y%tt>2ew1h+0tBSK6k z?t_H@6|tBSvyni9+M!oPinXL^q>@yaj;TAT!(#=jKf{Md3k4K@-T|-gb0qBOu;FNI z^fBhK0FhaHI;{9YbsZ)+UXghRh)E!@F;YTHYxXLiDhs(k0xNGUqf2j{aCDu*G} zOtF7jrZ(*c>)r|tyb=+{RS`;`z`~do?>>O^tE7{1vG7mKQQI(L&JfpPk3MBXx2$9c zjf#+woXpV?be`Vn!mb~U?%PhAJqp|2=*V3A5|wNi7WSS8BqtU6?!~uD)^&REPn)B7 z@=_p6Nr2+|#fUxf=Pg1%sSs>0PD=4`@DS3_{!v-nRB?L895<=qT(r~T#@TE%`}z`9L*+XqzlXt^5b`H^K8DYgl zgk2}9wu-W2vqNBEFJiIWX9j1^80|C7a*>|0!Imz^&z~KCmmVy&w$3f9Dc$pL_7d&C z?0hXHb=Hwt7kVx_n(NE2$VhnuH*ie!)h8>$zjA)zY|OO=n1mT-LuU#Q)oo5O&R>%wnA5r-*H!wBEFm=DnrSKj5a zPF302ue$t4d|Tq~f9YP}VCC3F+>_tg_K2W>cTB!ssb#C;`moC$$Ds#=Bq`-H7_lIQW#~*Wpu4YctV*RZ!XEG+@N)HS6 zzmv_*j=DCal_vO=_Xu#9*?=hyGPf5kkp_ri&o!)8F$emzrM`HvmFqVzL%6rgG6X`} zQ-}yE)V8!oy(I_LIqD6vr7kec&p>BhbsLTh@4aB>m>q2&mg7Q}jSPNqP2N0<K@L9x@;PiSw!?jynfu4ri8rZX;;7 zFK1eLKoIMua;$yeU@*lRs6Nb?{|>PeqG>+a1fX#-zs7T~Msl;+O8^_(bt?RPMi|qrA1#j;g%4 zR`n=_>NCQBtmqAP=I)-Zip^}SGaS-29nKxirG*xftUB=-ak{gBfwW3VEnjd@3@-v? z(CbM%pPpLPTcO^RqzHyl$r_nf;*yd!d03day9Zb%*9me{dJ@ z`a_GU;L##jm#mwA%PcN3ZPJbtzh9ne;@Lux+2IUMjTG(e7rMP>k%G!0FbE|^O-*bP z+$@YkdgnU>#BbWhH>uIl$zVWIYk!wwT~?6-3)>F#Ok;{viUg8LigBdTo5c0&e1z=T zezr#buMV=TCdPR9qSmwV_$_ehN!UfNvLjYnY?P_4SR%}`0JOqusi~kvx!n%4c>Yl< zu@9d%%|U=k_)3Vcz!?50$%MAS21B9 zk0?8D4`I4*7IH@;Xs7EgMP!`{)$Rq3d$8}bVr#mugPj-zb9Qb+{pKvWjhH=f? z&BURKho^C{?^F|CVj5I!;|u_(=n$qJEPYPN^;l7j-Gw`KbX9eAHFR}1);wnv)s>Xo zWMsUwzrE(C5q$CZY=H3tsJ=8&QExwfk+z3Kk5|rN(-Q!J$(Bd&^OlRALJq@!KYQ*= z>+in^dA0qIJ`NuO{GCAKzrq6+_R%5qvz|x>m43uq)B2yoG|jqs?eXF-J{AALIrtYJ z019X~cmQ(D6c3ngv#b;4M1Vw8vSa$}`>3@GUja#1B82)Yux6@i6ATM?>kQRGKFC*K znX-Z|{g(RYW&DXb1)15%JB>O03M4H5p%oD&JB@(`L$Kx&=hen%h%N2y$po~5n4HOE zm+M@%G2h}8j%qs=;D-(BeP=B zR143={nN@@S>+OJ8v6Ac2|S(u2w(l=_YYAaPvlQU>qs(F&5parXb^^eZKN5l#l-uy zRQnW{zaZ9$)J^?$xeAqcZS@%Nygq~63K}!(pOviK^gqIkf+Fx4Gb6~nZn_1&f5(>- zeQSN!tRe%16BNTOzoK^2fpNW6Yp1WXP^1AT9w8u^PZ%yX%rM1Bk^-gfu>NFA$mVF( z;2R76FVwwA6I&zaxV+M%t9KxIfU}*ag?%ZnKuMX6Buy7j#+XORfmA}DoSXJ3;ez}> zNn;%oLATxbFOA8rV6-6n)g~#{E=pTY(Gw=F4_;yxul=>FOx6kK|`*>_-IsBCDfGf|0AlKfkF#@F2mL}Y53 z>d(HXB6z#tGLQCr~#cvwSwtL<+{4frf>&#czn(REo z(sFgVnH610Vui{=h{ByBT5(JIYLxkWeLI8h#Ity0A)_kMF+HqwoATWi; zxCLis;T)OK@Lg>Kcg{tkiy#5B>v#PL?!Csz6Z6upXx`$P(Jk9W@+vi_QGn+B6sjMFE^85tRF zwNvEU>8B^wwMe7^F06eKZS38(YlsgwU8wWb>Ido;ltUC?P$nKED)sBM-KTM>SN}#2 zpv&*Lo%0*KPE`O~cOAz&8Q5o;HpeL*{jx1+x>m@)*KXTTR~Hnoo?c{)-^S+(veM?D z-Q5~ax>h_Zkgn_SSwq>Hl8){z*r#l#1{q5Xk4S!;V0)KYx;H(Xe`_)g%>p<)gfaay z)%H9KxxZtd)2Q1o%#JEO-B^32**I}k2x(#%zR+?X+=a2kt+ih8s*eZm;00fNr3~EL z^k}FZyIGUg?JVC7yFFmWxLo}dg2+z{!Je$|>vuoC8p-N-$F53L)4B-9!QS&@Wh<&U zvQBL92OA+Bp7BSIT3C#9dd~6Hlr`>5_;9H>Gup9-F4wNGF#vS1dk1u#> zdTb;B7u^Dus8e{XA~x-Bs=mCx(XK6>R|N~auwLC>SsIf{IY5}M#h{#9LV-qo<~pb4 zvRo#II?9P2w@V)-rMkLKs|&1Ud#lw%Ytap~C)u(wPNAj8OHPTNo~Hl@7awCm6>AA~ z*H}x@`I?b0^?aX+6PK$kSl_OrgGqpvwxrBb_!>npHq^O|n6TtuV8twY@_2< zl26ug@#~@Lq8#F+StB%om_B3y?x~KGx4X&_`mfQrc$fQjn0krTI8K(o988r#=4;Cw zEWb!NuXaCdo9#HP9aBklM)-_1)O_KZ=nKJ?%{nB5*k98Yuc&qhvr{Y zW+5^6DRxmRJRt??BMw)o{H`VPYS2*Xw@0)H#EtJm1#$ZLz{um6Zko3)XZB!@G!eh= z<^=tF$zaA5NS0DyWzw9)S>GsAA(M;ulHrat!E0j|KBF-Jedi!;(L$sannWRa&s=M! za_YOBP?B0LyH9yt#sa_w|8lqiFOU^b1QY{7@D^;)N35OsPy#3_WscW)GM%6 zRQPJ+o};F|r8BDTvhR@=>~n-1wg7m+xr70+?zJwPNjf>YcP4Nk=KPa?SVmul{^B#1 zqqM=|2O5`y##CS#ey5PHW#zP>KT8X4+p^l)ing|{swwwB#|U7jAmuU`ATluwH&|aH zo;(yH#WvGaJsjK#pZ&8y)byt!ZKN+RPpi;FQ12JF5`qd^vng)aoHk0r{v^)5Xkt9aaxVsObt)={-}vBB$Zo<;Lcw~Y z7f_@2FAB+if!kTL6DT!LC~7gzF+BYW(}4q80J9Jv#2QIphfE12xSVb}!CgPpbO(#L zZvNN%4~=%Gt6(BOIsA7iKGwKNLXTK+IObErGJ1ME)Yg(vwExpxH|J{O9-U>V&tOQ3 zB^*9n?%a+MlJT4^YJMd7w2N9`Kr;9Uax%z01kkLfxOkEH(t~a&_6DA&?y+**yCjqE z^^KR2!ifHR!yZRw?j%-3&#WZ0P;z98dLj(P4MqJR83+s$_2Apmwi`6VB&eywB*K1w zBmG+?vGy>>F$XUZhdC);A~=qrF3}A;7dE;pX&1k~<;XC+e*9A6Pq1FUdMHD81^x84 z??tNclrMh7si+_qiz%{oEp9c&t%zS@UR=OmQe!nRF-yzcDS=s7k0y;(FCj0Bc!>$x zAo;S6zC}o(9=pTUC_IdExo}$neD{pnRBX!U8`k;q^cPo!3Q2^Q3EIL=Q+U4=5Fpnf zlsCeXpd<~z_0KtK%ZONtX_k(g=9xE|V01IiztV`n@Un9AF|TE$B=F?UUL&$E^RQG4 znN7^_u#LrY>r!sE2c+Agbo)nx8sZ6xw<`e zj_%GnFVCtH&e5YnQ@aP8u#=OBI*0I+0~Nik=53eSH>dk)dh=)UtD*gyFU(MhBT_CdII=Z;#}L*}id#=z zZt*19covK%3D)?NSl>5#dwV&GndqMp+8x~caQ1BTDs(?m)9v74)Bj(*bpo&u<6y$T z!#Z8bcDCSxFsVp8oa)?aivOh-*SPS$RtX})QzBeS*iOl2qfw6k-hzOr6$2gB?aUdZ zGyd3v7ul)y^7489jB=|cRG8`0WZd99uHC}=mof(WVcg=2b<6gh8wpQfkE^NuPaWWH zR0yX5&iMtMc(@}sh83oC>MNLOu4`>ORqul$v?Y75BpU;*2P?h-v(ge@G=-`xz&hRY zjC5tVgt0}NE=!+~*E^gOxEqsN z`onu*D9xz$)0Ix#pf=LeA^3%wm_@tFJ^k+@kD!z$dN!BQ`@`7_e+9I)_tbxn5kFjp(J)3%H)lG%aTs-i}m|L`3A! zvbyLzwRCP^p{{R`TJZL@Ku;9OJ^qIbyD893%bzP^uXEjFqX0-}!ZP)gpt)a=fggH! z6gwnws(DfW{BbzVo++0TMV~P<^_1ycy}ksG4(SJ%u6tU}?=ZnoP&)EHj?y0yV!^u3 zXRRS-k;8DLL)E>%lj4-3*<$+9Zs>;e?MD$17*rHT!oL*JE`pYN_Nn*H9ZNL>Cpxm4 znw}h`r^?ar=SnA|vS{mOrY$kE1sJ&7g&CJ-2Z#Sz^ma7n7htV#^{{oe5Ovo|sG}5& zbx;z5P;yA*?Yjo@UGxIxf+786kR2@#oDjp1Z)5bKBVTm|7T>o*CgeU$?BKN7@q(YB zu~iUB-vU@QNUubN8bQi9<+8&PbBp{#YZJl2%Rmzg1rC8uR>gK3YanMeE>33pp_@rf zXH`X)gM9-fD``QMVW`Q!rS7)=PZk(HbZu&Ae79lpdywHGa~xT}<^+XXMFR^{+O|lX zp?qcy@+O6NUpgNe`5)?nNMn@?XPf^e)<+9eis}uT#Vj-}EDAF?{^}J<8 zGVHy4MfJ2I^0Z=iCvJ6;e_J6*E7VA?@Vo+vH6Sei-xS-vypng%_2H*g(Upd% zPQyK_V9vL$&dz<-2)R4HsJ~cf2}j1HjZyv`y;X55*Fzwz{{Ge#w<3vuzxexHD~lJu zuPQ>MLffQ57q-R26ZsSJKp3i5c)$JGhiZbag1&Zy8TYi@dsxSsza;UUv-S@y-7Sc{TaOaiHJFyV>4v1n@V# zmL4N?2|{mga_~1iVjgE>()mAl>;J$v)B`^?zJSsBbB&j80gyka^~Lw5$R&s4IN*O8 zc;f{Wo+ZfXEC=lU{v1q$UMKLiO7taVu}MkLNriY==D1E8HOtx!{;3yVC|-mObXe`+ z?X0ueEB}canTsQOuJGoM0Dbx?%Y&lcL}e?Oz%e#4pTiqIXqC}PZr)=EV4FmhREsxN z?eMDhp3+SvJLQ0SY z9}G)s4co{@Q$CNDHqh*5srFjy|5OOtI}5_ar+z!1oF1PX8@(XN-gm`XPs7#>vkTdV zltEvF#kXIKFOacf)PocJawZAYp~d@GEI6`?Y(e=r;|Q337?||1udni&f(ooc$Mv*- zux>eJlp4^JBf(@~r$MhF`|?U-uvfz4z7NZC>Qd27+;Tclkd%k*b5cWWb5a<)BpYLw zJR^*+N(3j{f2TI4jW5Oe3?hIQroTm{#@2f&aW}BTq@n)x6_S?&GGQu!BaeI~Cn& zV*$7?8@Iz3Ns-d_Z7P$Ue}xX&K6KKIHKR340__2$$lX?O{}ax2quJeZ{4z0dG|lUt z9A%#E*Ls(3Bcl;Bzpb7Abo2jU#7)^X{zff4!n_S0Q>{_WEpSVnK&j zLql)k*-Y}D*vAD@o-(%J4cO2otjAEF<+PSScn3 z*Sl+N(!b}lM)2?bPeD;}6Fus7mcRcVT(h(5`p4PGEtmO1L%Aa34W=td=0=Z0|pt}Hx5AB8TN)@^U|y5F*fWR6s2xr!J5xl0P%bTzg0h7j=J{hmRI`Axv%ZGetd zDAxYuA)@Q;EeqnsTfUv*q}Z@$+>?vbB9em3Vd@~1n`L;LiJ~*EAN$Mb7LlKLUqbAn z_=uAg=f+6G=`(*z_o|9YoXX0po%>5Gd;VpqN~HJ@6E{UvXeU1f=wzk)+gWl}*~iOM znx@%=x{L6fkYL`u`Fqbzg`B*RQgd*8j;ihp!TaCOQA*j;0b~=y{`HlTY*&{~o@)GX zW6RHqy`kVI$iN}8fuW^`O7ynzE(UBHY?LPDm)7>-0Sc{lFUzT)yEu{+S5OcHG`Znj~wzm*~9cx`-yc>3=k$PMOI?*U@8DF2@V-T-xt zIS~{NtHrw+p-1Nz`S#tL#-%M2R;q?LL{>GvWd5hp1Q=S$ttR#E z{a;;NWmua_w>=bhiUxOSDNZ3+(PAy`1%kV~ySq!VpryD3cX#*TZbb^TQ2d6T@5*!k zzR#PPy=RiyD|@XqW5z!9`z5F4Mdc|gP*;+Ulp8=py(N*hsS)7+iNk*cr={Y$xF{!X z2sU10{;LgtyjwiAo7P4D>G@J-KP8i@c8@vyA8Gi9LbvsV*{eI!ZzbSI>$7aPG*#dk}=uF%z_LUA8Qt)T#PWBguanZ9X zD#%r1QF6HNfm;$=Ftdro)!KB`-z7jCV+k4h9F^qWR#CbLWUzOnu|}4ac=ZGI z&f+~oDd$RNBP0Mo=Qjsi%v}EydL-1+Cb$$Heel3t%^Bf;R=Ikd!Z3cQV8OLvV?6cm za{sjrN;Hci!gk~ZLoWef`A@ynT9)pY?RYW!^B@WQ z9$UGE`!cWN2K%n`W$@osflqZq~zcua@90>O|m7DqUlv%gADEKJ0=aa7vr6{TU! zEOC}qpCVp#1CylD5#pLMtpW22i z^=x^LE>Y+!@n&17?AaTELOUPEbqA(*7 zxaXQ9l)(T&9CNgy=%_d@hwVfMW+B0HbbL$NGZc{laV1jM#ES(qj`RwpkB95iSTwmX z|2~e95Y{MOT5TocA#xJ1MB_<_YL~Gn86b#>s(P$8UF|(LUfh0yi2_^Q)y=<0cCO7` z*^ld_;H?3hxTmu4U4+h*bJG;uaRcmO)A+mhaZH%QPS)jr%%kjA}-DmUwW@gC$vK5ool8~khuN9W2+^yCyQVS)sNKZnm zq!Z!GCQHx`jZmyQ=DVW)tcdcn^NP<{W7c=J@NW0J=3*Abzi`areJSR`_+Tf%R<+^# z6+}jGR)f~)az-wtJ#Y`$BDTu>DK0j`mCu2$#M8a{%>*;8pOK48b^DW~*qDbMk<=hC zoroSHBVTQQhf+1lBlI_?lm`ZI}CLdXinT!wh^|9p)GgsH3)-_xo@z zVF2nD`t6o(A#iZnqq~nY7}t==;8oT0A)Rd3le(3f zZXX}hq%npJ^-n78lLG|hSDwY#PxOr{8rl2D391jLi`dF+D=97t8_kxKS^_}Dj6*=m zAf(XLR22XF=sGy~V58N}FlJKYm_i+P>}duVs2X3)Nk6}606{PfU~L+EC zGCV5otu^KT^sS;>v6U9VxEl2AtfS__p=9_YQlwfwl|BQZd~51DdlOUS!=?MEhXV3F zq$9>C>fOha-A0%^mOuC_2LmXgj6!ogw|-ICZk#3Q+0V=DX|?a`zJr>wO8q_C=lRca za`UPtjSSjconsT~a`akn*=0iIOmTZ&vje=rJvQq!;y=u61Y+e8lm@V2oD(I1G-#Bt)*xk6!9LFs;xcnrWRt;4K7Y5Q8`yo8({YMBxY z_DEA1cHC;`7-GmRl>2vLY}W|H5`pqJcvYCh8N=Bpdv( zn=(g=LJ&unwb4M)xwXi|IAk-fj$>P=HB6)UH=-Y*8RyTeYQbgdv|cd_7J}u#=_~a4 zS$y+kBm%wKP3v{shc_(!qoWa_NID?(N}q~Cw5LB5F*CW_pW4{|T!jhyKT3nGG}=v- z5&gVlBrOy#I7&C;Hu9B7RJ~EZ!QSN{DH81;)Q3In{QEGjnAeW0V5}yRcZvz~ZHJUr zJumUdNvS*P%a}%82yBIdjvc6Yku&%qTV?xj8W)5w1Efi(q<=foiZGir)oWW)9e&*I z4@zU>ODijCCRQGVdi%f3Os}t)X|g7$aIzL<2Mx4aLz}rjf8Hpr(5|V_hE`~=Bqlli z_H@Y_C;B%zvdZ7B8`K(=R7FM7O0Si5PAU+H2>1wv7b|ty2nhL)e+=8KoOwUg$j4A! zV3HJdSHW%hToQ$Qs#fYm-+2*y8X=<~?0utALl%BwF_<)g?zUQK$|Ipb)p%9nmbNuMW75>GK1 z4BSdl8bS&GW#$q48w2^%{Wd}Z4L)9+E%&jW?B=5xO5mxh#1l0R2J-Y{HGH59!m-79 zM%@I4vuljpGV1M~f4$eAi#qu^;h`Hbw!NOl2YQ0&1IIu-5j%-5eGcAADCRCl--lr7 zKTBLPXAQ9UIJ64K%?(KP5A3DX&0wJ4aRIweT@!$^igd<7(qHtu`sR~IPYIh4_ud^P z881aVrRL9AB6myY4B*7Ref%A3fR4$%u1;}q&^fsuP$(T~T39e@=*2Ydui;lnyGP86EcDbd=wpt*>rBr+BC@m`+EC{6mb7x42Lg3Fwf=xGwW0E9i6j5>I~{o55tj3 za!xEAbB+>Y*CpfBqIdOm>V+8r>Zq@$d@BzGOWd; z$>-CJXZQAe*cE1Kn43sha<=?rMo6>verBRiF%$(UX4UHxa1hKqj_;7ku0$T2_=b+f zbX<==rYnVq^kzvUtUuCA%=7~dnIINZ?6%nr7%{QG(g^l>U1P!nr`Enq^K(zc z7);WgA}V-mgJKDVJ#GuR?~O}4ATmVPTTh2Gna%gE=Rdw~+v%do%=5Yu8b9pp9ERov zSjk*i5Nkw5Mz%_s8egdI(**L? z`}qw*ZA;|x!STS2p!e!Z-bUZ@NBoidpNK?`eN?X3PJ%9T`=n-0Xg85A(g(t6J%V?^TcvWxdq-Da@Kiynhh?-M=vO^@+#l^hfZM z2P=^3#QLb(g@%VJf1r$<4rQCl+_$vM^7#zDxxYW4^@Hs6&HV012~gYb2k1_j1zh7Y z<0xwwSqErRZXNUC{w#3CW}cp3S4rlJ@`;B}D^ux2Lo_TIJ@!?OSyiQss#cKt$_bTL zA{EmZNW-z9t+Hs6+tdLk*ycf9DZpTaV|p>UnE8yHgaV@JfFZSaCW4T`>HNC~fZB2{ zZD^P~$Zbm>t_E?p?SmF#!W0xo7Q7iY7!lXb*oHWgPovrkyz9nKr>Aew`7yjGvV@^cKH?FXtkuiLFmi|Bo)TNo65#c}!x8c)e zjqECnYG2ty5Yu2b>x12*nJ2VncUeseQ3qKD?O3B=sL*{Jneo7ntsxW8)*80mIIFBo zwOv<4NxhVj?tojDh9|9B>t&v8*|DBEQjB&U$@d-s#6RifRqov`ZrM*|ZQ^SVGo|Ep zRc0tjAgX1{1(f=ISN- zj&#%)6N$nZ6`F26j_?S(keKJ{y9P$URY?mPi-}HH10{P&iNZpQ`1U=c&w)53)$h`_ zGLmk*xMhPP*)D)9w4ziSo>A@x3Zrp&f+aGQvqm)g*yM z=D`AoyI6}PGdh{hDSN7NYw=PqOyB5O?YJCBF>fLn(JsnWn}L*HImFW;=I7~IP5u~= ztPB&xX7BY6Kc*BgN-=@uLK&0`V2-rqoto_0lQ!N%`k}^%0|;kTQ)KUD3kuR>;=O|^ zJyQr?grSFNZ_VIDN7e~l8B1nbz^;dtb;*n{Dyc92DGMV1%?5GK3PFr>O;1L}XEbF9 z6%asD#DNht=taMh;(jQ=V)H{Zw=$S&FRk@n`<-c0PY84V>r^T_t|jWmm{fxzRufcA?9uAdvM{sA<$`WZ*s}`FWm{6K+eBUiMW+M1GVj0G67q5s>S}=a zECwwy@&nrV<-d!glua{X`l1EmV7y-={zG~GP47*cH!J;55$i_OL>I*?_O5 z^;>?umqe)z@Vhjizq)n+>H9Gq7J;5%3zwj6r2TaDQP1L=V&x=pS_MEk5Rs&*zt_48 zTBshpGj(|d)%tpXmmjDAdb__iRuO$p(pup}lYFao_H%A-dTJ>{)XG*z#CI)s$g3CH zC2&%{Hg~-?Z%6Grv8${T=j^_$H#7U z?c~M(Y1?iM&z7oH46Iwp+q<_Un1>Q3WZN9CZ%txf%O&A|)aJMPumMIww=MHX6dmlj z4qk{}8j;U#0ZpGf*K(!GV3CkCWHs@#Ah?*QUi@jFni~sJg6@>hp`H7HJcg+HcwMy2u+c! zlxJdTA#BCxM7}BMh*~Wj;ZY6EV1*6lAwge<+F+eYg=Be#Y~wV7zh2WEh_hcD)txDZwX=}Uuv(4 zU}J(CZNvFd&NqD{v!U2Hr!Rvmj&Uc^qt1@0{x_Z9NkU~+>JKgjP*ffnS6t&>S7ue+ zAnP>UP8|gorpj4%mFq@G1!A}sOMf=)monbtt`UTX8aVf7&q-#7+jl%16*X(pN+LoAzY`vaV4$@4 z=pJ%)7&91e?-q!#P%joQ-4C>`Dj3GEE^R~qzv&?LnLD6dW_U5*bQHo<0& zE?>q9$TOINm*3(N*I>;i9;6g|OaVWf(%Og_sv1jluTjS`v|o;e2I}PFkH;f0oW{|h zD&w!l$Q@SshQRm_>@Q#JLGdJNuf%0MG8ds2o)e*gpI#5tzKby89))1g3l-LK!*gqi z9MHY-naQO^Fxj=S4@5xQn;{{IzODd0zWFv=_R?Tx)07leMkfL^8G zc=e=By$m=X3XD;XGJHRd#6sgOpTIl|WQ<`WrLv`5NM6?lp=+dn2@B2_933B@$|v89 z10i^wp-3B0kV`h^Z;bNc+nW>5i+`e!e*uJu2s}JE*xrsl@E+*hH|(0>xWn$>`$y)Z LyhNp#e&BxrFOZgJ literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Chiller Data/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Chiller Data/view.json new file mode 100644 index 0000000..4d06be6 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Chiller Data/view.json @@ -0,0 +1,1085 @@ +{ + "custom": {}, + "params": { + "site": "Hermosa Modbus" + }, + "propConfig": { + "custom.History.0.key": { + "persistent": true + }, + "custom.History.0[0]": { + "persistent": true + }, + "custom.History.0[1]": { + "persistent": true + }, + "custom.History.0[2]": { + "persistent": true + }, + "custom.History.key": { + "persistent": true + }, + "custom.History[0][0]": { + "persistent": true + }, + "custom.History[0][1]": { + "persistent": true + }, + "custom.History[0][2]": { + "persistent": true + }, + "custom.History[1]": { + "persistent": true + }, + "custom.History[1][0]": { + "persistent": true + }, + "custom.History[3]": { + "persistent": true + }, + "custom.History[3][0]": { + "persistent": true + }, + "custom.historyTags.0[0]": { + "persistent": true + }, + "custom.historyTags.0[1]": { + "persistent": true + }, + "custom.historyTags.0[2]": { + "persistent": true + }, + "custom.historyTags.key": { + "persistent": true + }, + "custom.historyTags.key-1": { + "persistent": true + }, + "custom.historyTags.key.key": { + "persistent": true + }, + "custom.historyTags.key.key-1": { + "persistent": true + }, + "custom.key": { + "persistent": true + }, + "custom.key-1": { + "persistent": true + }, + "custom.key[0]": { + "persistent": true + }, + "custom.key[1]": { + "persistent": true + }, + "custom.key[2]": { + "persistent": true + }, + "params.site": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 568, + "width": 605 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "baseline-fiber_manual_record-24px_2" + }, + "position": { + "height": 38.43, + "width": 33.62, + "x": -165.13, + "y": -7.38 + }, + "propConfig": { + "props.elements[1].fill.paint": { + "binding": { + "config": { + "expression": "if(tag({parent.custom.site}+ \u0027/Status/Oil_HOA\u0027) , \"#00FF00\", \"#D5D5D5\")" + }, + "type": "expr" + } + } + }, + "props": { + "elements": [ + { + "d": "M24 24H0V0h24v24z", + "fill": { + "paint": "#2B2B2B" + }, + "name": "path", + "type": "path" + }, + { + "cx": "12", + "cy": "12", + "fill": {}, + "name": "circle", + "r": 8, + "type": "circle" + } + ], + "viewBox": "0 0 24 24" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "Label_93" + }, + "position": { + "height": 33.39, + "width": 138.98, + "x": 96.49, + "y": 194.22 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black", + "textAlign": "right" + }, + "text": "Data 4" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_95", + "visible": "True" + }, + "position": { + "height": 33.39, + "rotate": { + "anchor": "65%" + }, + "width": 109.09, + "x": 246.87, + "y": 194.22 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(tag({parent.custom.site} + \"/Flow_Data/Today_Total\"), \"#,##0\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "outset", + "color": "black", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_97" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 366.23, + "y": 194.31 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + }, + "text": "units" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_98", + "visible": "True" + }, + "position": { + "height": 33.39, + "rotate": { + "anchor": "65%" + }, + "width": 109.09, + "x": 246.31, + "y": 152.37 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(tag({parent.custom.site} + \"/Flow_Data/Last_Hr\"), \"#,##0.#\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "outset", + "color": "black", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_99" + }, + "position": { + "height": 33.39, + "width": 141.97, + "x": 92.94, + "y": 154.35 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black", + "textAlign": "right" + }, + "text": "Data 3" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_100" + }, + "position": { + "height": 33.39, + "width": 140.1, + "x": 96.49, + "y": 112.59 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black", + "textAlign": "right" + }, + "text": "Data 2" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_101" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 365.86, + "y": 152.37 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + }, + "text": "units" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_43" + }, + "position": { + "height": 33.39, + "width": 135.99, + "x": 100.41, + "y": 69.66 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black", + "textAlign": "right" + }, + "text": "PIT-100" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_39", + "visible": "True" + }, + "position": { + "height": 33.39, + "rotate": { + "anchor": "65%" + }, + "width": 109.09, + "x": 244.62, + "y": 69.66 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat({[default]Test_Tags/P_Ain/Val}, \"#,##0.#\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "outset", + "color": "black", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_47" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 363.99, + "y": 69.66 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + }, + "text": "psi" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_102", + "visible": "True" + }, + "position": { + "height": 33.39, + "rotate": { + "anchor": "65%" + }, + "width": 109.09, + "x": 244.62, + "y": 112.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(tag({parent.custom.site} + \"/Flow_Data/Current_Hr\"), \"#,##0.#\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "outset", + "color": "black", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_103" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 363.99, + "y": 112.59 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + }, + "text": "units" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_104" + }, + "position": { + "height": 33.39, + "width": 138.98, + "x": 97.24, + "y": 277.29 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black", + "textAlign": "right" + }, + "text": "Data 6" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_105", + "visible": "True" + }, + "position": { + "height": 33.39, + "rotate": { + "anchor": "65%" + }, + "width": 109.09, + "x": 246.68, + "y": 277.29 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(tag({parent.custom.site} + \"/Flow_Data/Month_Total\"), \"#,##0.#\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "outset", + "color": "black", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_106" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 366.04, + "y": 277.29 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + }, + "text": "units" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_107" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 366.79, + "y": 235.35 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + }, + "text": "units" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_108", + "visible": "True" + }, + "position": { + "height": 33.39, + "rotate": { + "anchor": "65%" + }, + "width": 109.09, + "x": 247.05, + "y": 235.35 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(tag({parent.custom.site} + \"/Flow_Data/Yesterday_Total\"), \"#,##0.#\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "outset", + "color": "black", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_109" + }, + "position": { + "height": 33.39, + "width": 141.97, + "x": 93.69, + "y": 237.33 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black", + "textAlign": "right" + }, + "text": "Data 5" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_112" + }, + "position": { + "height": 33.39, + "width": 141.97, + "x": 93.69, + "y": 356.31 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black", + "textAlign": "right" + }, + "text": "Data 8" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_113" + }, + "position": { + "height": 33.39, + "width": 138.98, + "x": 96.49, + "y": 313.29 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black", + "textAlign": "right" + }, + "text": "Data 7" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_114", + "visible": "True" + }, + "position": { + "height": 33.39, + "rotate": { + "anchor": "65%" + }, + "width": 109.09, + "x": 246.87, + "y": 313.29 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(tag({parent.custom.site} + \"/Flow_Data/Prev_Month_Total\"), \"#,##0\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "outset", + "color": "black", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_115", + "visible": "True" + }, + "position": { + "height": 33.39, + "rotate": { + "anchor": "65%" + }, + "width": 109.09, + "x": 247.05, + "y": 354.33 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(tag({parent.custom.site} + \"/Flow_Data/Total_Accum\"), \"#,##0.#\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "outset", + "color": "black", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_116" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 366.79, + "y": 354.33 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + }, + "text": "units" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_124" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 366.23, + "y": 313.29 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + }, + "text": "units" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_125" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 366.79, + "y": 520.38 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + }, + "text": "units" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_126", + "visible": "True" + }, + "position": { + "height": 33.39, + "rotate": { + "anchor": "65%" + }, + "width": 109.09, + "x": 247.05, + "y": 520.38 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(tag({parent.custom.site} + \"/Flow_Data/Pressure\"), \"#,##0.#\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "outset", + "color": "black", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_132" + }, + "position": { + "height": 33.39, + "width": 141.97, + "x": 93.69, + "y": 522.36 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black", + "textAlign": "right" + }, + "text": "Data 12" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_133" + }, + "position": { + "height": 33.39, + "width": 138.98, + "x": 96.49, + "y": 479.25 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black", + "textAlign": "right" + }, + "text": "Data 11" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_134", + "visible": "True" + }, + "position": { + "height": 33.39, + "rotate": { + "anchor": "65%" + }, + "width": 109.09, + "x": 246.87, + "y": 479.25 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(tag({parent.custom.site} + \"/Flow_Data/Density\"), \"#,##0\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "outset", + "color": "black", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_135" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 366.23, + "y": 479.25 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_136" + }, + "position": { + "height": 33.39, + "width": 138.98, + "x": 97.24, + "y": 436.23 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black", + "textAlign": "right" + }, + "text": "Data 10" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_137", + "visible": "True" + }, + "position": { + "height": 33.39, + "rotate": { + "anchor": "65%" + }, + "width": 109.09, + "x": 246.68, + "y": 436.23 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(tag({parent.custom.site} + \"/Flow_Data/BSnW\"), \"#,##0.#\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "outset", + "color": "black", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_138" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 366.04, + "y": 436.32 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + }, + "text": "units" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_139" + }, + "position": { + "height": 33.39, + "width": 141.97, + "x": 93.69, + "y": 396.36 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black", + "textAlign": "right" + }, + "text": "Data 9" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_140", + "visible": "True" + }, + "position": { + "height": 33.39, + "rotate": { + "anchor": "65%" + }, + "width": 109.09, + "x": 247.05, + "y": 394.38 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "numberFormat(tag({parent.custom.site} + \"/Flow_Data/Temperature\"), \"#,##0.##\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "outset", + "color": "black", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_141" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 366.79, + "y": 394.38 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + }, + "text": "units" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_143" + }, + "position": { + "height": 33.39, + "width": 81.26, + "x": 366.23, + "y": 479.79 + }, + "props": { + "style": { + "borderStyle": "none", + "color": "black" + }, + "text": "units" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Desc" + }, + "position": { + "basis": "10px", + "grow": 1, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Popups/label", + "textAlign": "center" + }, + "text": "Chiller Data" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Header" + }, + "position": { + "height": 47, + "width": 604, + "y": -1.98 + }, + "props": { + "alignItems": "center", + "style": { + "borderBottomStyle": "ridge", + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "custom": { + "site": "Hackberry CDP", + "tag_path": "[default]Bubbles/Digital In/Valve_Feedback" + }, + "meta": { + "name": "root" + }, + "position": { + "x": -55.71875, + "y": 5.1875 + }, + "propConfig": { + "custom.valve_color": { + "binding": { + "config": { + "expression": "if(tag({this.custom.tag_path}),\"#00FF00\", \"#ac0000\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/SDV_Control/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/SDV_Control/resource.json new file mode 100644 index 0000000..41fcd12 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/SDV_Control/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "4c3a0f0ff4ea59a1309d377fd313a8e2bb560d0d734149b6a300a2ffaeebbf6e", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/SDV_Control/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/SDV_Control/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..3badaaeebc30a1695c09a57dff7ba0d5bba2f32a GIT binary patch literal 7976 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 N002ovPDHLkV1jf!d$Irk literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Trend/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Trend/view.json new file mode 100644 index 0000000..e79b0d7 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Trend/view.json @@ -0,0 +1,82 @@ +{ + "custom": {}, + "params": { + "tagPath": "[default]Test_Tags/P_Ain/Val" + }, + "propConfig": { + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 99, + "width": 242 + } + }, + "root": { + "children": [ + { + "custom": { + "key": [ + { + "aggregate": "Average", + "alias": "" + } + ] + }, + "meta": { + "name": "Sparkline" + }, + "position": { + "basis": "100px" + }, + "propConfig": { + "custom.key[0].path": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + }, + "props.points": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "5", + "mostRecentUnits": "MIN" + }, + "ignoreBadQuality": false, + "polling": { + "enabled": true, + "rate": "10" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.key}", + "valueFormat": "DATASET" + }, + "type": "tag-history" + } + } + }, + "type": "ia.display.sparkline" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Valve_Control/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Valve_Control/resource.json new file mode 100644 index 0000000..5bae65d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Valve_Control/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "8cb40140b348ab06f31487e4d169e6616a72b864910b613bb1d2fc4e9525677c", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Valve_Control/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Valve_Control/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..7dfc7c1038dc9832ca4b0e1efe65bb40ee6037aa GIT binary patch literal 5462 zcmbW5S2SF2*!D*+AxeZn7-jS>i0FyvH9FBt5H;#BjG2%qiQb|G(TS2oqBH6sO7tKY zQ6lOf7%}+v|2_DQ-lO+m_UyIyTF+kVzVGL{e%BLkY^X&`%|;CZfoOHKADICEoxsnZ zk{q}eWer<{K({$`9z8IF+3yul1et5x!o)hN5p#2+zH6w_Gg2xek(HFf9lCVp;Ri81 z9nl%zMS~tE{7o{8=Gjv(Z8A=yPgC=FV1re>PQ7SXvTr%NZE*B-d^IL?Wq)}oXJuq; zzoSjUTulvqBMr*vFGW?#h_lmQo3zV9A|<$*OG!y1vd!9pY|t#^wkE{HoqE-F3S!tB zB;rCuL@RtV;swmOmqghaNaR7a7{=_DSx5K?|_j}ClyOUPHu9x zzf|Qql$IgqV-tS5%UYle&w4tVt3h$|j-;T1*X##!KGg_(O46PC505uTOKu4mN`eX$ zL(3haE;Dyb1jv{&{>;|0+jWGW$XadB)f@RNel7di5}2Ns$G+4RRru9!#V}pKh(AM5 zR|jpRyU_4aEbM5#*mJ7LlKwdkuwVrzmUm62{8n;+Z@d^9e=0nd9d6eHYpJHmt6y7 z4`bh{oys#^VFdYidA35kn)HjqZ>7_q*5*sNnD^uTmD|{E`)MRTibCQ>MPgy%Ns1sdt2<=CX=Ii_vVWfg0|Gi zsF{kIo8^VA8n|k$Kflt77Po7~RZ{f!dc6AXw>@1IgvU9>ANn*EmYOo+#@W?`15zX3vc%RVDl}d*XWS2bnyV72P;1+g);*pr0pU;#c{5x4M2k;11Disn z8ErhAfzi5{2pv(Bv_ws8j^w1Pf4=KJ*1+9BG8FAs0G?gi-xn%sa$*wKL z+dB)bb>14h^XZJ@gSL5%#l}T}YScS{xdaRb%Fflh)2k-{h0^nnZ=z!{m=1WgFeyFPR)y*TM3 zX62&`1$R(4>Cx6iNuzT=^^0tb_6tdj+2r;i5&Vj99`@;S(XWfOns`_HExhu&-qqOQ zE(Kz_J&g94(k&=@6}=;(V;2H!NMgifpC!Bod;4Qd98Qg6`S1Qx-izqy`>sD)gKNsc z4%R~`%-^G<_sZ~7aJ#FAN9B;Fb;99li&Gr#$m2D#-mX4rEaw-06D9ZdObsUek!-#} zp4>*fu!R#7o%@~bzgrX0sGlA1d-dCbKpWz@HEBfss@2I|UON6^I@4$_v+sCp5lkQu z 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 Cl6s>6 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Valve_Control/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Valve_Control/view.json new file mode 100644 index 0000000..b12ca61 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/Popup/Examples/Valve_Control/view.json @@ -0,0 +1,430 @@ +{ + "custom": { + "tag_path": "[default]Bubbles/Digital In/Valve_Feedback", + "valve_cmd_path": "[default]Bubbles/Digital Out/Valve_Command" + }, + "params": {}, + "permissions": { + "securityLevels": [ + { + "children": [ + { + "children": [], + "name": "Administrator" + }, + { + "children": [], + "name": "Operator" + } + ], + "name": "Authenticated" + } + ], + "type": "AnyOf" + }, + "propConfig": { + "custom.tag_path": { + "persistent": true + }, + "custom.valve_cmd_path": { + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 225, + "width": 381 + } + }, + "root": { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\t\n\tsystem.tag.write(self.parent.custom.valve_cmd_path, True)" + }, + "permissions": { + "securityLevels": [ + { + "children": [ + { + "children": [], + "name": "Administrator" + }, + { + "children": [], + "name": "Operator" + } + ], + "name": "Authenticated" + } + ], + "type": "AnyOf" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Open" + }, + "position": { + "height": 48.99999999999999, + "width": 165, + "x": 16, + "y": 152 + }, + "props": { + "style": { + "classes": "Button" + }, + "text": "Open Valve" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.parent.custom.valve_cmd_path, False)" + }, + "permissions": { + "securityLevels": [ + { + "children": [ + { + "children": [], + "name": "Administrator" + }, + { + "children": [], + "name": "Operator" + } + ], + "name": "Authenticated" + } + ], + "type": "AnyOf" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Close" + }, + "position": { + "height": 49, + "width": 165, + "x": 195, + "y": 151 + }, + "props": { + "style": { + "classes": "Button" + }, + "text": "Close Valve" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "3-D Gate valve" + }, + "position": { + "height": 61, + "width": 116, + "x": 130, + "y": 51 + }, + "propConfig": { + "props.elements[0].elements[0].fill.paint.stops[0].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[0].elements[0].fill.paint.stops[1].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[0].elements[0].fill.paint.stops[2].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[0].elements[0].fill.paint.stops[3].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[0].elements[0].fill.paint.stops[4].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[0].elements[0].fill.paint.stops[5].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint.stops[0].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint.stops[1].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint.stops[2].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint.stops[3].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint.stops[4].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint.stops[5].style.stopColor": { + "binding": { + "config": { + "path": "parent.custom.valve_color" + }, + "type": "property" + } + } + }, + "props": { + "elements": [ + { + "elements": [ + { + "d": "M56.25,28.181l56.249,28.181V0", + "fill": { + "paint": { + "gradientUnits": "userSpaceOnUse", + "stops": [ + { + "offset": "0", + "style": {} + }, + { + "offset": "0.45", + "style": {} + }, + { + "offset": "0.55", + "style": {} + }, + { + "offset": "0.76", + "style": {} + }, + { + "offset": "0.77", + "style": {} + }, + { + "offset": "1", + "style": {} + } + ], + "type": "linear", + "x1": "84.374", + "x2": "84.374", + "y1": "56.3613", + "y2": "4.882813e-004" + } + }, + "name": "path", + "type": "path" + } + ], + "name": "Group_Port1", + "type": "group" + }, + { + "elements": [ + { + "d": "M0.001,56.361V0L56.25,28.181", + "fill": { + "paint": { + "gradientUnits": "userSpaceOnUse", + "stops": [ + { + "offset": "0", + "style": {} + }, + { + "offset": "0.45", + "style": {} + }, + { + "offset": "0.55", + "style": {} + }, + { + "offset": "0.76", + "style": {} + }, + { + "offset": "0.77", + "style": {} + }, + { + "offset": "1", + "style": {} + } + ], + "type": "linear", + "x1": "28.1255", + "x2": "28.1255", + "y1": "56.3613", + "y2": "4.882813e-004" + } + }, + "name": "path", + "type": "path" + } + ], + "name": "Group_Port2", + "type": "group" + } + ], + "viewBox": "0 0 112.5 56.36" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 29, + "width": 207, + "x": 81, + "y": 14 + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "30px", + "textAlign": "center" + }, + "text": "SDV Control" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_0" + }, + "position": { + "height": 29, + "width": 207, + "x": 91, + "y": 119 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Valve Position: \" + if(tag({parent.custom.tag_path}), \"Open\", \"Closed\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "20px", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "propConfig": { + "custom.tag_path": { + "binding": { + "config": { + "path": "view.custom.tag_path" + }, + "type": "property" + } + }, + "custom.valve_cmd_path": { + "binding": { + "config": { + "path": "view.custom.valve_cmd_path" + }, + "type": "property" + } + }, + "custom.valve_color": { + "binding": { + "config": { + "expression": "if(tag({this.custom.tag_path}),\"00FF00\", \"#ac0000\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#2B2B2B" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/hmidemo/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/hmidemo/resource.json new file mode 100644 index 0000000..5753ca6 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/hmidemo/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "fa86f9b8ac685ca335719c69320bba089233cf66b186e392a2458f6a80b2ad66", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/hmidemo/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/hmidemo/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..f3f15690aefb7e1778a8dcf54e87838757c12433 GIT binary patch literal 34371 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/hmidemo/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/hmidemo/view.json new file mode 100644 index 0000000..145dbae --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Main Windows/hmidemo/view.json @@ -0,0 +1,1533 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "height": 900, + "width": 1750 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Label_15" + }, + "position": { + "height": 168, + "width": 158, + "x": 1586, + "y": 114.234375 + }, + "props": { + "style": { + "borderBottomLeftRadius": 10, + "borderBottomRightRadius": 10, + "borderStyle": "solid", + "borderTopLeftRadius": 10, + "borderTopRightRadius": 10, + "borderWidth": 1 + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Simple Tank" + }, + "position": { + "height": 181, + "width": 133, + "x": 275.984, + "y": 386.615 + }, + "props": { + "elements": [ + { + "elements": [ + { + "d": "M0.388,98.035c0,0,1.688,13.84,27.814,13.84c25.869,0,27.93-13.84,27.93-13.84V14.477 c0,0-0.902-13.964-27.929-13.964c-25.226,0-27.815,13.964-27.815,13.964V98.035z", + "fill": { + "paint": "#EEEEEE" + }, + "name": "path", + "stroke": { + "paint": "#424242" + }, + "type": "path" + }, + { + "d": "M0.451,98.086h55.744", + "fill": { + "paint": "none" + }, + "name": "path", + "stroke": { + "paint": "#424242", + "width": "0.25" + }, + "type": "path" + }, + { + "d": "M0.451,14.527h55.744", + "fill": { + "paint": "none" + }, + "name": "path", + "stroke": { + "paint": "#424242", + "width": "0.25" + }, + "type": "path" + } + ], + "name": "Group_TankBody", + "type": "group" + } + ], + "preserveAspectRatio": "none", + "viewBox": "0 0 56.758 112.5" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "Sparkline_0" + }, + "position": { + "height": 128, + "width": 100, + "x": 306.18, + "y": 412.1 + }, + "propConfig": { + "props.points": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "1", + "mostRecentUnits": "HOUR" + }, + "enableValueCache": true, + "ignoreBadQuality": false, + "polling": { + "enabled": true, + "rate": "5" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "delay": "1", + "delayUnits": "MIN", + "type": "INTERVAL" + }, + "tags": [ + { + "path": "[default]Test_Tags/P_Ain/Val" + } + ], + "valueFormat": "DATASET" + }, + "type": "tag-history" + } + } + }, + "props": { + "desired": { + "fill": { + "color": "#FFFFFF" + }, + "high": 80, + "low": 20 + }, + "marker": { + "first": { + "stroke": { + "color": "#080000" + } + }, + "last": { + "fill": { + "color": "#000000" + } + } + }, + "range": { + "high": 100, + "low": 0 + }, + "style": { + "backgroundColor": "#EAF6FF" + } + }, + "type": "ia.display.sparkline" + }, + { + "meta": { + "name": "Short horizontal pipe" + }, + "position": { + "height": 3, + "width": 441, + "x": 184, + "y": 541 + }, + "props": { + "elements": [ + { + "elements": [ + { + "d": "M112.5,29.924H0V0.224h112.5V29.924z", + "fill": { + "paint": { + "gradientTransform": "", + "gradientUnits": "", + "stops": [ + { + "offset": "0.01", + "style": { + "stopColor": "#646566" + } + }, + { + "offset": "0.16", + "style": { + "stopColor": "#909091" + } + }, + { + "offset": "0.49", + "style": { + "stopColor": "#E0E0E0" + } + }, + { + "offset": "1", + "style": { + "stopColor": "#646566" + } + } + ], + "type": "linear", + "x1": "94.2881", + "x2": "123.9873", + "y1": "-23.0383", + "y2": "-23.0383" + } + }, + "name": "path", + "type": "path" + } + ], + "name": "Group_Horizonatal_Short", + "type": "group" + } + ], + "preserveAspectRatio": "none", + "viewBox": "0 0 112.5 29.924" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "Short horizontal pipe_0" + }, + "position": { + "height": 3, + "rotate": { + "angle": 90 + }, + "width": 325, + "x": 347.488, + "y": 380 + }, + "props": { + "elements": [ + { + "elements": [ + { + "d": "M112.5,29.924H0V0.224h112.5V29.924z", + "fill": { + "paint": { + "gradientTransform": "", + "gradientUnits": "", + "stops": [ + { + "offset": "0.01", + "style": { + "stopColor": "#646566" + } + }, + { + "offset": "0.16", + "style": { + "stopColor": "#909091" + } + }, + { + "offset": "0.49", + "style": { + "stopColor": "#E0E0E0" + } + }, + { + "offset": "1", + "style": { + "stopColor": "#646566" + } + } + ], + "type": "linear", + "x1": "94.2881", + "x2": "123.9873", + "y1": "-23.0383", + "y2": "-23.0383" + } + }, + "name": "path", + "type": "path" + } + ], + "name": "Group_Horizonatal_Short", + "type": "group" + } + ], + "preserveAspectRatio": "none", + "viewBox": "0 0 112.5 29.924" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "Short horizontal pipe_2" + }, + "position": { + "height": 3, + "width": 636, + "x": 655.18, + "y": 528.61 + }, + "props": { + "elements": [ + { + "elements": [ + { + "d": "M112.5,29.924H0V0.224h112.5V29.924z", + "fill": { + "paint": { + "gradientTransform": "", + "gradientUnits": "", + "stops": [ + { + "offset": "0.01", + "style": { + "stopColor": "#646566" + } + }, + { + "offset": "0.16", + "style": { + "stopColor": "#909091" + } + }, + { + "offset": "0.49", + "style": { + "stopColor": "#E0E0E0" + } + }, + { + "offset": "1", + "style": { + "stopColor": "#646566" + } + } + ], + "type": "linear", + "x1": "94.2881", + "x2": "123.9873", + "y1": "-23.0383", + "y2": "-23.0383" + } + }, + "name": "path", + "type": "path" + } + ], + "name": "Group_Horizonatal_Short", + "type": "group" + } + ], + "preserveAspectRatio": "none", + "viewBox": "0 0 112.5 29.924" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "MovingAnalogIndicator_0" + }, + "position": { + "height": 181, + "width": 65, + "x": 869.99, + "y": 284.474 + }, + "propConfig": { + "props.processValue": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "path": "{../AnalogInput.props.params.tagPath}" + }, + "tagPath": "{path}/Val" + }, + "type": "tag" + } + } + }, + "props": { + "desiredHigh": 80, + "desiredLow": 20, + "highAlarm": 800, + "highHighAlarm": null, + "highInterlock": null, + "lowAlarm": 10, + "lowInterlock": null, + "lowLowAlarm": null + }, + "type": "ia.display.moving-analog-indicator" + }, + { + "meta": { + "name": "Short horizontal pipe_3" + }, + "position": { + "height": 3, + "width": 773, + "x": 509.67, + "y": 217.66 + }, + "props": { + "elements": [ + { + "elements": [ + { + "d": "M112.5,29.924H0V0.224h112.5V29.924z", + "fill": { + "paint": { + "gradientTransform": "", + "gradientUnits": "", + "stops": [ + { + "offset": "0.01", + "style": { + "stopColor": "#646566" + } + }, + { + "offset": "0.16", + "style": { + "stopColor": "#909091" + } + }, + { + "offset": "0.49", + "style": { + "stopColor": "#E0E0E0" + } + }, + { + "offset": "1", + "style": { + "stopColor": "#646566" + } + } + ], + "type": "linear", + "x1": "94.2881", + "x2": "123.9873", + "y1": "-23.0383", + "y2": "-23.0383" + } + }, + "name": "path", + "type": "path" + } + ], + "name": "Group_Horizonatal_Short", + "type": "group" + } + ], + "preserveAspectRatio": "none", + "viewBox": "0 0 112.5 29.924" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "Label_10" + }, + "position": { + "height": 125.00000000000001, + "width": 308, + "x": 23, + "y": 51.74 + }, + "props": { + "style": { + "borderBottomLeftRadius": 10, + "borderBottomRightRadius": 10, + "borderStyle": "solid", + "borderTopLeftRadius": 10, + "borderTopRightRadius": 10, + "borderWidth": 1 + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "PSD_Status" + }, + "position": { + "height": 32, + "width": 94, + "x": 121.906, + "y": 66.4856 + }, + "props": { + "text": "PSD Status:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_12" + }, + "position": { + "height": 32, + "width": 91, + "x": 231.094, + "y": 66.4846 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "{this.props.text}" + }, + "transforms": [ + { + "code": "\tif value \u003d\u003d \u0027Normal\u0027:\n\t\treturn \u0027#FFFFFF\u0027\n\treturn \u0027#FF0000\u0027", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{[default]Prime_L24_CDP/Alarm/PSD}" + }, + "transforms": [ + { + "code": "\tif value \u003d\u003d 0:\n\t\treturn \"Normal\"\n\treturn \"Alarm\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "ValveSolenoid" + }, + "position": { + "height": 77, + "width": 140, + "x": 579.35, + "y": 182.341 + }, + "props": { + "params": { + "appearance": "", + "highPerformance": true, + "rotate": false, + "showLabel": true, + "tagPath": "[default]Test_Tags/P_ValveSO" + }, + "path": "Plant PAX/Faceplates/P_ValveSO/P_ValveSO_Hor" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Short horizontal pipe_4" + }, + "position": { + "height": 3, + "rotate": { + "angle": 90 + }, + "width": 18, + "x": 890.488, + "y": 519.524 + }, + "props": { + "elements": [ + { + "elements": [ + { + "d": "M112.5,29.924H0V0.224h112.5V29.924z", + "fill": { + "paint": { + "gradientTransform": "", + "gradientUnits": "", + "stops": [ + { + "offset": "0.01", + "style": { + "stopColor": "#646566" + } + }, + { + "offset": "0.16", + "style": { + "stopColor": "#909091" + } + }, + { + "offset": "0.49", + "style": { + "stopColor": "#E0E0E0" + } + }, + { + "offset": "1", + "style": { + "stopColor": "#646566" + } + } + ], + "type": "linear", + "x1": "94.2881", + "x2": "123.9873", + "y1": "-23.0383", + "y2": "-23.0383" + } + }, + "name": "path", + "type": "path" + } + ], + "name": "Group_Horizonatal_Short", + "type": "group" + } + ], + "preserveAspectRatio": "none", + "viewBox": "0 0 112.5 29.924" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "AlarmStatusTable" + }, + "position": { + "height": 237, + "width": 1749, + "x": 0.86, + "y": 658 + }, + "props": { + "filters": { + "active": { + "conditions": { + "source": "*prov:default:/tag:Test_Tags*" + }, + "states": { + "activeAcked": false, + "clearUnacked": false + } + } + }, + "pager": { + "hide": true, + "initialOption": 100 + }, + "toolbar": { + "enableConfiguration": false, + "enableFilter": false, + "enableFilterResults": false, + "enablePreFilters": false, + "enableShelvedTab": false + } + }, + "type": "ia.display.alarmstatustable" + }, + { + "meta": { + "name": "Short horizontal pipe_5" + }, + "position": { + "height": 3, + "rotate": { + "angle": 90 + }, + "width": 18, + "x": 888.488, + "y": 210.001 + }, + "props": { + "elements": [ + { + "elements": [ + { + "d": "M112.5,29.924H0V0.224h112.5V29.924z", + "fill": { + "paint": { + "gradientTransform": "", + "gradientUnits": "", + "stops": [ + { + "offset": "0.01", + "style": { + "stopColor": "#646566" + } + }, + { + "offset": "0.16", + "style": { + "stopColor": "#909091" + } + }, + { + "offset": "0.49", + "style": { + "stopColor": "#E0E0E0" + } + }, + { + "offset": "1", + "style": { + "stopColor": "#646566" + } + } + ], + "type": "linear", + "x1": "94.2881", + "x2": "123.9873", + "y1": "-23.0383", + "y2": "-23.0383" + } + }, + "name": "path", + "type": "path" + } + ], + "name": "Group_Horizonatal_Short", + "type": "group" + } + ], + "preserveAspectRatio": "none", + "viewBox": "0 0 112.5 29.924" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "DigitalInput" + }, + "position": { + "height": 72, + "width": 94, + "x": 23.8906, + "y": 75.406 + }, + "props": { + "params": { + "showLabel": "True", + "tagPath": "[default]Test_Tags/P_Din" + }, + "path": "Plant PAX/Faceplates/DigitalInput" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "DigitalInputClassic" + }, + "position": { + "height": 43, + "width": 141, + "x": 270.94, + "y": 333.02 + }, + "props": { + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_Din" + }, + "path": "Plant PAX/Faceplates/P_DIn/P_DIn1" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "AnalogInput_2" + }, + "position": { + "height": 44, + "width": 140, + "x": 829.991, + "y": 468.471 + }, + "props": { + "params": { + "appereance": "p\u0026id", + "showLabel": true, + "tagPath": "Test_Tags/P_Ain" + }, + "path": "Plant PAX/Faceplates/P_AIn/P_AIn1" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "AnalogTrend_0" + }, + "position": { + "height": 33, + "width": 55, + "x": 773.991, + "y": 475.487 + }, + "props": { + "params": { + "appereance": "p\u0026id", + "showLabel": true, + "tagPath": "Test_Tags/P_Ain" + }, + "path": "Plant PAX/Faceplates/AnalogTrend" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "OneShotButton" + }, + "position": { + "height": 57.000000000000014, + "rotate": { + "anchor": "186% -114%" + }, + "width": 148, + "x": 140.451, + "y": 108.344 + }, + "propConfig": { + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[default]Test_Tags/Control/HMI_SD_PB" + }, + "type": "tag" + } + } + }, + "props": { + "confirm": { + "enabled": true + }, + "readyState": { + "icon": { + "style": { + "height": "24px", + "width": "2rem" + } + }, + "style": { + "borderStyle": "solid", + "classes": "Popups/General/background", + "color": "#555555" + }, + "text": "PSD" + }, + "style": { + "borderStyle": "solid", + "classes": "Popups/General/background" + }, + "writingState": { + "icon": { + "path": "material/hourglass_empty", + "style": { + "height": "24px", + "width": "2rem" + } + }, + "style": { + "borderStyle": "solid", + "classes": "Popups/General/background", + "color": "#555555" + }, + "text": "Writing..." + } + }, + "type": "ia.input.oneshotbutton" + }, + { + "meta": { + "name": "OneShotButton_1" + }, + "position": { + "height": 57, + "rotate": { + "anchor": "186% -114%" + }, + "width": 163, + "x": 1581, + "y": 49.73 + }, + "propConfig": { + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[default]Test_Tags/Control/Alm_Rst" + }, + "type": "tag" + } + } + }, + "props": { + "confirm": { + "enabled": true + }, + "readyState": { + "icon": { + "style": { + "height": "24px", + "width": "2rem" + } + }, + "style": { + "borderStyle": "solid", + "classes": "Popups/General/background", + "color": "#555555" + }, + "text": "Alarm Reset" + }, + "style": { + "borderStyle": "solid", + "classes": "Popups/General/background", + "color": "#555555" + }, + "writingState": { + "icon": { + "path": "material/hourglass_empty", + "style": { + "height": "24px", + "width": "2rem" + } + }, + "style": { + "borderStyle": "solid", + "classes": "Popups/General/background", + "color": "#555555" + }, + "text": "Writing..." + } + }, + "type": "ia.input.oneshotbutton" + }, + { + "meta": { + "name": "MovingAnalogIndicator_1" + }, + "position": { + "height": 128, + "width": 30, + "x": 279.06, + "y": 412.02 + }, + "propConfig": { + "props.processValue": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "path": "{../AnalogInput.props.params.tagPath}" + }, + "tagPath": "{path}/Val" + }, + "type": "tag" + } + } + }, + "props": { + "desiredHigh": 80, + "desiredLow": 20, + "highAlarm": 800, + "highHighAlarm": null, + "highInterlock": null, + "lowAlarm": 10, + "lowInterlock": null, + "lowLowAlarm": null, + "style": { + "backgroundColor": "#EAF6FF" + } + }, + "type": "ia.display.moving-analog-indicator" + }, + { + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 36, + "width": 153.18000000000006, + "x": 1586.84, + "y": 119.69437499999998 + }, + "propConfig": { + "props.selected": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "direct", + "publishInitial": false, + "tagPath": "[default]Test_Tags/Control/Simulated_Close" + }, + "type": "tag" + } + } + }, + "props": { + "text": "Simulated Closed" + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "Checkbox_0" + }, + "position": { + "height": 36, + "width": 153.18000000000006, + "x": 1587.83, + "y": 156.69437499999998 + }, + "propConfig": { + "props.selected": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[default]Test_Tags/Control/Simulated_Open" + }, + "type": "tag" + } + } + }, + "props": { + "text": "Simulated Open" + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "Checkbox_1" + }, + "position": { + "height": 35.99999999999997, + "width": 134.56000000000017, + "x": 1587.82, + "y": 194.82437499999997 + }, + "propConfig": { + "props.selected": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "direct", + "publishInitial": false, + "tagPath": "[default]Test_Tags/Control/Simulated_FB" + }, + "type": "tag" + } + } + }, + "props": { + "text": "Simulated Fdbk" + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "chiller" + }, + "position": { + "height": 37, + "rotate": { + "anchor": "50% 25%" + }, + "width": 135, + "x": 1290.83, + "y": 512.12 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/custom/perspective_nav_arrow.svg", + "tint": { + "color": "#D5D5D5", + "enabled": true + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label_16" + }, + "position": { + "height": 125, + "width": 164, + "x": 1282, + "y": 158.125 + }, + "props": { + "style": { + "borderBottomLeftRadius": 10, + "borderBottomRightRadius": 10, + "borderStyle": "solid", + "borderTopLeftRadius": 10, + "borderTopRightRadius": 10, + "borderWidth": 1 + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_5" + }, + "position": { + "height": 32, + "width": 76, + "x": 1368, + "y": 240.125 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderBottomLeftRadius": 3, + "borderBottomRightRadius": 3, + "borderColor": "black", + "borderStyle": "solid", + "borderTopLeftRadius": 3, + "borderTopRightRadius": 3, + "borderWidth": "1px", + "color": "#000000", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "text": "68 °F" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_22" + }, + "position": { + "height": 32, + "rotate": { + "anchor": "50% 38%" + }, + "width": 72, + "x": 1370, + "y": 203.125 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "{this.props.text}" + }, + "transforms": [ + { + "code": "\tif value \u003d\u003d \u0027Running\u0027:\n\t\treturn \u0027#FFFFFF\u0027\n\treturn \u0027#FF0000\u0027", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "textAlign": "center" + }, + "text": "Running" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_23" + }, + "position": { + "height": 32, + "width": 82, + "x": 1285, + "y": 202.125 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Status: \"" + }, + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_24" + }, + "position": { + "height": 32, + "width": 82, + "x": 1285, + "y": 241.125 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Temp: \"" + }, + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_17" + }, + "position": { + "height": 23, + "width": 69, + "x": 1328, + "y": 167.125 + }, + "props": { + "style": { + "borderBottomLeftRadius": 10, + "borderBottomRightRadius": 10, + "borderStyle": "none", + "borderTopLeftRadius": 10, + "borderTopRightRadius": 10, + "borderWidth": 1, + "textAlign": "center" + }, + "text": "Chiller" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Icon_0", + "tooltip": { + "enabled": true, + "text": "Chiller Data" + } + }, + "position": { + "height": 30, + "rotate": { + "anchor": "50% 62%" + }, + "width": 30, + "x": 1410, + "y": 163.125 + }, + "props": { + "color": "#555555", + "path": "material/settings" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "chiller_0" + }, + "position": { + "height": 158, + "rotate": { + "anchor": "50% 25%" + }, + "width": 172, + "x": 1282.83, + "y": 299.809 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if({../RadioGroup.props.index} \u003d 2, True, False)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/chiller.png", + "tint": { + "color": "#D5D5D5", + "enabled": true + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label_14" + }, + "position": { + "height": 32, + "width": 107, + "x": 1296, + "y": 514.61 + }, + "props": { + "text": "To Equipment" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Checkbox_2" + }, + "position": { + "height": 36, + "width": 134, + "x": 1589, + "y": 238.234375 + }, + "propConfig": { + "props.selected": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[default]Test_Tags/Control/Simulated_Din" + }, + "type": "tag" + } + } + }, + "props": { + "text": "Simulated Din" + }, + "type": "ia.input.checkbox" + }, + { + "meta": { + "name": "chiller_1" + }, + "position": { + "height": 37, + "rotate": { + "anchor": "50% 25%" + }, + "width": 140, + "x": 47, + "y": 523.61 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/custom/perspective_nav_arrow.svg", + "tint": { + "color": "#D5D5D5", + "enabled": true + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label_18" + }, + "position": { + "height": 32, + "width": 109.99999999999999, + "x": 54.17, + "y": 526.1 + }, + "props": { + "text": "Supply Water" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Desc" + }, + "position": { + "basis": "10px", + "grow": 1, + "shrink": 0 + }, + "props": { + "style": { + "classes": "Popups/label", + "color": "#2B2B2B", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Prime Controls Process Objects Demo" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Header" + }, + "position": { + "basis": 650, + "grow": 1, + "shrink": 0 + }, + "props": { + "alignItems": "center", + "style": { + "borderBottomStyle": "ridge", + "classes": "Popups/General/core", + "fontSize": "16px", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "height": 41, + "rotate": { + "anchor": "38% 50%" + }, + "width": 1749, + "x": -0.16, + "y": -1.27 + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "P_VSD_PumpR" + }, + "position": { + "height": 96, + "width": 142, + "x": 575.891, + "y": 504.11 + }, + "props": { + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_VSD" + }, + "path": "Plant PAX/Faceplates/P_VSD/P_VSD_PumpR" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "AnalogInput_3" + }, + "position": { + "height": 44, + "width": 140, + "x": 827.135, + "y": 159.945 + }, + "props": { + "params": { + "appereance": "p\u0026id", + "showLabel": true, + "tagPath": "Test_Tags/P_Ain" + }, + "path": "Plant PAX/Faceplates/P_AIn/P_AIn1" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "root" + }, + "position": { + "x": -101, + "y": 121.578125 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput/resource.json new file mode 100644 index 0000000..3bae22d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "379df44378dcb9d69bc1e1d29c45e44967ab3a0ace9f858cd3b3a2eb1d68a1eb", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..4e4b1bf9c41b0765c30b30de54d71d4a358b39f1 GIT binary patch literal 1377 zcmV-n1)lneP)P001Wl0ssI2b^CPb000FjNklZ0mV zu7c<4*ox>X70@V=;ZlL+IF@Cbb75{iU)bAz916}etB=@XxxiQGIF8Hb^KTDdzIbz5 z$md_b*re&m%Qt6)vpE;b<;&%qO?Ar|O!)1C#)VY5R20_cAj7BXxTy|8)bZ2h@4oNZ z`tSX#*9U*3<88RI_sl~(+47r5-XTW-%fh}wsdV;gV`erGnwx$4mMdpos5E}|;-Et$ z_Ar08;(}THl=`>Zl0nOa|L8*w_P}s3uFYtv5wl*=Z3u3a`F%=p@APzcSnfD)yT^<} z-~aa^HdQWEkT1Y<_O*Uc8d`buS9+e3PaM7a=gu9=@$t@pc>IVfHs^xH#bPcU@$J0L z77FkwclP1*>^yVy?^PwKbE;q*N+LM@Mx!oxxzx>-Ac#c36PV=fg7PR_Dl9 zi8eMi5UtT@W@l#^hDixX3qT{8Ool=si^ZZ)DDL0C-<*pOAxuXK zk>DpMC$Kpj4nx#e5)ssK5m9q1bBRw}L=^Ug z^noaHXz=SYlz1ofd|c^rMe<#z3tW?vlWw;s5sxj>OUXn$Ow-XA6RQwJ=the5 z#~2gAyNQ;bnH(Ag!nP8hp7JJ6Fz zrXuvB*XyIhON&9j*S`>1uAXDntdmjg-LTIk>FtsBiLPJ2X*Q2hvY~}VuUtl%$JIal zc+F%Pmkv-1ktLl%(j~er?vwR(|K1~($YjzwuH)llq;Ge4>=msPw>UCh9cZr3Oc)r(I@?ok^{rvoR-v!651$cL1ruRzLm_ zOFA5mCR}{YQ?|6UBo>R!W;0FG9rZns;l zR%6#zt95#M8czY{+wFEdbf~$pu`!S$xFr_>ISSzX{CsnB6Dk6M020tWQG0uPmp@4W|Hc0RwO}j%d2={oyt~hyJwpROxthPS-@wIJ j3j^XC0nB|CwrSNb^Xy|2zSqcl= zt*!M=PO=6AYcyU?7)MZ$*J2SRi3AFjBrHitdHRP(mv{yLak8pZ(#p%l4w-JMM> zE!_hKmX|2cV`T+nOsKG8x6FRrge-WzetO;7)H7m6kP(ciAW|aR9P{@}IbW0zhbZB# znY-7M`p1oR>a4;SZ;2>k$T81zm`Z~0aav-Ex)rL%dtG@+iO;kX@Gemh_qMk@KG+Mw z!AJc`E+9&7)2hyTDwlhq_ul;ypTF)H36kWrjcTgvYO1TPt1K93i}Q!)Jgmc*pHb4- zsCkf4U|HK1C_$&idEO{_K_WW~Y1eL)Jg>}om@{Nu6<`ZMGC61!=}l#BO`m0`v8b%w zB#B~uPI}+8+dZRAzVirHjcuCZCOs%%eBATTa^5JFiraEiGEEE1J8n5)SP?|1=yT?$ zCacRED%6>`GD;z}9qR1idEeelhx$nqRDG(qt-Q_npQ1!gbH?r5J-L^mzcCe{hOiH% znZBBm=J!flbDE-p{@JCf)SI>MR<_J9)3eKA*7T}YU9bE1QG!s4J)2`g1~(=|ZdmNu z+u3rtcDHwIX1$|tWbKM-J?`q~!Csxw)Lc{1HaO|pSTu}JLDz3A&Q93YKsmM3l_faS~)I2{od5j)&jS5Z|}URpM>?)4Ss%`?mb!+fi#Qj#hQrErHxuyqCb zm&ymiX)unE5Y}uyyd(kx9ntX-xb^jogal_|B6hjtp~9iP|HeA$?IetYVZ03ug3U%O z7Gkwt0MpY{0dzVy2c8AHo!afk&CUX|5+84hiP1+#8&oR&g%ch9gOjU&4fCO>Xf!Ua xKQeMKDr(@e!nCVYUt(kVo*tytqOPvX$#1002ovPDHLkV1mW%oL2w< literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInputClassic/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInputClassic/view.json new file mode 100644 index 0000000..b622bc5 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInputClassic/view.json @@ -0,0 +1,188 @@ +{ + "custom": {}, + "params": { + "tagPath": "Test_Tags/P_Ain" + }, + "propConfig": { + "params.appearance": { + "paramDirection": "input", + "persistent": true + }, + "params.highPerformance": { + "paramDirection": "input", + "persistent": true + }, + "params.rotate": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.valveOrientation": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 55, + "width": 131 + }, + "dropConfig": { + "udts": [ + { + "action": "path", + "param": "tagPath", + "type": "ROL_DataTypes/DigitalInput" + } + ] + } + }, + "root": { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": true, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/AnalogInput/Popup", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "Label_3" + }, + "position": { + "basis": "10px", + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Tag\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#2B2B2B", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": true, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/AnalogInput/Popup", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "Label_4" + }, + "position": { + "basis": "25px" + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Val_Fault\") \u003e 0 || tag({view.params.tagPath} + \"/Sts_RdyReset\") \u003d True, \"Red\", \"#FFFFFF00\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "numberformat(tag({view.params.tagPath}+ \"/Val\"), \"#0.00\") + \" \"+ tag({view.params.tagPath} + \"/Cfg_EU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomLeftRadius": 3, + "borderBottomRightRadius": 3, + "borderColor": "#808080", + "borderStyle": "solid", + "borderTopLeftRadius": 3, + "borderTopRightRadius": 3, + "borderWidth": "1px", + "color": "#000000", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root", + "tooltip": { + "enabled": true + } + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput_OLD/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput_OLD/resource.json new file mode 100644 index 0000000..c090b04 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput_OLD/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "cc258cc93a90e29ca56aaaed09861dd9debcf190310e553f409beb141ca9c430", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput_OLD/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput_OLD/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..57cafe7e21c2b296c836082b39eb63df10ab41ae GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^HbBh7!2~2XKJn}TQtF;Ajv*Cs$v;e47@2n+2w+&; uw@h53)MW306^mc8y2<+L8@$S>Vq_>%v%UFr>WXZj76wmOKbLh*2~7Z4iW`Lh literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput_OLD/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput_OLD/view.json new file mode 100644 index 0000000..246966f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogInput_OLD/view.json @@ -0,0 +1,77 @@ +{ + "custom": {}, + "params": { + "appereance": "p\u0026id", + "showLabel": true, + "tagPath": "Test_Tags/P_Ain" + }, + "propConfig": { + "params.appearance": { + "paramDirection": "input", + "persistent": true + }, + "params.appereance": { + "paramDirection": "input", + "persistent": true + }, + "params.highPerformance": { + "paramDirection": "input", + "persistent": true + }, + "params.rotate": { + "paramDirection": "input", + "persistent": true + }, + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.valveOrientation": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 44, + "width": 140 + }, + "dropConfig": { + "udts": [ + { + "action": "path", + "param": "tagPath", + "type": "Plant PAX/P_Ain" + } + ] + } + }, + "root": { + "children": [ + { + "meta": { + "name": "CoordinateContainer" + }, + "position": { + "basis": "200px" + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "root", + "tooltip": { + "enabled": true, + "text": "P_AIn - Flow Meter" + } + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogTrend/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogTrend/resource.json new file mode 100644 index 0000000..3115619 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogTrend/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "8902fd39bf195738953959d136d2b87ffd26d3793e6e74f329e345c27d0426e0", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogTrend/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogTrend/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..e2d3fba4962662887b0b29f0c56156defb7bef38 GIT binary patch literal 83 zcmeAS@N?(olHy`uVBq!ia0vp^+Ca?C!2~4b0+nw8DJf4E$B>G+|6-X&aN gU988@*jUcUuxV!z%K;@#VW27oPgg&ebxsLQ0M%j?xc~qF literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogTrend/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogTrend/view.json new file mode 100644 index 0000000..e8f2ca0 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/AnalogTrend/view.json @@ -0,0 +1,208 @@ +{ + "custom": {}, + "params": { + "tagPath": "[DH1]Block 1/Process/Sensor/PT_11" + }, + "propConfig": { + "params.appearance": { + "paramDirection": "input", + "persistent": true + }, + "params.appereance": { + "paramDirection": "input", + "persistent": true + }, + "params.highPerformance": { + "paramDirection": "input", + "persistent": true + }, + "params.rotate": { + "paramDirection": "input", + "persistent": true + }, + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.valveOrientation": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 34, + "width": 106 + }, + "dropConfig": { + "udts": [ + { + "action": "path", + "param": "tagPath", + "type": "ROL_DataTypes/DigitalInput" + } + ] + } + }, + "root": { + "children": [ + { + "custom": { + "historyTags": [ + { + "aggregate": "Minimum", + "alias": "Selected Tag" + } + ] + }, + "meta": { + "name": "Sparkline_1" + }, + "position": { + "basis": "33px", + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "custom.historyTags[0].path": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "transforms": [ + { + "expression": "{value} + \"/Val\"", + "type": "expression" + } + ], + "type": "property" + } + }, + "props.points": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "30", + "mostRecentUnits": "MIN" + }, + "enableValueCache": true, + "ignoreBadQuality": false, + "polling": { + "enabled": true, + "rate": "5" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "delay": "1", + "delayUnits": "MIN", + "type": "INTERVAL" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "type": "tag-history" + } + }, + "props.range.high": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_PVEUMax" + }, + "type": "tag" + } + }, + "props.range.low": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_PVEUMin" + }, + "type": "tag" + } + } + }, + "props": { + "color": "#2B2B2B", + "desired": { + "fill": { + "color": "#FFFFFF" + }, + "stroke": { + "color": "#000000" + } + }, + "marker": { + "first": { + "shape": "triangle", + "size": 0, + "stroke": { + "color": "#080000", + "width": 0 + } + }, + "high": { + "size": 0 + }, + "last": { + "fill": { + "color": "#00000000", + "opacity": 0 + }, + "shape": "triangle", + "size": 0, + "stroke": { + "opacity": 0, + "width": 0 + } + }, + "low": { + "size": 0 + } + }, + "range": {}, + "style": { + "backgroundColor": "#D5D5D500" + }, + "width": ".9" + }, + "type": "ia.display.sparkline" + } + ], + "meta": { + "name": "root", + "tooltip": { + "enabled": true + } + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInput/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInput/resource.json new file mode 100644 index 0000000..34cc4a0 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInput/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "dd1ffe40b325e1a1df99c1e206984190865e8dec37d4b465076ab8e38b71001e", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInput/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInput/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..02d728572d3a582d2e5c63ca069d585d3be34151 GIT binary patch literal 1105 zcmV-X1g`suP)_iZBB8J-p4Gkd) zL7JKy7nRz;0Hs(>B7q6LAZkgFK(d#!d)D9CO<*UKy5XVU`AxFtvcJ#%F6SWO{}n2o z*h@Umu^^7)`H}^$u)t}@rMrsK%fk|p3nIMM8J3FkG8X8^6nBX`do35Jp49b`MxUz4{SaMytPE+nzc(!p{LDk3oOX#*>7)m!0?IB=5)DR z8m>AX&hj#WI0gN@#m>Yx>VILGCr}ml2KcR=T+XwH?7vZ65pK9debq* zuTIt8xCO&Itydo{ZOQWHy~d{aTM0^A2Jd;Gr`Z~yUNNmdh~si1A#1U~#Rf}OB!9-9 zRDWI-{e#ahhQIo*88)^we(it0F3XuawdNOP@HmbTvOFE`cRz+kg*0Mu=M1o`^9}V? z*DY<98!eCKQnD;gIB!=}UXK6u&#>1%naUE9{n6gLye<-*`BbGKXc{4=^_2xzuieqt zYj+K=Y>2P`8&o`Oz#?r(b%u!0m>3@DzaqUnL8%!0Lx}loCYeaQTu3AqQ`wwy5S9C< zc+PnB4uYA&SaUz<=4qtOC%xvN!bRhhrvDG^hbPdBgUzuyQKHGDB8n;E1P)e9Unpun zJa7jc1g_U!uSH|gj$bpUdduTc7?Fe1!J{2VDaMP?5Hb!Ljb3U7p8}Hgj z8<`%MP!H-J>xK`7+^DW}@t`5$9ov`<*^$ww1E!e4ZD732@t)%w=?yGlwUD}akPuN2 zPyKL;8DO9FE;RaVbUVZk^Pt+WdueIuNY4>y6UM`o`rX^;$MvJ?p=#)A z-8`jJX5ur(yGG~~=!M;W_cE1tw(o4&yvf8QJ=*)?opGKin>U-7HQ7x2_0EF@NmD{6YVjz=b zR>t+!+oLjKj3vrsKC`?qW3^9hM1D(>1c^{eF-D~bQJKmhi9}?XNLWb}_F-A3&?Bs@ zD%qD&2{F(TF&{UyJTW`nD<3^xe;DpgaUq%FC}VK0MBr5ZoXdh3{6#u@DKG{}h!B-c zp9^Yq>O3tg!GCcxF-C9-Tc3WdGkdP2&Y$cL8M^@kZ#{?+_rRcOc-+{j?J=1hHp}y- z*1#{0+ga1U=(AY*wc7Ug&gouVYoB!yQ7Wn;-As%G1WYbd>j&Q{$@`Ytfht9X3gOS(X{cbfhKh(Yyxuk_?=NnUj(RjdZoeIXcT)q7cMybnT znA<+1G&8CnIn2q7D2}+980-UnDJCOL4Ug>$%ijWly`$8Q*ZQ(&Vrw&~ZEpF=6|8L! zXTRrI;ozyE?Sir6<*DIue=Ou|X*WZ1j?rd&Fu@pSeD>-`wqjyY;l|*L%d;b=ZEV;) z8Qe`!N%Rk3NDwYACmdeP%SGc(xbs#^O4_1p~cL-;ad00000NkvXXu0mjf DL;-9D literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInputClassic/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInputClassic/view.json new file mode 100644 index 0000000..2c88c7a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalInputClassic/view.json @@ -0,0 +1,192 @@ +{ + "custom": {}, + "params": { + "showLabel": "True", + "tagPath": "[default]Test_Tags/P_Din" + }, + "propConfig": { + "params.Off_label": { + "paramDirection": "input", + "persistent": true + }, + "params.On_label": { + "paramDirection": "input", + "persistent": true + }, + "params.appearance": { + "paramDirection": "input", + "persistent": true + }, + "params.highPerformance": { + "paramDirection": "input", + "persistent": true + }, + "params.rotate": { + "paramDirection": "input", + "persistent": true + }, + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.valveOrientation": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 55, + "width": 101 + }, + "dropConfig": { + "udts": [ + { + "action": "path", + "param": "tagPath", + "type": "ROL_DataTypes/DigitalInput" + } + ] + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Label_3" + }, + "position": { + "basis": "10px", + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Tag\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#2B2B2B", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_4", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "basis": "25px" + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/TgtDisagree/Alarm\") \u003d True, \"Red\", \"#FFFFFF00\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Sts\"), tag({view.params.tagPath}+ \"/Cfg_1stText\"), tag({view.params.tagPath}+ \"/Cfg_0stText\"))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomLeftRadius": 3, + "borderBottomRightRadius": 3, + "borderColor": "#808080", + "borderStyle": "solid", + "borderTopLeftRadius": 3, + "borderTopRightRadius": 3, + "borderWidth": "1px", + "color": "#000000", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/DigitalInput/Popup", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": { + "enabled": true + } + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalOutput/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalOutput/resource.json new file mode 100644 index 0000000..9992e34 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalOutput/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "d66f4f66a2effd990eb64749f75010eed707696f71306731bf5df774494351b6", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalOutput/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/DigitalOutput/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..576b4f13efb082f9d8fe9964348f8edcfadd0f0a GIT binary patch literal 83 zcmeAS@N?(olHy`uVBq!ia0vp^{2Ql2i3Ar*1SKU}#I9K;WByM-n< f1zw%eU~-kAf5&9s)Pl~Zj zV=TgRM^SKT*2dvn;zSe?5vmv;)o?P79uH1XD<35Ypes*;C?^ky9>;NEUWo8V?oDrq zmp96Y2(m0nNcnOyWzB)AsQ&Fgap2nuomsd9f&o&@L~C2$CqBD5EWWSQMp1DqsnjXF~JC zk3YHgWIG!)_b+FaV|3toXD}F70zB_~m-pwdonubMq@_8Fad0Zgv*TdEv+kZ9w}(Ww z_IgO)=kVD3f4*BWXx1028aI4_-Ax}Zw)MgN>G1Q8f7@mqnsILW*XR2z<3V29-`h=2 zWqqMvmG^s(ZH5&wilCAj={lpfiZJclVcNe zp=SN_$)Q(eYO`$au)n^sbt}ZYGcPY)`K`2~Y{a$YbIfQpV-UVjmA+qEDKApvsisV= z##NsAXLZINOSdUGm3Jep#);Xn{T8Hm0&X-gW1qt3v#=SI{G1CkI@-OhF_yGwGb z_adUHr>V~skwO>-k6kTBPUP)9+DG|?4FeN! z;jwP@aBC8Gw$#?Ul1XfBw9?ySuWo;&iz- zH#a|h`XodRK%n)BT4E5TFY-zzAfJ z*V7Y9nr%;kVhL!kudmO^$$9eR$-uzC^78V|&Q35Gq$9D+@ArE=p4r*i#>Pg_Dk&)$ z86y{(-1rXU&6vtAY^n0zy3{6?&S9 ziHY*^a`x}=U@^7R)6+FIH7TjUl~Cl6x!rCzI}2A$1xi2F)z!(VkV&joD*~8hV3Je` zhVocakpfcw_U+qrRA4lij?^V8I6DwgRQ2Rk;7X7oAySD+e=Q`v;o)JI%atf#4Ec0u zXb43yQIHHtsE|oszkZF9%hK{75i;h53m3Apv*WuH3e?`--t*_rYqeUI!7HbvVlWt* zo10l$6+{Ky0#Z0?B>Djs=Qqd&DwPT%N*ihP5K>aXe%y(rRY6Ctt*za>c@s6Iva*sU zY0JXG0ulin4t1EN)k8>01&tYXI%!lWR>{iB+S=N>bLY;%!2yfC4oDyd(Kn%fv9x*! zNvOcE5TN)`kCR3PQQ6qoxP19C#uXJ6Xy-_ToCIe0B4L0HORI-)mQ>*B2s#oWO&1jv zVSsA)-#rkhT)A?EdX8JSZc*qW`YaX;2JqbPrINYZg38saSE<2nXlQ`{!mi*%O&a>y z@1>G?FoVjqYuAtxF?Ki{co&n&1f$X#1d&FgVQKXcQc}r0#UX+&UAjbFH)01B^y0;f zDEhPpzk~1_g?$?pKI6ns^Z5CLCY~+;;1>!0Rk90yrs(y0_RUnjsvJtu_9t;R1~H1n z**MUBQkKK7Z4$l*q&#Jl!2f?*CqAyBL^RTdL>*@VGKtM*OGkwOCqNv*W0Y-Y3)~Q1 flAoWyw6ydWan}tHuKL>@00000NkvXXu0mjfvNV?J literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/Motor/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/Motor/view.json new file mode 100644 index 0000000..1e8d98b --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/Motor/view.json @@ -0,0 +1,273 @@ +{ + "custom": {}, + "params": { + "appearance": "p\u0026id", + "highPerformance": true, + "rotate": false, + "showLabel": true, + "tagPath": "[default]Test_Tags/P_Motor" + }, + "propConfig": { + "params.appearance": { + "paramDirection": "input", + "persistent": true + }, + "params.highPerformance": { + "paramDirection": "input", + "persistent": true + }, + "params.rotate": { + "paramDirection": "input", + "persistent": true + }, + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.valveOrientation": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 104, + "width": 113 + }, + "dropConfig": { + "udts": [ + { + "action": "path", + "param": "tagPath", + "type": "Plant PAX/P_Motor" + } + ] + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Motor" + }, + "position": { + "basis": "100px", + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "props.appearance": { + "binding": { + "config": { + "path": "view.params.appearance" + }, + "type": "property" + } + }, + "props.label.location": { + "binding": { + "config": { + "expression": "if({view.params.showLabel}, \"top\", \"hidden\")" + }, + "type": "expr" + } + }, + "props.label.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\")" + }, + "type": "expr" + } + }, + "props.orientation": { + "binding": { + "config": { + "path": "view.params.rotate" + }, + "transforms": [ + { + "fallback": "top", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "right" + }, + { + "input": true, + "output": "top" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + }, + "props.state": { + "binding": { + "config": { + "path": "view.params.highPerformance" + }, + "transforms": [ + { + "expression": "if({value},tag({view.params.tagPath}+\"/Val_Fdbk\"),-1)", + "type": "expression" + }, + { + "fallback": "default", + "inputType": "scalar", + "mappings": [ + { + "input": 0, + "output": "stopped" + }, + { + "input": 1, + "output": "running" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + }, + "props.style.classes": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "TagPath": "{view.params.tagPath}" + }, + "tagPath": "{TagPath}/Val_Fault" + }, + "transforms": [ + { + "fallback": "States/Motor/disable", + "inputType": "scalar", + "mappings": [ + { + "input": 0, + "output": "States/Motor/stopped" + }, + { + "input": 1, + "output": "States/Motor/estop" + }, + { + "input": 2, + "output": "States/Motor/faulted" + }, + { + "input": 3, + "output": "States/Motor/forward" + }, + { + "input": 4, + "output": "States/Motor/reverse" + }, + { + "input": 5, + "output": "States/Motor/starting" + }, + { + "input": 6, + "output": "States/Motor/starting" + }, + { + "input": 7, + "output": "States/Motor/forward" + }, + { + "input": 8, + "output": "States/Motor/reverse" + }, + { + "input": 9, + "output": "States/Motor/starting" + }, + { + "input": 10, + "output": "States/Motor/starting" + }, + { + "input": 17, + "output": "States/Motor/interlock" + }, + { + "input": 16, + "output": "States/Motor/interlock" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "label": {}, + "style": {}, + "value": { + "location": "hidden" + } + }, + "type": "ia.symbol.motor" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/Motor/Popup", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": { + "enabled": true + } + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_AIn/P_AIn1/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_AIn/P_AIn1/resource.json new file mode 100644 index 0000000..7eb3d24 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_AIn/P_AIn1/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "3696d724799883f7fd73871a40bf4c60f1e845f6bf96787a64e58e6ab25f0037", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_AIn/P_AIn1/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_AIn/P_AIn1/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..e7be07caae0c0316d18f3efcaa6fea2f8684c826 GIT binary patch literal 694 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 JPDHLkV1n}>83X_T literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/P_DIn1CircleWLabel/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/P_DIn1CircleWLabel/view.json new file mode 100644 index 0000000..7735664 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DIn/P_DIn1CircleWLabel/view.json @@ -0,0 +1,370 @@ +{ + "custom": {}, + "params": { + "frameColor": "#91919161", + "showFrame": true, + "showLabel": true, + "tagPath": "[DH1]Block 1/Process/Discrete/AAH_15" + }, + "propConfig": { + "params.frameColor": { + "paramDirection": "input", + "persistent": true + }, + "params.showFrame": { + "paramDirection": "input", + "persistent": true + }, + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 42, + "width": 140 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Frame" + }, + "position": { + "height": 40, + "width": 138, + "x": 1, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showFrame" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "view.params.frameColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AlarmFrame" + }, + "position": { + "height": 38, + "width": 124, + "x": 8, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 2 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 97, + "x": 43, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "color": "#2B2B2B", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "msi_Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 5, + "y": 21 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 29, + "y": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_MaintByp\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "msi_TgtDisagree" + }, + "position": { + "height": 21, + "width": 21, + "x": 15, + "y": 10 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Sts_TgtDisagree" + }, + "transforms": [ + { + "fallback": "/system/images/PlantPax/Pax V4.10.05/Sts_NotOK.png", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "/system/images/PlantPax/Pax V4.10.05/Sts_Good.png" + }, + { + "input": true, + "output": "/system/images/PlantPax/Pax V4.10.05/Sts_NotOK.png" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/P_DIn/P_DIn", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/Archive/P_DOut1_20220524_2107/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/Archive/P_DOut1_20220524_2107/resource.json new file mode 100644 index 0000000..b71c1a6 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/Archive/P_DOut1_20220524_2107/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "de7c91041d87f7872c3d4a233b0cc6ba296728c2cd9c62411a36705df04cf90f", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/Archive/P_DOut1_20220524_2107/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/Archive/P_DOut1_20220524_2107/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..ade2bdc58a0615556fafa16d67dfb938968e67d2 GIT binary patch literal 1523 zcmVBh!CPkP?-p7*@( z^E=P;Udk978;iwaQmK^1VpUgHGnvfM(NU=J`~BfrDhA-Sx3{lcxiTXoW5tRUsi~<2 z1qGo{h$Kn)o!ER41*xQ-ic|5Ac7v3!)A97(0eQjFa$}JT%$IRF9d}+ zV*GQ^*H9Szix7dNdO|V7U?!6ZMNvRC8jWtZJL$lIKoG*K;+5??dZwy^eU??$jXKCk zIPAu2%ZpjXB^S<}7ySMx8jD7$k3hmJ)D_(DIGr9J6p|Qi2Aw<9H-0JDnUf0~rkJTA z8cK`#3L_MZ9Sw($oc9qi>D5yg`6{R(#w@I3$JBaI4*L9oi&X$Vvd%r!c z(4j<_NES9DexWidNaa%e_pfb|pg41Lc`2v0FG4~rgKXC64#Qy8nZiCN5c}cj194ex zbH`mF_ga${Zuym$WKV`4iK>dq8*s-Mo$1MO>^bv4tvGX2`6bTn=gdD|V0Jzo0Oo!t z%JqcBOWQkdH9{Mbj5YHs?+iLoxl|s=n~ zLE(YJVx^WE-tV8>^As)o%Di|3W_m@Pt~@@k%}cGrugc|hd#K&xxyWeHF;1=9@ezq= z$Q`2hv}q_pQhPyMQ)MP15ySoaat=qy=PP-<1dU&(5sKPHLM4wY=W?M&!G!{^O(fC? z>Zs1?8kL~FO;`_Q6`v2cYC*lGUNEt%DH`2Fn?&MuIAAY`NBi%YshunuMQk?p`t|xH zOLXhj{jp|E;+B~SrpwIKuFC9LwOYFxZmCM`s?|NT>F5SM@5FC2U%WD@pQ&3`mTulW zb!jPNQkXtUPmMVi>$6x?%a+;1Vzbj}K~amzl(3mG499VgYsBZVc^tzyoQE)z-9G%x zJu>dKIjt6W>ZPBKIfsX!{iGh=z`#|v8{N9~m*dCZnE45gtClYx7K>4*6N3{Q2e&p0!R zpcd;;uR{6W=F2roeJo_-mT+!-oJ-6b95_`70K>t>XF)iJpR9Ss)Ij=EiCr^jtW`zEKI~~1_ Z`A^v1-~T?~ihlqA002ovPDHLkV1irw_%8qe literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/Archive/P_DOut1_20220524_2107/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/Archive/P_DOut1_20220524_2107/view.json new file mode 100644 index 0000000..eefc2e6 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/Archive/P_DOut1_20220524_2107/view.json @@ -0,0 +1,342 @@ +{ + "custom": {}, + "params": { + "showLabel": "True", + "tagPath": "[default]Test_Tags/P_DOut" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 69, + "width": 182 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "AlarmFrame" + }, + "position": { + "height": "80%", + "width": "92%", + "x": "4%", + "y": "10%" + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 5 + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label_3" + }, + "position": { + "basis": "10px", + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#2B2B2B", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_4", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "basis": "25px" + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_TgtDisagree\") \u003d True, \"#000000\", \"#E0E0E0\")" + }, + "type": "expr" + } + }, + "props.style.color": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_TgtDisagree\") \u003d True, \"#FFFFFF\", \"#2A4191\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Sts_Out\"), upper(tag({view.params.tagPath}+ \"/Cfg_1StText\")), upper(tag({view.params.tagPath}+ \"/Cfg_0StText\")))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomLeftRadius": 3, + "borderBottomRightRadius": 3, + "borderColor": "#808080", + "borderStyle": "solid", + "borderTopLeftRadius": 3, + "borderTopRightRadius": 3, + "borderWidth": "1px", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/DigitalInput/Popup", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": { + "enabled": true + } + }, + "position": { + "height": "76%", + "width": "76%", + "x": "12%", + "y": "12%" + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "paddingBottom": 5, + "paddingLeft": 5, + "paddingRight": 5, + "paddingTop": 5 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": "2.5%", + "y": "6%" + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "x": "90%", + "y": "1%" + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady_0" + }, + "position": { + "height": 16, + "width": 16, + "x": "90%0", + "y": "1%0" + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\") \u003d 1, true, true)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "root" + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/P_DOut1/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/P_DOut1/resource.json new file mode 100644 index 0000000..4fb5b11 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/P_DOut1/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "bfcb354f0497126f9285e344296fc2b424c12b11b529bd3fc48ac9e81ea8cdfc", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/P_DOut1/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_DOut/P_DOut1/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..78d554131037ba25c3ebb6538d2c5f8ff2cb0544 GIT binary patch literal 516 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 N002ovPDHLkV1jkz{;U81 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineR/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineR/view.json new file mode 100644 index 0000000..19575ce --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineR/view.json @@ -0,0 +1,487 @@ +{ + "custom": {}, + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_Motor" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 69, + "width": 179 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 47, + "y": 31 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmFrame" + }, + "position": { + "height": 60, + "width": 170, + "x": 4, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 3 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 126, + "x": 10, + "y": 51 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "x": 103, + "y": 31 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 84, + "y": 31 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_MaintByp\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdSrcExceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 67, + "y": 31 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Line1" + }, + "position": { + "height": 2, + "width": 60, + "y": 19 + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "OutsideEllipse" + }, + "position": { + "height": 40, + "width": 40, + "x": 10 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "MotorGroup" + }, + "position": { + "height": 40, + "rotate": { + "angle": 90 + }, + "width": 60, + "x": 120, + "y": 14.5 + }, + "propConfig": { + "custom.motorColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_Sts \u003d value\n\t\n\tcolors \u003d {\n\t0: \"#93C2E4\",\n\t1: \"#808080\",\n\t2: \"#F0F0F0\",\n\t3: \"#F0F0F0\",\n\t4: \"#F0F0F0\",\n\t5: \"#93C2E4\",\n\t6: \"#93C2E4\",\n\t7: \"#93C2E4\",\n\t8: \"#93C2E4\",\n\t9: \"#93C2E4\",\n\t10: \"#93C2E4\",\n\t14: \"#93C2E4\"\n\t}\n\t\n\ttry:\n\t\tret_value \u003d colors[Val_Sts]\n\texcept:\n\t\tret_value \u003d \"#FFC0FF\"\n\t\n\t\n\treturn ret_value\n", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Status" + }, + "position": { + "height": 14, + "width": 112, + "x": 20, + "y": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_Sts \u003d value\n\t\n\tstates \u003d {\n\t0: \"Unknown\",\n\t1: \"Stopped\",\n\t2: \"Running\",\n\t5: \"Starting\",\n\t8: \"Jogging\",\n\t10: \"Stopping\",\n\t14: \"Horn\"\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[Val_Sts]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "right" + }, + "textStyle": { + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/P_Motor/P_Motor", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineU/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineU/resource.json new file mode 100644 index 0000000..a29688f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineU/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "491ebfcca8de458a64000e2922e0fc272549843076b97046cde256fb8a000c9e", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineU/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_InlineU/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..5bf4e569723527f6c762923756d5c8c39fa74bae GIT binary patch literal 1680 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorR/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorR/view.json new file mode 100644 index 0000000..ae9b9cc --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorR/view.json @@ -0,0 +1,593 @@ +{ + "custom": {}, + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_Motor" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 72, + "width": 140 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "AlarmFrame" + }, + "position": { + "height": 67, + "width": 124, + "x": 8, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 3 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 140, + "y": 56 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "x": 104, + "y": 21 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 104, + "y": 41 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_MaintByp\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Line2" + }, + "position": { + "height": 9, + "width": 3, + "x": 56, + "y": 11 + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Line1" + }, + "position": { + "height": 1, + "width": 7, + "x": 51, + "y": 14 + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Base" + }, + "position": { + "height": 9, + "width": 38, + "x": 8, + "y": 26 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": 20, + "borderTopRightRadius": 20, + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Middle" + }, + "position": { + "height": 30, + "width": 40, + "x": 7 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "RightWedge" + }, + "position": { + "height": 30, + "width": 9, + "x": 45 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderBottomRightRadius": 2000, + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopRightRadius": 2000, + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftWedge" + }, + "position": { + "height": 30, + "rotate": { + "angle": 180 + }, + "width": 9, + "x": 0.0023999999999999577, + "y": 0.0024 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderBottomRightRadius": 2000, + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopRightRadius": 2000, + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "MotorGroup" + }, + "position": { + "height": 35, + "width": 59, + "x": 41, + "y": 21 + }, + "propConfig": { + "custom.motorColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_Sts \u003d value\n\t\n\tcolors \u003d {\n\t0: \"#93C2E4\",\n\t1: \"#808080\",\n\t2: \"#F0F0F0\",\n\t3: \"#F0F0F0\",\n\t4: \"#F0F0F0\",\n\t5: \"#93C2E4\",\n\t6: \"#93C2E4\",\n\t7: \"#93C2E4\",\n\t8: \"#93C2E4\",\n\t9: \"#93C2E4\",\n\t10: \"#93C2E4\",\n\t14: \"#93C2E4\"\n\t}\n\t\n\ttry:\n\t\tret_value \u003d colors[Val_Sts]\n\texcept:\n\t\tret_value \u003d \"#FFC0FF\"\n\t\n\t\n\treturn ret_value\n", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Status" + }, + "position": { + "height": 14, + "width": 140, + "y": 7 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_Sts \u003d value\n\t\n\tstates \u003d {\n\t0: \"Unknown\",\n\t1: \"Stopped\",\n\t2: \"Running\",\n\t5: \"Starting\",\n\t8: \"Jogging\",\n\t10: \"Stopping\",\n\t14: \"Horn\"\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[Val_Sts]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 24, + "y": 18 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdSrcExceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 24, + "y": 41 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/P_Motor/P_Motor", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorU/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorU/resource.json new file mode 100644 index 0000000..6ad4c8f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorU/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "ba7fcdb3d406c1f1b17917598b997ef77b63eab9741d3e94c1eaf9a602b4347e", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorU/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_MotorU/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..92814c091d9a6d2982d7b1b90754aa9cff495f0b GIT binary patch literal 1541 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpL/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpL/view.json new file mode 100644 index 0000000..a5fa5dc --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpL/view.json @@ -0,0 +1,553 @@ +{ + "custom": {}, + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_Motor" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 75, + "width": 140 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "AlarmFrame" + }, + "position": { + "height": 67, + "width": 124, + "x": 8, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 3 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 140, + "y": 59 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "x": 94, + "y": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 94, + "y": 44 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_MaintByp\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Polygon" + }, + "position": { + "height": 11, + "width": 25 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Base" + }, + "position": { + "height": 9, + "width": 35, + "x": 7, + "y": 29 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": 20, + "borderTopRightRadius": 20, + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "OutsideEllipse" + }, + "position": { + "height": 34, + "width": 34, + "x": 7 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "InsideEllipse" + }, + "position": { + "height": 14, + "width": 14, + "x": 17, + "y": 10 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "MotorGroup" + }, + "position": { + "height": 38, + "width": 42, + "x": 47, + "y": 21 + }, + "propConfig": { + "custom.motorColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_Sts \u003d value\n\t\n\tcolors \u003d {\n\t0: \"#93C2E4\",\n\t1: \"#808080\",\n\t2: \"#F0F0F0\",\n\t3: \"#F0F0F0\",\n\t4: \"#F0F0F0\",\n\t5: \"#93C2E4\",\n\t6: \"#93C2E4\",\n\t7: \"#93C2E4\",\n\t8: \"#93C2E4\",\n\t9: \"#93C2E4\",\n\t10: \"#93C2E4\",\n\t14: \"#93C2E4\"\n\t}\n\t\n\ttry:\n\t\tret_value \u003d colors[Val_Sts]\n\texcept:\n\t\tret_value \u003d \"#FFC0FF\"\n\t\n\t\n\treturn ret_value\n", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Status" + }, + "position": { + "height": 14, + "width": 140, + "y": 7 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_Sts \u003d value\n\t\n\tstates \u003d {\n\t0: \"Unknown\",\n\t1: \"Stopped\",\n\t2: \"Running\",\n\t5: \"Starting\",\n\t8: \"Jogging\",\n\t10: \"Stopping\",\n\t14: \"Horn\"\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[Val_Sts]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": 8, + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 15, + "y": 41 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdSrcExceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 34, + "y": 41 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/P_Motor/P_Motor", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpR/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpR/resource.json new file mode 100644 index 0000000..2acc659 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpR/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "67d92e100588b1d456322305adf7785011809fc3d2e8119f84346c42c6aa2ae6", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpR/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpR/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..850a70936ab08409e4336e26aa392d0be797ec93 GIT binary patch literal 1302 zcmV+x1?l>UP)Tp{Cb?tRG+A>w2W`eXQ&H_FhlFuKT-|zM-N! zhOAq+cY@UF<)VFF2*&Co?vQd;g!n)p3A$=A=iEqZ`=WLCw^yv+OGy}>4?X@Dj`LCT zTEQpP5AT0QMP3#U&&qEpwJblYC@GRR0v@8>UIYeCQLdwFVN3|KGGp`e=N}~}&(A+W zI}i+dyxvo%({Xxw=5dG5Jd_Lh+^)*%>ZD3s zF^=N|L2$WT>FMdSv$J4~w%hFv27{`U3D0|dJ`9})0-;c-q@<*yqXTp7b~~PabQ&UrZzyJLF9Ir5LwOSJr z5;8I}a&mHVb8}NtQq&LsSJFJs2Lgfo{CtbWg1|@~az8&mpO%)^+}sS_1qB85_4OW) z2h_nE+frLw+uz?G4u^d{9|n>BNT-)tyrk7MZ*6TA6&0OAzGu*?|M>VgJ3D)NdRmnS zbW&PcYBHHr72yfSO-)U*atJ{e%Z~JWscA!cWn~4V(N#GuE-n@q7lR7AScxc#b8~ZL zWo2(kt6fQwkZexbH>SXg*;bOddHDC7&$Jv}|hG2ZU&?PXoa&m&iL*iFXGtq=JQId^P08N8XUtb@u81xOIPNx%Vz>>fcS0E-B42F0Z6Rk)S z`9CsrWMm{cIXNjQsivj|MeX3=K)p4fmd(vgT-_+%xN%ZbQwIkJ)gpa0(}1+9>EYqw z#Kgpji3!w-fq{Xlswz;&%~w}fhbIc0PN!R4T}1^%8NtFZ|H}FP6Z#o+*yfZCIRF3v M07*qoM6N<$g7~;%0{{R3 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpR/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpR/view.json new file mode 100644 index 0000000..47227ba --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpR/view.json @@ -0,0 +1,552 @@ +{ + "custom": {}, + "params": { + "showLabel": true, + "tagPath": "[DH1]Block 1/Process/Motor/P_12" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 75, + "width": 140 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "AlarmFrame" + }, + "position": { + "height": 67, + "width": 124, + "x": 8, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 3 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 140, + "y": 59 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "x": 101, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 83, + "y": 44 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_MaintByp\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Polygon" + }, + "position": { + "height": 11, + "width": 25, + "x": 17 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Base" + }, + "position": { + "height": 9, + "width": 35, + "y": 29 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": 20, + "borderTopRightRadius": 20, + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "OutsideEllipse" + }, + "position": { + "height": 34, + "width": 34 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "InsideEllipse" + }, + "position": { + "height": 14, + "width": 14, + "x": 10, + "y": 10 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "MotorGroup" + }, + "position": { + "height": 38, + "width": 42, + "x": 47, + "y": 21 + }, + "propConfig": { + "custom.motorColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_Sts \u003d value\n\t\n\tcolors \u003d {\n\t0: \"#93C2E4\",\n\t1: \"#808080\",\n\t2: \"#F0F0F0\",\n\t3: \"#F0F0F0\",\n\t4: \"#F0F0F0\",\n\t5: \"#93C2E4\",\n\t6: \"#93C2E4\",\n\t7: \"#93C2E4\",\n\t8: \"#93C2E4\",\n\t9: \"#93C2E4\",\n\t10: \"#93C2E4\",\n\t14: \"#93C2E4\"\n\t}\n\t\n\ttry:\n\t\tret_value \u003d colors[Val_Sts]\n\texcept:\n\t\tret_value \u003d \"#FFC0FF\"\n\t\n\t\n\treturn ret_value\n", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Status" + }, + "position": { + "height": 14, + "width": 140, + "y": 7 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_Sts \u003d value\n\t\n\tstates \u003d {\n\t0: \"Unknown\",\n\t1: \"Stopped\",\n\t2: \"Running\",\n\t5: \"Starting\",\n\t8: \"Jogging\",\n\t10: \"Stopping\",\n\t14: \"Horn\"\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[Val_Sts]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": 8, + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 24, + "y": 18 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdSrcExceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 24, + "y": 41 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/P_Motor/P_Motor", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpU/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpU/resource.json new file mode 100644 index 0000000..c1d1426 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpU/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "099cb0aa7d7944a1b1c8eef9fbc793f0c33b29166f3b6390bc147a56712ea418", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpU/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpU/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..7789474463a7fc567313e4db392518453c09ef96 GIT binary patch literal 84 zcmeAS@N?(olHy`uVBq!ia0vp^Hb5-R!2~4Nn^&&}aXeidLn`9l9%N($@|qO>ug~*v d05K2DWfT@?V4QHcR2|4;@O1TaS?83{1OT;162AZd literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpU/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpU/view.json new file mode 100644 index 0000000..1d8f8bd --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_Motor/P_Motor_PumpU/view.json @@ -0,0 +1,561 @@ +{ + "custom": {}, + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_Motor" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 75, + "width": 140 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "AlarmFrame" + }, + "position": { + "height": 67, + "width": 124, + "x": 8, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 3 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 140, + "y": 59 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "x": 84, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 66, + "y": 44 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_MaintByp\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Polygon" + }, + "position": { + "height": 11, + "rotate": { + "angle": 90 + }, + "width": 25, + "x": 16 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Base" + }, + "position": { + "height": 9, + "width": 35, + "y": 29 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": 20, + "borderTopRightRadius": 20, + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "OutsideEllipse" + }, + "position": { + "height": 34, + "width": 34 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "InsideEllipse" + }, + "position": { + "height": 14, + "width": 14, + "x": 10, + "y": 10 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "MotorGroup" + }, + "position": { + "height": 38, + "width": 42, + "x": 27, + "y": 21 + }, + "propConfig": { + "custom.motorColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_Sts \u003d value\n\t\n\tcolors \u003d {\n\t0: \"#93C2E4\",\n\t1: \"#808080\",\n\t2: \"#F0F0F0\",\n\t3: \"#F0F0F0\",\n\t4: \"#F0F0F0\",\n\t5: \"#93C2E4\",\n\t6: \"#93C2E4\",\n\t7: \"#93C2E4\",\n\t8: \"#93C2E4\",\n\t9: \"#93C2E4\",\n\t10: \"#93C2E4\",\n\t14: \"#93C2E4\"\n\t}\n\t\n\ttry:\n\t\tret_value \u003d colors[Val_Sts]\n\texcept:\n\t\tret_value \u003d \"#FFC0FF\"\n\t\n\t\n\treturn ret_value\n", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Status" + }, + "position": { + "height": 14, + "width": 73, + "x": 65, + "y": 7 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_Sts \u003d value\n\t\n\tstates \u003d {\n\t0: \"Unknown\",\n\t1: \"Stopped\",\n\t2: \"Running\",\n\t5: \"Starting\",\n\t8: \"Jogging\",\n\t10: \"Stopping\",\n\t14: \"Horn\"\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[Val_Sts]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "left" + }, + "textStyle": { + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 7, + "y": 18 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdSrcExceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 7, + "y": 41 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/P_Motor/P_Motor", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_PIDE/P_PIDE/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_PIDE/P_PIDE/resource.json new file mode 100644 index 0000000..68ccead --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_PIDE/P_PIDE/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "6256a1beb123a52d2e560a0f5ed00b0fdacb93e0e1603d9d5e8591577d42f6fd", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_PIDE/P_PIDE/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_PIDE/P_PIDE/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..33646037a28ff9c64d5758edf9d5253bd51c379e GIT binary patch literal 84 zcmeAS@N?(olHy`uVBq!ia0vp^wm>Yy!2~2@KPcz|DQQm^$B>G+w+9&+fxIS#|LgNS c96(Hl^=u*v42;tIqql*0p00i_>zopr0FHeTtN;K2 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_PIDE/P_PIDE/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_PIDE/P_PIDE/view.json new file mode 100644 index 0000000..83b3273 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_PIDE/P_PIDE/view.json @@ -0,0 +1,604 @@ +{ + "custom": {}, + "params": { + "frameColor": "#91919161", + "showFrame": true, + "showLabel": true, + "tagPath": "[default]Test_Tags/Flow_PID" + }, + "propConfig": { + "params.frameColor": { + "paramDirection": "input", + "persistent": true + }, + "params.showFrame": { + "paramDirection": "input", + "persistent": true + }, + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 77, + "width": 143 + }, + "dropConfig": { + "udts": [ + { + "action": "path", + "param": "tagPath", + "type": "Plant PAX/P_Ain" + } + ] + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Frame" + }, + "position": { + "height": 75, + "width": 139, + "x": 2, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showFrame" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "view.params.frameColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "godsAlarmPolygon" + }, + "position": { + "height": "72px", + "width": "134px", + "x": "5px", + "y": "5px" + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 5 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "godsLabel" + }, + "position": { + "height": 14, + "width": 140, + "x": 3, + "y": 7 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "color": "#3F3F3F", + "fontFamily": "Arial", + "fontSize": "8pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_CV_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": "18px", + "width": "66px", + "x": "13px", + "y": "57px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_CVOut\t\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_CVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_CVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_CVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_CVOut\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_CV_Label" + }, + "position": { + "height": 13, + "width": 17, + "x": 7, + "y": 60 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "text": "CV", + "textStyle": { + "color": "#3F3F3F", + "fontFamily": "Arial", + "fontSize": "8pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_CV_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 56, + "x": 82, + "y": 58 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_CVEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 0, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_SP_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": "18px", + "width": "66px", + "x": "13px", + "y": "39px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_SP\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_SP\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_SP_Label" + }, + "position": { + "height": 13, + "width": 17, + "x": 7, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "text": "SP", + "textStyle": { + "color": "#3F3F3F", + "fontFamily": "Arial", + "fontSize": "8pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_SP_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 56, + "x": 82, + "y": 24 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_PVEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 0, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_PV_Label" + }, + "position": { + "height": 13, + "width": 17, + "x": 7, + "y": 24 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "text": "PV", + "textStyle": { + "color": "#3F3F3F", + "fontFamily": "Arial", + "fontSize": "8pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_PV_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": "18px", + "width": "66px", + "x": "13px", + "y": "21px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_PV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_PV\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_PV_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 56, + "x": 82, + "y": 42 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_PVEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 0, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "msi_AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/P_PIDE/P_PIDE", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorD/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorD/resource.json new file mode 100644 index 0000000..1a58ece --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorD/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "c8580645d773d596a215c8649f15bcf338cce37cd63027ad8567360bc53179bb", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorD/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_MotorD/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..a380befd7af98df295e4f07358248860427226c1 GIT binary patch literal 2620 zcmV-C3d8k@P)I^0a6^$#4pgZ&faV9{q1$uUT3d; zhB3SVWVQ(E2A{w)T{P1Vot>RfsHmt24-XF=2#JY_Vi$tY)z#IzA-Y0`=r-Lc*5WtN z5Z{4eq3^g04*t*AoUPTzvkcw0Q<|nRq)Me)w{G2ADv zA~-l0q?asNvVZ@6=z}+&4`EN!U68?(^gQ4Y0nmH;14HB;R>eZCpC+2JEZfr30*eL( z1>L@V`%(a0y?XW9wQGwPFOG?cAr1q>qXUlI@T@cwvBS({T7@Y_H@`NoYK7c5wC>eQ)@jt+{V+-?_!ZmF?n zWMsT;Y$NPhX(7SnzU~QOZY+^#X)HlnA=1Uu+|ugv4fb@tz}sjvE?v6x#EBD!4~?rn2-!bZq&DwvP>!8Crwe%XYdx7!11C zwJwHkx0?(m>l+MIUtVf^RfEaAwVM_3aoLoO%%?vsKfb^l##^;&72E)>+}}U^KvhUc z2#mdO;lcw44y;&tJ4JScU%N>nOR)e2> zpP~xMbGK`go-5^9`IX+LvS*n^g77g(o~Bkms`GHKbSbg%DdpAf4;3YkLn0nOiZ8L2 z>g7t)%Mb2Kiz>_f19)G#as~W?0{~U9I=lsb0>iIZzML|e1b5eJn2GufUaPRkiItC|IqOwbBg%;R68#(MD8< zB(@oVQg8fh-ZTk+2!&p6CxN@U(SumWFs-ewwohJ!4N-|iY$EjB2FB0k-Q7=bzyZiR zlVv%U9W2-lf}hKq>}|AKEvokJ-HUwz)Uew6?FhaDKascB>lLIo*UXtSM~)o%cL^g# zj6keJRsZq65kHYPj9OM!HgV#_apT5Knlx#mgvpa9gZj~Oz6#f>(;HmG;h6LKYaM`9wz~&PMr#0|E2AX z9y}foTzT~9(SMTwOOF~g3d=M*I~(3l0_FE1;Qo8)yv3w}6?dx8LDiNmTQ+arjNQD+ zWFoWbJK(oLUn*AVn zuU@?x`zoZNJ-ityt?uXrcn*U15MMfsXm2SE(Y6Sh#y-h*5AUzvf6t#kAIfv*&Mhny z_p#`K_{o6i!{XcVW!^}@kh-r6kfi-4U9`_}i zD!l3u{`TzIQ&d!>P$_=gyr&2nXpMJ9gle`R?7jAqH<|koOJ&p$-#cBR3Vdhs-Dtg|0d30)QtyS|Pfjata@R$L-}|px`@X3rI^yor^t{^lubzZo zzjXh;zS=8vH9dLwtg59QBwh8dqr&b)r|6m+suc;5x1wLz%1W-CI{m^>oR=y~P1hQ8 zH8-x`FD$Dz8M6lA%{fXag));eQ@OglER9}~5dV=E>_%C_^Ss*9MyfES!o^kD3l(x% zT3!|{nY^pRrOQlA*B580BWv1uN3QZgROpTS5%CF6pFWGadM_eA?s2RwrGxBtq@)T8SszyoWS*c(8!YI8NW ze)P07)wO#&oK83GZ7tAhD(czh#qCA|*4J5XDM;7kx3x32 zoJ2*o_Dvm_(Ut5{@6gV{mT9*ZH<>ZtZ~&}hUlA5D6VzQ{&1(9E&CMu#3( z+o#TUm#eLLh)16Ta8BF+}`!6ttB9DMvN!oxeUikD~#i$Q!;UdkVVP) zgF5CY)`}2M&qQ#Hqr})DN#a+YZnYkvTTMFPru|F2kAgU`PaIy_^$F53KHYtS&WZ;{ zgYoVOOhjhHI8MHSkPil8*by&&9Z^6@r&xxryOpHq)blODFGx!Mal~8y;Z}EtQn>`F e$baAS#o~V(vHuxIILz+=0000;sNwt_}ilS+205?5Ez#43-d@o*5RGeAK#fKiU@m3`28R3cKn@ugU|@h@n4{~02qTz3^6FEse)Fqe zzy415@BLoChY`Qch7ktCZxPIb(650RArnG`ga2)TbuyV9K0fW6HoYx6Y<<_3ZE7Y{ zxou0krzZu2(eB{^hK#{zV|YS<3~W!zm>5_ihV>;TYB?NrcD6bv=PkfuX>;>hZzN|Q zKVEe42F~T_*c`1;fEN~OxLmVPWD)SxtQ-ShK=8Q`uW=l~39zQAQ}NnbtHXPn@Mf=kp9chbq9AsRurYTdjg@qQ2 zh0y67(|-aO^?GDBiSC_GxRfe+`Z7P~n)qgB=d79a7}m2Ru&TD|?yX0KJXYGxi`C6? zv(aF37{M9dzHXD=fCxij*2U*?oHXf51wXgew{-n&wRGmYjWOTo&8W4sY9S`>Xu?25f+#Wd>^eDMQ0#s(pP2 zcI;5^+NIeZpbhZXZfEM4+cg0JbTC|~+_sG>HJ+aIXwHCX#bOPc?KokbWFR|Ro0r#^ zmL@uLh94KliI3-g_Z=r5h`05F#)WuJ+y%RbZF5qQ7cL0To-IyJ*7A5pE_Z;%aB!&za=p4Ss$BYu4;ry)t;^^59j@v2yvozq_q>cMoDP&VKuCD@t@5?VkA|l{%;5ZJ?W#lb~w@K+PD=S;O zc5P{CsjRitf6v~ZK70?Q6j9F-WC_tYKuj5egbDs^$-TeK*Uwp)K7D%Fkt4P#gQ)dn z%r+_AVzD?dFiS9K8jVv8ZSsA=Z3ChT|epa9fpL3t)57*YpeUb@cviNgimw{G2ntfTKW z@p=L(&1SP)E{CE~TwGjTU2XpZguM>d)g9Qd4hgFIefNOwd-LX4uU8FQcO=OA5~)(I z$wNa;6>X^2mgqy*9j~3Bn=2{l@9X37cn1$2oNWDuD?wRSR#tj?xaM`Eyb9Wt1kNvL!__ND0cQL67TDS_Qf!L6>P~ zF%@&8*yQH1_Y>E`np#AXd_JGU;h-_o+TO;|Ef5HFIvp5SuU@UIt4m5sN=!_oGY^{8 zLU#4^oI7#i_KFo-mMlqJvLxr@Kc&x}p85Xtj8{y{nCX%+UYvC0N>ycLZ*MRCl1EAzt-V$^oe3-!D>XGWH#hgpnKSV7+_`fKg#vWjAGwtz zH9Gw2?b}D9qrJCo+3vYH;;U2PhhxM4b!sdi0K)eDd*hlfLL(z%jvj@jfL1(ihR|&s z-H<1c8wm*s!NI|7Haj*p_SmswBuUyw2g72fw!-~7-ElwP-UXi`-@WAKJ=Ss9ZP~U5 zt>1d*&mZ4<@W4K8oNurFj)jj&nALnP7uIkXw7RlVQdCqXkvyrbg`F?_E&G1fpwp3N zbD>zgdf~!-i$4vT`_WD(fUw=J^L*ydhlK{dUG-Y6qlPhf?Y@CNPRK7Qsh7#<=V5P- zk+7julVoW_gSe%oNGdIAaRMoYxUr#8-Zg>Kh*$eG&F~`_*fJS7oX6+RRi&mH*zEqS zELC>4%GNvXnjjc4EK+Yr)MjJF&q!6y9Z^sySMrH$b5ZUJv^wbw3k<>*QPe=z>Px2U^s4j z$K{uE2>Nx~u^%dswwGf6`KF-30ZpoY{0S^bsHLl;uA!l_qs#HtzY$pDlqs5m0$4$C zjTXoCdK@?6xB<}V0KE;`9tt>hI-F+o0Ng<66r2a?*Hcm&_=TNozIgWgcLtIZDyu8< zv$Artv#CtTkKfZW(mUJp++85OFqNaqM!*JI`Np>N9jl{~H@KVQM; zciZUV@rKgL<7;_&54n{IG9*%3p$8j0;2$2z@8agZc$n4A&3ktLky2a`TW{v8kwArF zi`u2P|EtQ)9bjdvS*!^Z69DVjx%1_^^;ffNs8m7ZX?D}s|2X)c9nq(mQKNDyFgnin zpP`2@!8a-VbLhba5BP^i9y!g7J{xot`t!Svf9)N4D(8jmNm;M3>e|+=YxDMM8>~f+ z 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 Qy8r+H07*qoM6N<$g6fHS1poj5 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpL/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpL/view.json new file mode 100644 index 0000000..2fe4d61 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpL/view.json @@ -0,0 +1,631 @@ +{ + "custom": {}, + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_VSD" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 96, + "width": 142 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "AlarmFrame" + }, + "position": { + "height": 86, + "width": 125, + "x": 9, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 3 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 140, + "y": 59 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "x": 93, + "y": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 93, + "y": 44 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_MaintByp\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 15, + "y": 44 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\t\n\tSts_Error \u003d value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\tif (index \u003e 0):\n\t\tret_val \u003d True\t\t\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdSrcExceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 35, + "y": 44 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_OoS\") || tag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\") " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_OoS\"])[0].value\n\tindex \u003d 0\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_OoS\") || tag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_OoS\"])[0].value\n\tindex \u003d 0\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Polygon" + }, + "position": { + "height": 11, + "width": 25 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Base" + }, + "position": { + "height": 9, + "width": 35, + "x": 7, + "y": 29 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": 20, + "borderTopRightRadius": 20, + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "OutsideEllipse" + }, + "position": { + "height": 34, + "width": 34, + "x": 7 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "InsideEllipse" + }, + "position": { + "height": 14, + "width": 14, + "x": 17, + "y": 10 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.motorColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "MotorGroup" + }, + "position": { + "height": 38, + "width": 42, + "x": 47, + "y": 21 + }, + "propConfig": { + "custom.motorColor": { + "binding": { + "config": { + "expression": "case(tag({view.params.tagPath} + \"/Val_Sts\"), \t0, \"#93C2E4\",\r\n1, \"#808080\",\r\n2, \"#F0F0F0\",\r\n3, \"#F0F0F0\",\r\n4, \"#F0F0F0\",\r\n5, \"#93C2E4\",\r\n6, \"#93C2E4\",\r\n7, \"#93C2E4\",\r\n8, \"#93C2E4\",\r\n9, \"#93C2E4\",\r\n10, \"#93C2E4\",\r\n14, \"#93C2E4\",\r\n \"#FFC0FF\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Status" + }, + "position": { + "height": 14, + "width": 140, + "y": 6 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "case(tag({view.params.tagPath} + \"/Val_Sts\"), 0, \"Unknown\", 1, \"Stopped\", 2, \"Running\" + tag({view.params.tagPath} + \"/Cfg_FwdText\"),\r\n3, \"Running\" + tag({view.params.tagPath} + \"/Cfg_RevText\"), 5, \"Starting\" + tag({view.params.tagPath} + \"/Cfg_FwdText\"), \r\n6, \"Starting\" + tag({view.params.tagPath} + \"/Cfg_RevText\"), 8, \"Jogging\" + tag({view.params.tagPath} + \"/Cfg_FwdText\"),\r\n9, \"Jogging\" + tag({view.params.tagPath} + \"/Cfg_RevText\"), 10, \"Stopping\", 14, \"Horn\", \"Error\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": 8, + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 56, + "x": 77, + "y": 76 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_SpeedFdbkEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": 14.667 + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 66, + "x": 8, + "y": 73 + }, + "propConfig": { + "custom.decPlcs": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "type": "expr" + } + }, + "custom.numberFormat": { + "binding": { + "config": { + "expression": "case({this.custom.decPlcs}, 0, \"\", 1, \"0\", 2, \"00\", 3, \"000\", 4, \"0000\", 5, \"00000\", 6, \"000000\", \"00\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "numberformat(tag({view.params.tagPath}+ \"/Val_SpeedFdbk\"), \"#0.\" + {this.custom.numberFormat})" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": 14.667 + } + }, + "type": "ia.display.label" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/P_VSD/P_VSD", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpR/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpR/resource.json new file mode 100644 index 0000000..8f688f2 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpR/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "55b40184bebf77b875491dd2e590e20d34c79e96173979f2dfb61bdc63e420d1", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpR/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_VSD/P_VSD_PumpR/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..6d99ace66bc308c9b78c5e7de7f85d8d8e7703f7 GIT binary patch literal 1683 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/Archive/P_ValveSO/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/Archive/P_ValveSO/view.json new file mode 100644 index 0000000..76e3cce --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/Archive/P_ValveSO/view.json @@ -0,0 +1,721 @@ +{ + "custom": {}, + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_Valve_C" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 95, + "width": 140 + }, + "dropConfig": { + "udts": [ + { + "action": "path", + "param": "tagPath", + "type": "Plant PAX/P_Ain" + } + ] + } + }, + "root": { + "children": [ + { + "meta": { + "name": "godsAlarmPolygon" + }, + "position": { + "height": "90px", + "width": "124px", + "x": "8px", + "y": "5px" + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 5 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Line" + }, + "position": { + "height": 50, + "width": 12, + "x": 63.5, + "y": 8 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Vert_Line.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Wedge" + }, + "position": { + "height": 17, + "width": 28, + "x": 56, + "y": 1 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Wedge.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Wedge_Case2" + }, + "position": { + "height": 17, + "width": 28, + "x": 56, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tVal_CVOut \u003d value\n\tindex \u003d 0\n\t\n\tif (Val_CVOut \u003e 0):\n\t\tindex \u003d True\n\telse:\n\t\tindex \u003d False\n\t\n\treturn index", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Wedge_Case2.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Wedge_Case0" + }, + "position": { + "height": 17, + "width": 28, + "x": 56, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tVal_CVOut \u003d value\n\tindex \u003d 0\n\t\n\tif (Val_CVOut \u003e 0):\n\t\tindex \u003d False\n\telse:\n\t\tindex \u003d True\n\t\n\treturn index", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Wedge_Case0.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CVPercentVPointer" + }, + "position": { + "height": 8, + "width": 8, + "x": 52 + }, + "propConfig": { + "meta.VertPos": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tindex \u003d 0\n\tPercentEU \u003d 0\n\n\tVal_CVOut \u003d value\n\tVal_CVEUMin \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMin\"])[0].value\t\n\tVal_CVEUMax \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMax\"])[0].value\t\n\tPercentEU \u003d Val_CVOut / (Val_CVEUMax - Val_CVEUMin)\n\n\tindex \u003d 30 - (18*PercentEU)\n\t\n\treturn index", + "type": "script" + } + ], + "type": "expr" + } + }, + "position.y": { + "binding": { + "config": { + "path": "this.meta.VertPos" + }, + "type": "property" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "fill": "#3F3F3F", + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "CVPercentVPolygon" + }, + "position": { + "height": 21, + "width": 8, + "x": 59, + "y": 15 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CVPercentVPolygon.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ValveLtOuterPolygon" + }, + "position": { + "height": 35, + "width": 35, + "x": 41, + "y": 35 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ramping\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\" # default color\n\tindex \u003d 0\n\t\n\tSts_Ramping \u003d value\n\tSts_Active \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Active\"])[0].value\n\n\t\n\t# fill colors according to the PlantPAX standard\n\tcolors \u003d {\n\t0 : \"808080\",\n\t1 : \"93C2E4\",\n\t2 : \"F0F0F0\"\n\t}\n\t\n\t# DO THE IF ELSE USING THE VARIABLES ABOVE\n\tif (Sts_Ramping): \n\t\tindex \u003d 1\n\telif (Sts_Active):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\treturn colors[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "ValveLtInnerPolygon" + }, + "position": { + "height": 27, + "width": 27, + "x": 45, + "y": 39.5 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ramping\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\" # default color\n\tindex \u003d 0\n\t\n\tSts_Ramping \u003d value\n\tSts_Active \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Active\"])[0].value\n\n\t\n\t# fill colors according to the PlantPAX standard\n\tcolors \u003d {\n\t0 : \"808080\",\n\t1 : \"93C2E4\",\n\t2 : \"F0F0F0\"\n\t}\n\t\n\t# DO THE IF ELSE USING THE VARIABLES ABOVE\n\tif (Sts_Ramping): \n\t\tindex \u003d 1\n\telif (Sts_Active):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\treturn colors[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "ValveRtOuterPolygon" + }, + "position": { + "height": 35, + "rotate": { + "angle": 180 + }, + "width": 35, + "x": 64, + "y": 35 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ramping\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\" # default color\n\tindex \u003d 0\n\t\n\tSts_Ramping \u003d value\n\tSts_Active \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Active\"])[0].value\n\n\t\n\t# fill colors according to the PlantPAX standard\n\tcolors \u003d {\n\t0 : \"808080\",\n\t1 : \"93C2E4\",\n\t2 : \"F0F0F0\"\n\t}\n\t\n\t# DO THE IF ELSE USING THE VARIABLES ABOVE\n\tif (Sts_Ramping): \n\t\tindex \u003d 1\n\telif (Sts_Active):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\treturn colors[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "ValveRtInnerPolygon" + }, + "position": { + "height": 27, + "rotate": { + "angle": 180 + }, + "width": 27, + "x": 68, + "y": 39.5 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ramping\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\" # default color\n\tindex \u003d 0\n\t\n\tSts_Ramping \u003d value\n\tSts_Active \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Active\"])[0].value\n\n\t\n\t# fill colors according to the PlantPAX standard\n\tcolors \u003d {\n\t0 : \"808080\",\n\t1 : \"93C2E4\",\n\t2 : \"F0F0F0\"\n\t}\n\t\n\t# DO THE IF ELSE USING THE VARIABLES ABOVE\n\tif (Sts_Ramping): \n\t\tindex \u003d 1\n\telif (Sts_Active):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\treturn colors[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 66, + "x": 10, + "y": 75 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_CVOut\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "paddingLeft": 10, + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontFamily": "Arial", + "fontSize": 11, + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 56, + "x": 79, + "y": 78 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_EU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "paddingLeft": 10, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontFamily": "Arial", + "fontSize": 8, + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsLabel" + }, + "position": { + "height": 14, + "width": 140, + "y": 61 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderStyle": "none", + "color": "#3F3F3F", + "fontSize": 8, + "fontWeight": "500", + "outlineStyle": "none", + "paddingLeft": 10, + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "msi_AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 94, + "y": 34 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_MaintByp\"), True, False)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "msi_CmdSrcExceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 31, + "y": 34 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_OoS\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\n\tindex \u003d 0\t\t\t\n\tSts_OoS \u003d value\n\t\n\tSts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\t\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "msi_Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 31, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Fault\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\tVal_Fault \u003d value\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\n\tif (Val_Fault \u003e\u003d 20):\n\t\tindex \u003d Val_Fault \n\telif (SrcQ3 \u003d\u003d True):\n\t\tindex \u003d 1\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True \n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\"\n\t}\n\t\t\t\n\tSts_Err \u003d value\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\t\t\n\tif (Sts_Err \u003d\u003d True):\n\t\tSts_Err \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tSts_Err \u003d 3\n\n\telif (SrcQ4 \u003d\u003d True):\n\t\tSts_Err \u003d 2\n\t\t\n\telif (SrcQ3 \u003d\u003d True):\n\t\tSts_Err \u003d 1\n\telse:\n\t\tSts_Err \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[Sts_Err])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_NotReady" + }, + "position": { + "height": 16, + "width": 16, + "x": 94, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_NotRdy\"), True, False)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/DigitalInput/Popup", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC/resource.json new file mode 100644 index 0000000..1a7b3aa --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "5f36520c2e27716a5aa8daac823bd5c5ddccf8c95884d62c7d80ad0072f9a382", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..1822e83af2e61fac17b94b50464d58c47bf25acd GIT binary patch literal 2081 zcmV++2;TRJP)lQUCSEIr0xCB@-z zU`%Y>afS{V9f)hztPuzVHk*y;l?YyGG@9$zudiCQN}*81#vMEKluk)Z|M>CaLx&Fi z@L?9u;m70(ArGZe>DskxEfxz+(^GzG28j_G%LIc#f)XxJ8-UiWTepAz{>zsypFDZ; zU%Z?-bLRZ{^W^^Y>C-1poVa=O=8`2#;O-cYtwwxjW{Cxw5IdbtEH;@NPrACgK7aoF z@#DujUYeR@g@uKiHf@s0WcBs+4ZM8%^r^YId3bnu@)!P5Vu23uZgA?`pg|2U3UAB-EN11Lk<%XY(9MMEG24a;sE*i`PJ3c&!0cHTCEXI$=iW3 z7>p)U4@Me|J!Z4TV9*~vd>Dw>tuIWX^=2Z`L1PVM0JGVA_Uzfackf=jcrhz0i~YN@ z$*y{P`+9nMaih^_!KT;ij~qFIpRrL!NOaHyC@n1wPMMRFbLY;T%*;%+S{=>}bz);C zQ!f+@C(&x#@V2|V8%g>XKoep_QhItiZUEiZ)`l8!@7}%87(^Aa7~b~x4_K}J_%j+! z_=(W`HP8TZxm>BKsevB_k8A_s`0m|1mJ2=)uF(ChTerS^X$3c;aAaiUmuZ^tDV0jN za&2v`SS&^?0{6p*59li%K70t5AkZ&fyg+(ZsZ`&;>pMHU0{jkt4KxwNKCEv*YA_o6 z`ua>JlaUvwlMH}0z(=yUOeTl2gF$-s(Ee#8Vpw$0p&}e1;prACXZh?Q7T54eEecHs zrxJWHq5wq)9hikO0E%S*Ete}C^t8kXbxA{Jp_%PXs~dj z)oQW5jT<+Duc@htE3+qdt*g9rET-v@f!4_3D3k!J#Vxnh0^BDTxC=2^y_PN=gcto;-PipQ~4| z#x@Xhz=g-(xN!r|p=Pv)XsxD%Ch;2f`M=4}f`(F2DK>B3eDL5w!UP!_8bU?`B~CHe z28K6sL!syH9Ba_P0x_2I}|mqvhoD_UQ3No zSXWfZC%deqJVWmolUBZxD?dq^ zRf8Q3!Umj+?&}7X2ysqsH#TBt~6Vd?)p#uDh$YUM?5EDHB!IiHqbaRrc?x zwaWHt;mcx)N~cvhCMbF;ABh^8^Jw^oZ&WPGf02=?(iy)tN;3cWQ_<0@R#X{n!!3>P zdMrjkL0)}BO_S!E-|ecYc%7YFVlWw{ZySgG6cUB=duw)Xnb+qk%zgFdO`cq%R!BeC z$D9S(S)CTIYoO!x>zwL_uU>j;|A+ya7epTubR(oV2-@TEF+ql=x&Nc$%H6;uobS^V z&7B{)uwxLCG&$>0{Am|sF#%sdR^g{`DFwPkIuH1~Znr05&5-;BBjRlfzS6Y)00000 LNkvXXu0mjfx(ofh literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC/view.json new file mode 100644 index 0000000..d5b079f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC/view.json @@ -0,0 +1,726 @@ +{ + "custom": {}, + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_Valve_C" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 95, + "width": 140 + }, + "dropConfig": { + "udts": [ + { + "action": "path", + "param": "tagPath", + "type": "Plant PAX/P_Ain" + } + ] + } + }, + "root": { + "children": [ + { + "meta": { + "name": "godsAlarmPolygon" + }, + "position": { + "height": "90px", + "width": "124px", + "x": "8px", + "y": "5px" + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 5 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Line" + }, + "position": { + "height": 50, + "width": 12, + "x": 63.5, + "y": 8 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Vert_Line.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Wedge" + }, + "position": { + "height": 17, + "width": 28, + "x": 56, + "y": 1 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Wedge.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Wedge_Case2" + }, + "position": { + "height": 17, + "width": 28, + "x": 56, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tVal_CVOut \u003d value\n\tindex \u003d 0\n\t\n\tif (Val_CVOut \u003e 0):\n\t\tindex \u003d True\n\telse:\n\t\tindex \u003d False\n\t\n\treturn index", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Wedge_Case2.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Wedge_Case0" + }, + "position": { + "height": 17, + "width": 28, + "x": 56, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tVal_CVOut \u003d value\n\tindex \u003d 0\n\t\n\tif (Val_CVOut \u003e 0):\n\t\tindex \u003d False\n\telse:\n\t\tindex \u003d True\n\t\n\treturn index", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Wedge_Case0.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CVPercentVPointer" + }, + "position": { + "height": 8, + "width": 8, + "x": 52 + }, + "propConfig": { + "meta.VertPos": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tindex \u003d 0\n\tPercentEU \u003d 0\n\n\tVal_CVOut \u003d value\n\tVal_CVEUMin \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMin\"])[0].value\t\n\tVal_CVEUMax \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMax\"])[0].value\t\n\tPercentEU \u003d Val_CVOut / (Val_CVEUMax - Val_CVEUMin)\n\n\tindex \u003d 34 - (self.getSibling(\"CVPercentVPolygon\").position.height * PercentEU)\n\t\n\treturn index", + "type": "script" + } + ], + "type": "expr" + } + }, + "position.y": { + "binding": { + "config": { + "path": "this.meta.VertPos" + }, + "type": "property" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "fill": "#3F3F3F", + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "CVPercentVPolygon" + }, + "position": { + "height": 20, + "width": 8, + "x": 59, + "y": 16 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CVPercentVPolygon.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ValveLtOuterPolygon" + }, + "position": { + "height": 35, + "width": 35, + "x": 41, + "y": 35 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ramping\") || tag({view.params.tagPath} + \"/Sts_Active\") " + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\" # default color\n\tindex \u003d 0\n\t\n\tSts_Ramping \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Ramping\"])[0].value\n\tSts_Active \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Active\"])[0].value\n\n\t\n\t# fill colors according to the PlantPAX standard\n\tcolors \u003d {\n\t0 : \"#808080\",\n\t1 : \"#93C2E4\",\n\t2 : \"#F0F0F0\"\n\t}\n\t\n\t# DO THE IF ELSE USING THE VARIABLES ABOVE\n\tif (Sts_Ramping): \n\t\tindex \u003d 1\n\telif (Sts_Active):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\treturn colors[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "ValveLtInnerPolygon" + }, + "position": { + "height": 28, + "width": 27, + "x": 45, + "y": 39 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ramping\") || tag({view.params.tagPath} + \"/Sts_Active\") " + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\" # default color\n\tindex \u003d 0\n\t\n\tSts_Ramping \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Ramping\"])[0].value\n\tSts_Active \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Active\"])[0].value\n\n\t\n\t# fill colors according to the PlantPAX standard\n\tcolors \u003d {\n\t0 : \"#808080\",\n\t1 : \"#93C2E4\",\n\t2 : \"#F0F0F0\"\n\t}\n\t\n\t# DO THE IF ELSE USING THE VARIABLES ABOVE\n\tif (Sts_Ramping): \n\t\tindex \u003d 1\n\telif (Sts_Active):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\treturn colors[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "ValveRtOuterPolygon" + }, + "position": { + "height": 35, + "rotate": { + "angle": 180 + }, + "width": 35, + "x": 64, + "y": 35 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ramping\") || tag({view.params.tagPath} + \"/Sts_Active\") " + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\" # default color\n\tindex \u003d 0\n\t\n\tSts_Ramping \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Ramping\"])[0].value\n\tSts_Active \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Active\"])[0].value\n\n\t\n\t# fill colors according to the PlantPAX standard\n\tcolors \u003d {\n\t0 : \"#808080\",\n\t1 : \"#93C2E4\",\n\t2 : \"#F0F0F0\"\n\t}\n\t\n\t# DO THE IF ELSE USING THE VARIABLES ABOVE\n\tif (Sts_Ramping): \n\t\tindex \u003d 1\n\telif (Sts_Active):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\treturn colors[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "ValveRtInnerPolygon" + }, + "position": { + "height": 28, + "rotate": { + "angle": 180 + }, + "width": 27, + "x": 68, + "y": 39 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ramping\") || tag({view.params.tagPath} + \"/Sts_Active\") " + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\" # default color\n\tindex \u003d 0\n\t\n\tSts_Ramping \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Ramping\"])[0].value\n\tSts_Active \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Active\"])[0].value\n\n\t\n\t# fill colors according to the PlantPAX standard\n\tcolors \u003d {\n\t0 : \"#808080\",\n\t1 : \"#93C2E4\",\n\t2 : \"#F0F0F0\"\n\t}\n\t\n\t# DO THE IF ELSE USING THE VARIABLES ABOVE\n\tif (Sts_Ramping): \n\t\tindex \u003d 1\n\telif (Sts_Active):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\treturn colors[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 66, + "x": 10, + "y": 75 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_CVOut\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "paddingRight": 0, + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontFamily": "Arial", + "fontSize": "11pt", + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 56, + "x": 79, + "y": 78 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_EU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontFamily": "Arial", + "fontSize": "8pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsLabel" + }, + "position": { + "height": 14, + "width": 140, + "y": 61 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderStyle": "none", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "500", + "outlineStyle": "none", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "msi_AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 94, + "y": 34 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_MaintByp\"), True, False)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "msi_CmdSrcExceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 31, + "y": 34 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_OoS\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\t\n\tSts_OoS \u003d value\n\tindex \u003d 0\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_OoS\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\n\tindex \u003d 0\t\t\t\n\tSts_OoS \u003d value\n\t\n\tSts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\t\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "msi_Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 31, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") || tag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\"\n\t}\n\t\t\t\n\tSts_Err \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Err\"])[0].value\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\t\t\n\tif (Sts_Err \u003d\u003d True):\n\t\tSts_Err \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tSts_Err \u003d 3\n\n\telif (SrcQ4 \u003d\u003d True):\n\t\tSts_Err \u003d 2\n\t\t\n\telif (SrcQ3 \u003d\u003d True):\n\t\tSts_Err \u003d 1\n\telse:\n\t\tSts_Err \u003d 0\n\n\tif (Sts_Err \u003e 0):\n\t\tret_value \u003d True\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") || tag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\"\n\t}\n\t\t\t\n\tSts_Err \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Err\"])[0].value\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\t\t\n\tif (Sts_Err \u003d\u003d True):\n\t\tSts_Err \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tSts_Err \u003d 3\n\n\telif (SrcQ4 \u003d\u003d True):\n\t\tSts_Err \u003d 2\n\t\t\n\telif (SrcQ3 \u003d\u003d True):\n\t\tSts_Err \u003d 1\n\telse:\n\t\tSts_Err \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[Sts_Err])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_NotReady" + }, + "position": { + "height": 16, + "width": 16, + "x": 94, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_NotRdy\"), True, False)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/P_ValveC/P_ValveC", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerLeft/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerLeft/resource.json new file mode 100644 index 0000000..86b5b97 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerLeft/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "e4c4186907d7c766170b613d04f21062a71052d9a0280aa198b368b184a7033b", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerLeft/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerLeft/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..39283d917212636cd2469ed3e558006fd00aa442 GIT binary patch literal 1882 zcmV-g2c`IlP)7>!7bVid$nOo*ANqoM-IU<8AR!!WeA zwM8hmq5>_qaw#pB7DSLzDYv%J(hG3fo=fLDXG3Xg2OVcJK8#<;$?m?az4o`iwbmvf z_ze+Ai0$});~O1O_(n$*{wW>Qs_^^$u?xNi0)fC{Jix=4nV(AsP17(M)5)@I=u?PU z@>Q^kpD{Dz(DCuHNhcOF3`0ioMSFaFTq2Rk<#L%!CXEK^Q7V=5^YfsREC~c@mSJK| z3*blN>?^EXLF5Et^%Hlq!6A?twL44vkF1!`g z4n@IYeSLjON=kly{=&in>BraW^`1U`dfT>b-wW8gcW=0H@ZiBMTeduW_z>2JS%wR7 zH0AdAcvcveWdym=G>l_oj=w4n4Gdv#hUFNV-^EXSWm$N{2tzD~Avz$85I6Y`Zzt+t z1n9w8=H}+MZrz%Ykg#^`+6@~vtXsEk&6+j%dGFpm>>3#|D|8SdFzj$R5Ld7Q=E9RXC+O(;ytqmq-W@dCcy~))7{{6`4sHLk*KQJ&jIQR~K z{rv+I6O&koX=1T>*REZcFJHcU_wLP`H^EDKditI{d;0qNFv{PsAJc-ha*4Wk9Kqso zj8(`L(o*F+^KhlCSS)$b+-59$lvyBqqp2>HmDlwfT1#amm9KR@U7C_Q1B`UkzG!_r z)?8WIW0~n`D3{3V2fMn;i{y2k-FB;`rlLx%t}1*c=^C8k;%NjPzzD7fEVQ?`KX~u} z)Ijf{XlVoq9ZOIb9mK7BD06>uaQa>rSfJYmUwJt(UV_gsus)0prOB~x=^N4 z)-~4ZwCW1+3;C-WWl52^r_0!_H$%ArK`xPi8*tTPv8-Re9;ZX#96x?M>|P{zI*6Q* z7mgl1ibiT`s!F9IvqM7q1QBNQXn+6Pp`l?A0Rmwi0>PK8HJMBY4je#$WM*a}a88^! zffN(gAG1Qh&EPy5jRw(p{``4D2TYLjkV1tvq6soFnFfqT zlflqK(j;N6prBy)?%j|H!la|4BZhleL0a<7IVPs;0VYIwopz@eH;F_YV3%D8#xPHt%8p>6Ti$YJplhh>SYtob@h3;le67Pa)N?L27<_+U8yG(?VkX7$m16 zCvM)n84@O^i=6~IFau+4?d?!FiXu)3bs$(k5PmK_rzk4?XhA<3Hk%!P*ntZ&1LP2e6Y7!*+_W%W+IdcY)6;sS35x@7pLO^&u zk(3t~OLUZ#l|dBbey(1^`3j zga97*2vgEtzyw~UOqyp-29>+F*U0dYWx^i&|IHWSPY!4b U2glm4;Q#;t07*qoM6N<$g0mKl1ONa4 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerLeft/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerLeft/view.json new file mode 100644 index 0000000..9b387d3 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerLeft/view.json @@ -0,0 +1,759 @@ +{ + "custom": {}, + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_Valve_C" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 59, + "width": 201 + }, + "dropConfig": { + "udts": [ + { + "action": "path", + "param": "tagPath", + "type": "Plant PAX/P_Ain" + } + ] + } + }, + "root": { + "children": [ + { + "meta": { + "name": "godsAlarmPolygon" + }, + "position": { + "height": 50, + "width": 193, + "x": 4, + "y": "5px" + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 5 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 41, + "x": 70, + "y": 32 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_CVOut\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "paddingRight": 0, + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontFamily": "Arial", + "fontSize": "11pt", + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 56, + "x": 115, + "y": 35 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_EU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontFamily": "Arial", + "fontSize": "8pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsLabel" + }, + "position": { + "height": 14, + "width": 140, + "x": 70, + "y": 13 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderStyle": "none", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "500", + "outlineStyle": "none", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "msi_AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 154, + "y": 11 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_MaintByp\"), True, False)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "msi_CmdSrcExceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 175, + "y": 31 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_OoS\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\t\n\tSts_OoS \u003d value\n\tindex \u003d 0\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_OoS\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\n\tindex \u003d 0\t\t\t\n\tSts_OoS \u003d value\n\t\n\tSts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\t\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "msi_Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 20, + "y": 32 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") || tag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\"\n\t}\n\t\t\t\n\tSts_Err \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Err\"])[0].value\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\t\t\n\tif (Sts_Err \u003d\u003d True):\n\t\tSts_Err \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tSts_Err \u003d 3\n\n\telif (SrcQ4 \u003d\u003d True):\n\t\tSts_Err \u003d 2\n\t\t\n\telif (SrcQ3 \u003d\u003d True):\n\t\tSts_Err \u003d 1\n\telse:\n\t\tSts_Err \u003d 0\n\n\tif (Sts_Err \u003e 0):\n\t\tret_value \u003d True\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") || tag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\"\n\t}\n\t\t\t\n\tSts_Err \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Err\"])[0].value\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\t\t\n\tif (Sts_Err \u003d\u003d True):\n\t\tSts_Err \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tSts_Err \u003d 3\n\n\telif (SrcQ4 \u003d\u003d True):\n\t\tSts_Err \u003d 2\n\t\t\n\telif (SrcQ3 \u003d\u003d True):\n\t\tSts_Err \u003d 1\n\telse:\n\t\tSts_Err \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[Sts_Err])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_NotReady" + }, + "position": { + "height": 16, + "width": 16, + "x": 175, + "y": 11 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_NotRdy\"), True, False)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 50, + "width": 12, + "x": 23.5, + "y": 7 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Vert_Line.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Wedge" + }, + "position": { + "height": 17, + "width": 28, + "x": 16 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Wedge.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Wedge_Case2" + }, + "position": { + "height": 17, + "width": 28, + "x": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tVal_CVOut \u003d value\n\tindex \u003d 0\n\t\n\tif (Val_CVOut \u003e 0):\n\t\tindex \u003d True\n\telse:\n\t\tindex \u003d False\n\t\n\treturn index", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Wedge_Case2.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Wedge_Case0" + }, + "position": { + "height": 17, + "width": 28, + "x": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tVal_CVOut \u003d value\n\tindex \u003d 0\n\t\n\tif (Val_CVOut \u003e 0):\n\t\tindex \u003d False\n\telse:\n\t\tindex \u003d True\n\t\n\treturn index", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Wedge_Case0.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ValveLtOuterPolygon" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 34 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ramping\") || tag({view.params.tagPath} + \"/Sts_Active\") " + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\" # default color\n\tindex \u003d 0\n\t\n\tSts_Ramping \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Ramping\"])[0].value\n\tSts_Active \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Active\"])[0].value\n\n\t\n\t# fill colors according to the PlantPAX standard\n\tcolors \u003d {\n\t0 : \"#808080\",\n\t1 : \"#93C2E4\",\n\t2 : \"#F0F0F0\"\n\t}\n\t\n\t# DO THE IF ELSE USING THE VARIABLES ABOVE\n\tif (Sts_Ramping): \n\t\tindex \u003d 1\n\telif (Sts_Active):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\treturn colors[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "ValveLtInnerPolygon" + }, + "position": { + "height": 28, + "width": 27, + "x": 6, + "y": 38 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ramping\") || tag({view.params.tagPath} + \"/Sts_Active\") " + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\" # default color\n\tindex \u003d 0\n\t\n\tSts_Ramping \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Ramping\"])[0].value\n\tSts_Active \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Active\"])[0].value\n\n\t\n\t# fill colors according to the PlantPAX standard\n\tcolors \u003d {\n\t0 : \"#808080\",\n\t1 : \"#93C2E4\",\n\t2 : \"#F0F0F0\"\n\t}\n\t\n\t# DO THE IF ELSE USING THE VARIABLES ABOVE\n\tif (Sts_Ramping): \n\t\tindex \u003d 1\n\telif (Sts_Active):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\treturn colors[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "ValveRtOuterPolygon" + }, + "position": { + "height": 35, + "rotate": { + "angle": 180 + }, + "width": 35, + "x": 25, + "y": 34 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ramping\") || tag({view.params.tagPath} + \"/Sts_Active\") " + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\" # default color\n\tindex \u003d 0\n\t\n\tSts_Ramping \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Ramping\"])[0].value\n\tSts_Active \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Active\"])[0].value\n\n\t\n\t# fill colors according to the PlantPAX standard\n\tcolors \u003d {\n\t0 : \"#808080\",\n\t1 : \"#93C2E4\",\n\t2 : \"#F0F0F0\"\n\t}\n\t\n\t# DO THE IF ELSE USING THE VARIABLES ABOVE\n\tif (Sts_Ramping): \n\t\tindex \u003d 1\n\telif (Sts_Active):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\treturn colors[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "ValveRtInnerPolygon" + }, + "position": { + "height": 28, + "rotate": { + "angle": 180 + }, + "width": 27, + "x": 29, + "y": 38 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ramping\") || tag({view.params.tagPath} + \"/Sts_Active\") " + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\" # default color\n\tindex \u003d 0\n\t\n\tSts_Ramping \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Ramping\"])[0].value\n\tSts_Active \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Active\"])[0].value\n\n\t\n\t# fill colors according to the PlantPAX standard\n\tcolors \u003d {\n\t0 : \"#808080\",\n\t1 : \"#93C2E4\",\n\t2 : \"#F0F0F0\"\n\t}\n\t\n\t# DO THE IF ELSE USING THE VARIABLES ABOVE\n\tif (Sts_Ramping): \n\t\tindex \u003d 1\n\telif (Sts_Active):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 0\n\n\treturn colors[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "children": [ + { + "meta": { + "name": "CVPercentVPointer" + }, + "position": { + "height": 8, + "width": 8, + "x": 1 + }, + "propConfig": { + "meta.VertPos": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tindex \u003d 0\n\tPercentEU \u003d 0\n\n\tVal_CVOut \u003d value\n\tVal_CVEUMin \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMin\"])[0].value\t\n\tVal_CVEUMax \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMax\"])[0].value\t\n\tPercentEU \u003d Val_CVOut / (Val_CVEUMax - Val_CVEUMin)\n\n\tindex \u003d 18 - (self.getSibling(\"CVPercentVPolygon\").position.height * PercentEU)\n\t\n\treturn index", + "type": "script" + } + ], + "type": "expr" + } + }, + "position.y": { + "binding": { + "config": { + "path": "this.meta.VertPos" + }, + "type": "property" + } + } + }, + "props": { + "path": "material/play_arrow", + "style": { + "fill": "#3F3F3F", + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "CVPercentVPolygon" + }, + "position": { + "height": 20, + "width": 8, + "x": 8, + "y": 2 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CVPercentVPolygon.svg" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "CVPercent" + }, + "position": { + "height": 37, + "rotate": { + "angle": 180 + }, + "width": 20, + "x": 31, + "y": 3 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ValveBody" + }, + "position": { + "height": 72, + "rotate": { + "angle": -90 + }, + "width": 60, + "x": 7, + "y": -4 + }, + "type": "ia.container.coord" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/P_ValveC/P_ValveC", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerRight/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerRight/resource.json new file mode 100644 index 0000000..fbac856 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerRight/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "69f3e9699249c4fd498cb8271b8fca1b1c821453dd7387dd02af4b3f58f43766", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerRight/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveC/P_ValveC_VerRight/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..8fc21400ffe682e6d865e7c644657b29151bee3a GIT binary patch literal 1848 zcmV-82gmq{P)razc7;lUk{{cVx-T2AGEGB+3YSeg3jJm|kpv;-g%e*b>C+B23H7uD%K%80;T0pr9 z6D${tR6rD@))soDMFe`kLEHEK?)Sb2Dpb(AP1x_l$$8In&U2pg+*?JQ6M;If_}I;g z0z=WvoB-E~9Ak|z`2zwgh^A5TmWzWtiP@D$anr^BY!NQo_}(xpa11@W*C&B%d6o$# zm~0z=%f)Bg`35&D@UyNCmSL{?5yFUHULJ~~=&ANs;49zB(XxH! z9FPIgDhWe>cGz+p$9@#pFnK>#q%>{1 z2ObQ8?%%(^bm`Jnt5z*vzI?@s6&NvJwrp8lT^*=1DTPP~r5rtabltjj2M-?HzkmOC zG7cO#fcg6M>-X&0G&HPW1QF^8 zM5S$its$w=tYj|Gd7fiw*|8)+#%+k8lqeEOrb$)>Ge%MjmeVO$ zxD*}{3d@(Q*bt3IySsZ@Tiaf|=(1R>et#ewjs$}tzu)h6yP+us=kEPgXRWAw zWE%;IT*BuM^8&Iv9SZmpmjTQ&R3REl-qu5v^5T!WEYgX2_g1i3d6U)$8!e?!0 z>j{TL;RKWL+N%qj7z2TT-QI69_1f(YD21%UM-&Br zTs^57fOQj5Z&U3*Kr1dkt+CLE!06y@#2| z0*Lk{OO}+DmM&hr`0(Mw>F9!)6xVQv-Me>Rx^xK|*|lpI=02Yfu1Ba7z7HD-VC(UC zEf$->@TRx7@6{{4A~);z(~U#8GHh?jf20#*@A8UE%S!Gzz5a%KRZX?cre3$9?qN&M zP_L%?nbAMe)AT^CzN=}6KDl_{VNu@glA8X0N4H7eq$;ne)HGH->w4a-DlB~5)KHjr zv-6dyv&Fy&X*ImW=M4q}GRX1c$B{K04hKX}M;*+>akJTs407honIlJztX{pkv9VE{ z$U8)31cWD;!vOelyFJ6hBZ~Hp=Dn3&S+~l19S+T-iaP}=o&L>JP1#$YPg~Y(c-dB@ zE`L(ps5kpU!{!I70(I#l)9Ws^rj3@9@za`{cPe|vJU!QMOt#(@P*b*U-Rg3= zVzF2x5{ae@+oOSE-unW zRCKcbSxDx*R6-gc4x-oVw{6>ojw9o9pm-S;`$on50kPR5{i2<)`W%CVcj{_-AnK^E zufKNf8e9WKB$PH3)x+#b6JI&RdSVPGwF}dOmU>%6fYfk|&(lbaUk($IpXxr63v(P) zfVO4Bh7A^rg?JgC9u)8h<$(0h0-wrx3ItJZ$N-*|qDw}SnzZF)i~bu6e+0z%R;v{S z715rOTnP2z#fzIZZ9>nEI!(zxM$(i-5vQ3vCzp_aM@|bcLou>+cK`5G#lDl(9Rp)t zqiJ{Myo(t35RR~mng_qef4$WFFDVL-NQ$|S7sM=e4DAP)CZsj6zz8|$A~`~ zkA}U0uoIihl m@7}$rFGi!0>`7(!0saP5gCzAr8!*cN00009FP!5NIeA75}L$`p$f9908Q;UkCKwqYHY=A{g~OA zVK;T5L`WPchxVsAd^4+Ef1k!BxQdjP2Umh3Reo0I^-^6TOezErRg{LY(1gF~ON2?4 z=FpG9o5LW6EQjC(cIT$T6oSMEcMh}k>_(oO)ftNJRGeoq{L}O=gA1c10<{2dd;D_3 zw_M&1@qVA4@AI=UulCeR&*-P$_>NCPCch$9N)a&;YFori%8255ZggeUKb7)$L;|@sHu2r*EE*5}(InRM zJ+JqDIv3IYltS%XvBI&}E>||g1hXVj%z2vVWXI8A7#{&-S(fWR;v|ZCJ3bJ>f7qBw z_3i*44W$*zgMn10c&|_O8P`L(RvX{^7+9fH0=}zvg&B}U`@6NeZ8tx-UU$8^v015C z*KN1E8Rs08rIg9(=5NYziyYGylS-Cw$=Lb*|F?abEDd* hIjBFMWy_}inIBPiU!mcFBhLT;002ovPDHLkV1gFv?5O|% literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO/view.json new file mode 100644 index 0000000..bf80804 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO/view.json @@ -0,0 +1,385 @@ +{ + "custom": {}, + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_ValveSO" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 37, + "width": 163 + }, + "dropConfig": { + "udts": [ + { + "action": "path", + "param": "tagPath", + "type": "Plant PAX/P_Ain" + } + ] + } + }, + "root": { + "children": [ + { + "meta": { + "name": "godsAlarmPolygon" + }, + "position": { + "height": "32px", + "width": "130px", + "x": "5px", + "y": "5px" + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 5 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "godsLabel" + }, + "position": { + "height": 14, + "width": 140, + "x": 23, + "y": 8 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderStyle": "none", + "color": "#3F3F3F", + "fontSize": 8, + "fontWeight": "500", + "outlineStyle": "none", + "paddingLeft": 10, + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "ValveSO_MSI_Status", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 140, + "x": 23, + "y": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"Error\"\n\t\n\tVal \u003d value\n\t\n\tif (value \u003d\u003d 0):\n\t\tret_value \u003d \"Unknown\"\n\telif (value \u003d\u003d 1):\n\t\tret_value \u003d \"Closed\"\n\telif (value \u003d\u003d 2):\n\t\tret_value \u003d \"Opened\"\n\telif (value \u003d\u003d 5):\n\t\tret_value \u003d \"Closing\"\n\telif (value \u003d\u003d 6):\n\t\tret_value \u003d \"Opening\"\t\t\n\telif (value \u003d\u003d 5):\n\t\tret_value \u003d \"Horn\"\t\t\n\telse:\n\t\tret_value \u003d \"Calc Error\"\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#808080", + "fontWeight": "normal", + "paddingLeft": 10, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": 8 + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "msi_AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Motor_StateColor_OLD", + "visible": false + }, + "position": { + "height": 16, + "width": 16, + "x": 92.99716186523438, + "y": 4.999053955078125 + }, + "propConfig": { + "props.style.fill": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Closed\"), 1, \r\n\tif(tag({view.params.tagPath} + \"/Sts_Closing\"), 2 ,\r\n\t\tif(tag({view.params.tagPath} + \"/Sts_Opening\"), 3,\r\n\t\t\tif(tag({view.params.tagPath} + \"/Sts_Opened\"), 4,\r\n\t0))))" + }, + "transforms": [ + { + "fallback": "#FF0000", + "inputType": "scalar", + "mappings": [ + { + "input": 0, + "output": "#FF00FF" + }, + { + "input": 1, + "output": "#808080" + }, + { + "input": 2, + "output": "#F0F0F0" + }, + { + "input": 3, + "output": "#808080" + }, + { + "input": 4, + "output": "#F0F0F0" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "expr" + } + } + }, + "props": { + "color": "#000000", + "path": "material/panorama_fish_eye", + "style": { + "stroke": "#3F3F3F" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "P_ValveSO_MotorColor_Case0" + }, + "position": { + "height": 17, + "width": 17, + "x": 7, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Closed\"), False, \r\n\tif(tag({view.params.tagPath} + \"/Sts_Closing\"), False ,\r\n\t\tif(tag({view.params.tagPath} + \"/Sts_Opening\"), False,\r\n\t\t\tif(tag({view.params.tagPath} + \"/Sts_Opened\"), False,\r\n\tTrue))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/P_ValveSO_MotorColor_Case0.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "P_ValveSO_MotorColor_Case1" + }, + "position": { + "height": 17, + "width": 17, + "x": 7, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Closed\"), True, \r\n\tif(tag({view.params.tagPath} + \"/Sts_Closing\"), False ,\r\n\t\tif(tag({view.params.tagPath} + \"/Sts_Opening\"), True,\r\n\t\t\tif(tag({view.params.tagPath} + \"/Sts_Opened\"), False,\r\n\tFalse))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/P_ValveSO_MotorColor_Case1.svg" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "P_ValveSO_MotorColor_Case2" + }, + "position": { + "height": 17, + "width": 17, + "x": 10, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Closed\"), False, \r\n\tif(tag({view.params.tagPath} + \"/Sts_Closing\"), True ,\r\n\t\tif(tag({view.params.tagPath} + \"/Sts_Opening\"), False,\r\n\t\t\tif(tag({view.params.tagPath} + \"/Sts_Opened\"), True,\r\n\tFalse))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/P_ValveSO_MotorColor_Case2.svg" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/DigitalInput/Popup", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO_Block (1)/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO_Block (1)/resource.json new file mode 100644 index 0000000..4cee4a4 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO_Block (1)/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "bbe488f292f567d0c23c65d80099f561bd1de2bd31e7a2922d96ce19f2a2df43", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO_Block (1)/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/Archive/P_ValveSO_Block (1)/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..d8f01ff246869b34052206c1a6a3184daed85e5f GIT binary patch literal 263 zcmV+i0r>ujP)zkoje`t|F@ix>aH0066DqsiHUs6(11O^PBKY#xJ|NpF6v%I~%v$C?1lao`DQxKvV85w=Oy=@)s z9i8n6(S(GAwvLY4vLau14}@r9Vq!;kS5;Adgns}+G$|3Q5fTB~TOtG@EijIyB2?+@e z4Q2T8E7$yJ>D+v881Wv(0IKY#>zApwvlj`H|Y{h*l0=vL-4V&H+0>>c(9cbm4j~ z;J5dE58HEILgqda@)!1kf2$3K3xtq7buST|4ym|rcg8J2L)V=IH{nnCy%j=h7u&ME z;DM28VyEKHV5eju6ItFYc3UJ6PyYu4z;ESkV2i&?oQ!3ybQy~$`ZC~C7m?Umtg<5=GIsF6jJ#=Ab7rd9KlvI9?(Sz0&P{wZi1Gg)3qF zF=BFsslHa4S!oC!a{~C(URa(w%4o()A&jz}4;)Dquon1heFns#-2`D;c$`mUrtLW(H z5HMi)@#Dwu-@hL`c(7;hp6%PWZ{50e;nPV&###+Ra zn3R;DK%?xii9ek1nsq`9`h&rMgg@^Yu7!zFX=#e9U{^9UpV_BJ@ zq{MLbs@IIArTUVR{tFjgoj<3e zw57GxaP1o9cAF&SOmH~5>}&*RPo09{(v+JE zuMT%*X9pM>C-mHh2U^5p={Ih4h(z|XGD<9VRaV+>+;HB%Z-|W*Wn_5E!}U>}5c_!2 z8ysM0v>mu-rl)7!ZXus9TED&`D(cp{bvIY97Oh%!YwcQCc~q1zH`j&KEEfCJl*?|P zYedqHi?aYj>-GBgrzv{KWO_Y0IbyMl+U-BLw7@XHB_{PI6LKSw7K`Qm{w!JngT~Jz z5b*hY9*@`6)rAvnj>zqHdgkR)DGURwEA1jj1zt4+7cXAS#j3kpOX3bNG>5}kvu4fC zojXsSJlWXTXtUV}-%F3k7$tKAqNJ!Yc zdGoey+tSn1pFDX2uR@^!sN3yECWzUwV@F(E+@3vq5Qd%km!Yw2v9Yn=&1=h+E!($m z&&=S8e*aWOGSTVnA z*Di#`#Khp1AVNEQESa`t6&Dxdd?4|2d6M&lrb!n98pInmY~XUasP&*g;|Mbvjjuc! z85x;}pF59<2y{k9#=d>~Zr{GG(P&73Z*CZPk7uP)dF9F#YzULdB(EgzqZZVnpvgDY z)z#g*cdx0bDJLiA?%lgJH8qbPKZa}WN9O#$SREZ5pTzYQnI|#GzoDVQKVl&*0lKB7 z#cH);P+ne+>MSiSEi5d=BKeYeaTi=UUvz)pLRu6wdHVC`&mTN^AeBmsii&V46bkXu z_AAH5;Q9)|pWKZvYYEU2i9{?G3j_idi-p%)K|ulfX{qHH5G@Ltlt*)OvrebOptG|R x>n)SXdU|@kJu$T;Xtbb8r6N`6m4E0r(Lao&Zo5b3IQ;+s002ovPDHLkV1mZF!czbM literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_Hor/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_Hor/view.json new file mode 100644 index 0000000..5b5e06a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_Hor/view.json @@ -0,0 +1,3141 @@ +{ + "custom": {}, + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_ValveSO" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 77, + "width": 140 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "AlarmFrame" + }, + "position": { + "height": 72, + "width": 124, + "x": 7, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 3 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 140, + "y": 61 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "x": 114, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 94, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_MaintByp\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 7, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\t\t\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdSrcExceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 27, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tindex \u003d 0\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tindex \u003d 0\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Status" + }, + "position": { + "height": 14, + "width": 66, + "x": 74, + "y": 7 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "case(tag({view.params.tagPath}+ \"/Val_Sts\"), \t0, \"Unknown\",\r\n1, \"Closed\",\r\n2, \"Open\",\r\n3, \"Command to Close\",\r\n4, \"Command to Open\",\r\n5, \"Closing\",\r\n6, \"Opening\",\r\n7, \"Stopped\",\r\n8, \"Moving\",\r\n9, \"Tripping\",\r\n10, \"Horn\", \r\n\"Error\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#808080", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 1, + "x": 17.5, + "y": 20 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#3F3F3F", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Inside0" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 18, + "x": 0.50066, + "y": 5.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside1" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 16, + "x": 2.50066, + "y": 4.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside2" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 16, + "x": 2.50066, + "y": 5.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside3" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 15, + "x": 3.50066, + "y": 5.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside4" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 15, + "x": 3.50066, + "y": 6.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside5" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 14, + "x": 4.50066, + "y": 6.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside6" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 14, + "x": 4.50066, + "y": 7.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside7" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 13, + "x": 5.50066, + "y": 7.002610000000001 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside8" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 13, + "x": 5.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside9" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 12, + "x": 6.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside10" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 11, + "x": 7.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside11" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 11, + "x": 7.50066, + "y": 9.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside12" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 10, + "x": 8.50066, + "y": 9.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside13" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 10, + "x": 8.50066, + "y": 10.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside14" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 9, + "x": 9.50066, + "y": 10.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside15" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 8, + "x": 10.5007, + "y": 10.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside16" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 8, + "x": 10.5007, + "y": 11.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside17" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 7, + "x": 11.5007, + "y": 11.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside18" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 7, + "x": 11.5007, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside19" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 6, + "x": 12.5007, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside20" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 5, + "x": 13.5007, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside21" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 5, + "x": 13.5007, + "y": 13.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside22" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 4, + "x": 14.5007, + "y": 13.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside23" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 3, + "x": 14.5007, + "y": 13.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside24" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 3, + "x": 14.5007, + "y": 14.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside25" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 2, + "x": 15.5007, + "y": 14.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside26" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 1.5, + "x": 16.5007, + "y": 14.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside27" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 1, + "x": 16.5007, + "y": 15.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside28" + }, + "position": { + "height": 1, + "rotate": { + "angle": 25 + }, + "width": 18, + "x": 0.50066, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside29" + }, + "position": { + "height": 1, + "rotate": { + "angle": 90 + }, + "width": 16, + "x": 9.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Inside" + }, + "position": { + "height": 19, + "width": 19 + }, + "propConfig": { + "custom.valveColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "TopLeftLine" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 19.5, + "x": -0.49934, + "y": 4.00261 + }, + "props": { + "style": { + "borderTopColor": "#3F3F3F", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BottomLeftLine" + }, + "position": { + "height": 1, + "rotate": { + "angle": 25 + }, + "width": 19.5, + "x": -0.49934, + "y": 12.0026 + }, + "props": { + "style": { + "borderTopColor": "#3F3F3F", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "RightLine" + }, + "position": { + "height": 16.5, + "rotate": { + "angle": 0 + }, + "width": 1, + "x": 17.5007, + "y": 0.5 + }, + "props": { + "style": { + "borderRightColor": "#3F3F3F", + "borderRightStyle": "solid", + "borderRightWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "valveColorArchive": "#F0F0F0" + }, + "meta": { + "name": "ValveRtGroup" + }, + "position": { + "height": 19, + "width": 19, + "x": 17, + "y": 22 + }, + "propConfig": { + "custom.valveColor": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_Closed\") || (tag({view.params.tagPath} + \"/Sts_Horn\") \u0026\u0026 (tag({view.params.tagPath} + \"/Val_Fdbk\") \u003d 1)), \"#808080\", \r\n\tif (tag({view.params.tagPath} + \"/Sts_Closing\"), \"#F0F0F0\",\r\n\t\tif (tag({view.params.tagPath} + \"/Sts_Opening\"), \"#808080\",\r\n\t\t\tif (tag({view.params.tagPath} + \"/Sts_Opened\") || (tag({view.params.tagPath} + \"/Sts_Horn\") \u0026\u0026 (tag({view.params.tagPath} + \"/Val_Fdbk\")) \u003d 2), \"#F0F0F0\", \"#FF00FF\")\r\n\t\t)\r\n\t)\r\n)\r\n\r\n\r\n//colors \u003d {\r\n//0: \"#FF00FF\",\r\n//1: \"#808080\",\r\n//2: \"#F0F0F0\",\r\n//3: \"#808080\",\r\n//4: \"#F0F0F0\",\r\n//}\r\n//\r\n//Sts_Closing \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closing\"])[0].value\r\n//Sts_Closed \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closed\"])[0].value\r\n//Sts_Opening \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opening\"])[0].value\r\n//Sts_Opened \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opened\"])[0].value\r\n//Sts_Horn \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Horn\"])[0].value\r\n//Val_Fdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_Fdbk\"])[0].value\r\n//\r\n//if (Sts_Closed or (Sts_Horn and (Val_Fdbk \u003d\u003d 1))):\r\n//\tindex \u003d 1\r\n//elif (Sts_Closing):\r\n//\tindex \u003d 2\r\n//elif (Sts_Opening):\r\n//\tindex \u003d 3\r\n//elif (Sts_Opened or (Sts_Horn and (Val_Fdbk \u003d\u003d 2))):\r\n//\tindex \u003d 4\r\n//\r\n//try:\r\n//\tret_value \u003d colors[index]\r\n//except:\r\n//\tret_value \u003d \"#808080\"" + }, + "type": "expr" + } + }, + "custom.valveColorArchive": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Closing\") || tag({view.params.tagPath} + \"/Sts_Closed\") ||\r\ntag({view.params.tagPath} + \"/Sts_Opening\") || tag({view.params.tagPath} + \"/Sts_Opened\") ||\r\ntag({view.params.tagPath} + \"/Sts_Horn\") || tag({view.params.tagPath} + \"/Val_Fdbk\")" + }, + "enabled": false, + "transforms": [ + { + "code": "\tret_value \u003d \"#808080\"\n\tindex \u003d 0\n\t\n\tcolors \u003d {\n\t0: \"#FF00FF\",\n\t1: \"#808080\",\n\t2: \"#F0F0F0\",\n\t3: \"#808080\",\n\t4: \"#F0F0F0\",\n\t}\n\t\n\tSts_Closing \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closing\"])[0].value\n\tSts_Closed \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closed\"])[0].value\n\tSts_Opening \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opening\"])[0].value\n\tSts_Opened \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opened\"])[0].value\n\tSts_Horn \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Horn\"])[0].value\n\tVal_Fdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_Fdbk\"])[0].value\n\t\n\tif (Sts_Closed or (Sts_Horn and (Val_Fdbk \u003d\u003d 1))):\n\t\tindex \u003d 1\n\telif (Sts_Closing):\n\t\tindex \u003d 2\n\telif (Sts_Opening):\n\t\tindex \u003d 3\n\telif (Sts_Opened or (Sts_Horn and (Val_Fdbk \u003d\u003d 2))):\n\t\tindex \u003d 4\n\t\n\ttry:\n\t\tret_value \u003d colors[index]\n\texcept:\n\t\tret_value \u003d \"#808080\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Inside0" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 18, + "x": 0.50066, + "y": 5.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside1" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 16, + "x": 2.50066, + "y": 4.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside2" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 16, + "x": 2.50066, + "y": 5.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside3" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 15, + "x": 3.50066, + "y": 5.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside4" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 15, + "x": 3.50066, + "y": 6.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside5" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 14, + "x": 4.50066, + "y": 6.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside6" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 14, + "x": 4.50066, + "y": 7.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside7" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 13, + "x": 5.50066, + "y": 7.002610000000001 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside8" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 13, + "x": 5.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside9" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 12, + "x": 6.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside10" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 11, + "x": 7.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside11" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 11, + "x": 7.50066, + "y": 9.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside12" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 10, + "x": 8.50066, + "y": 9.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside13" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 10, + "x": 8.50066, + "y": 10.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside14" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 9, + "x": 9.50066, + "y": 10.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside15" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 8, + "x": 10.5007, + "y": 10.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside16" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 8, + "x": 10.5007, + "y": 11.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside17" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 7, + "x": 11.5007, + "y": 11.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside18" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 7, + "x": 11.5007, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside19" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 6, + "x": 12.5007, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside20" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 5, + "x": 13.5007, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside21" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 5, + "x": 13.5007, + "y": 13.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside22" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 4, + "x": 14.5007, + "y": 13.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside23" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 3, + "x": 14.5007, + "y": 13.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside24" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 3, + "x": 14.5007, + "y": 14.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside25" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 2, + "x": 15.5007, + "y": 14.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside26" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 1.5, + "x": 16.5007, + "y": 14.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside27" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 1, + "x": 16.5007, + "y": 15.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside28" + }, + "position": { + "height": 1, + "rotate": { + "angle": 25 + }, + "width": 18, + "x": 0.50066, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside29" + }, + "position": { + "height": 1, + "rotate": { + "angle": 90 + }, + "width": 16, + "x": 9.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Inside" + }, + "position": { + "height": 19, + "width": 19 + }, + "propConfig": { + "custom.valveColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "TopLeftLine" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 19.5, + "x": -0.49934, + "y": 4.00261 + }, + "props": { + "style": { + "borderTopColor": "#3F3F3F", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BottomLeftLine" + }, + "position": { + "height": 1, + "rotate": { + "angle": 25 + }, + "width": 19.5, + "x": -0.49934, + "y": 12.0026 + }, + "props": { + "style": { + "borderTopColor": "#3F3F3F", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "RightLine" + }, + "position": { + "height": 16.5, + "rotate": { + "angle": 0 + }, + "width": 1, + "x": 17.5007, + "y": 0.5 + }, + "props": { + "style": { + "borderRightColor": "#3F3F3F", + "borderRightStyle": "solid", + "borderRightWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "valveColorArchive": "#F0F0F0" + }, + "meta": { + "name": "ValveLtGroup" + }, + "position": { + "height": 19, + "rotate": { + "angle": "180deg" + }, + "width": 19, + "y": 20.25 + }, + "propConfig": { + "custom.valveColor": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_Closed\") || (tag({view.params.tagPath} + \"/Sts_Horn\") \u0026\u0026 (tag({view.params.tagPath} + \"/Val_Fdbk\") \u003d 1)), \"#808080\", \r\n\tif (tag({view.params.tagPath} + \"/Sts_Closing\"), \"#808080\",\r\n\t\tif (tag({view.params.tagPath} + \"/Sts_Opening\"), \"#F0F0F0\",\r\n\t\t\tif (tag({view.params.tagPath} + \"/Sts_Opened\") || (tag({view.params.tagPath} + \"/Sts_Horn\") \u0026\u0026 (tag({view.params.tagPath} + \"/Val_Fdbk\")) \u003d 2), \"#F0F0F0\", \"#FF00FF\")\r\n\t\t)\r\n\t)\r\n)\r\n\r\n//colors \u003d {\r\n//0: \"#FF00FF\",\r\n//1: \"#808080\",\r\n//2: \"#808080\",\r\n//3: \"#F0F0F0\",\r\n//4: \"#F0F0F0\",\r\n//}\r\n//\r\n//Sts_Closing \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closing\"])[0].value\r\n//Sts_Closed \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closed\"])[0].value\r\n//Sts_Opening \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opening\"])[0].value\r\n//Sts_Opened \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opened\"])[0].value\r\n//Sts_Horn \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Horn\"])[0].value\r\n//Val_Fdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_Fdbk\"])[0].value\r\n//\r\n//if (Sts_Closed or (Sts_Horn and (Val_Fdbk \u003d\u003d 1))):\r\n//\tindex \u003d 1\r\n//elif (Sts_Closing):\r\n//\tindex \u003d 2\r\n//elif (Sts_Opening):\r\n//\tindex \u003d 3\r\n//elif (Sts_Opened or (Sts_Horn and (Val_Fdbk \u003d\u003d 2))):\r\n//\tindex \u003d 4\r\n" + }, + "type": "expr" + } + }, + "custom.valveColorArchive": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Closing\") || tag({view.params.tagPath} + \"/Sts_Closed\") ||\r\ntag({view.params.tagPath} + \"/Sts_Opening\") || tag({view.params.tagPath} + \"/Sts_Opened\") ||\r\ntag({view.params.tagPath} + \"/Sts_Horn\") || tag({view.params.tagPath} + \"/Val_Fdbk\")" + }, + "enabled": false, + "transforms": [ + { + "code": "\tret_value \u003d \"#808080\"\n\tindex \u003d 0\n\t\n\tcolors \u003d {\n\t0: \"#FF00FF\",\n\t1: \"#808080\",\n\t2: \"#808080\",\n\t3: \"#F0F0F0\",\n\t4: \"#F0F0F0\",\n\t}\n\t\n\tSts_Closing \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closing\"])[0].value\n\tSts_Closed \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closed\"])[0].value\n\tSts_Opening \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opening\"])[0].value\n\tSts_Opened \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opened\"])[0].value\n\tSts_Horn \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Horn\"])[0].value\n\tVal_Fdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_Fdbk\"])[0].value\n\t\n\tif (Sts_Closed or (Sts_Horn and (Val_Fdbk \u003d\u003d 1))):\n\t\tindex \u003d 1\n\telif (Sts_Closing):\n\t\tindex \u003d 2\n\telif (Sts_Opening):\n\t\tindex \u003d 3\n\telif (Sts_Opened or (Sts_Horn and (Val_Fdbk \u003d\u003d 2))):\n\t\tindex \u003d 4\n\t\n\ttry:\n\t\tret_value \u003d colors[index]\n\texcept:\n\t\tret_value \u003d \"#808080\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "custom": { + "backgroundColorArchive": "#F0F0F0" + }, + "meta": { + "name": "Actuator" + }, + "position": { + "height": 19, + "width": 19, + "x": 8.5, + "y": 1.0057 + }, + "propConfig": { + "custom.backgroundColorArchive": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_Sim\") || tag({view.params.tagPath} + \"/Out\") ||\r\ntag({view.params.tagPath} + \"/Cfg_FailOpen\") || tag({view.params.tagPath} + \"/Sts_Closed\") || tag({view.params.tagPath} + \"/Sts_Closing\") || \r\ntag({view.params.tagPath} + \"/Sts_Opening\") || tag({view.params.tagPath} + \"/Sts_Opened\")" + }, + "enabled": false, + "transforms": [ + { + "code": "\tret_value \u003d \"#808080\"\n\tindex \u003d 0\n\t\n\tInp_Sim \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_Sim\"])[0].value\n\tOut \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Out\"])[0].value\n\tCfg_FailOpen \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_FailOpen\"])[0].value\n\tSts_Closing \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closing\"])[0].value\n\tSts_Closed \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closed\"])[0].value\n\tSts_Opening \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opening\"])[0].value\n\tSts_Opened \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opened\"])[0].value\n\t\n\tif (not Inp_Sim):\n\t\tindex \u003d Out\n\telif (Cfg_FailOpen) and (Sts_Closed or Sts_Closing):\n\t\tindex \u003d 1\n\telif (not (Cfg_FailOpen)) and (Sts_Opening or Sts_Opened):\n\t\tindex \u003d 1\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d \"#F0F0F0\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if (!(tag({view.params.tagPath} + \"/Inp_Sim\")), if (tag({view.params.tagPath} + \"/Out\"), \"#F0F0F0\", \"#808080\"),\r\n\tif (tag({view.params.tagPath} + \"/Cfg_FailOpen\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Closed\") || tag({view.params.tagPath} + \"/Sts_Closing\")), \"#F0F0F0\",\r\n\t\tif (!tag({view.params.tagPath} + \"/Cfg_FailOpen\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Opening\") || tag({view.params.tagPath} + \"/Sts_Opened\")), \"#F0F0F0\", \"#808080\"\r\n\t\t)\r\n\t)\r\n)\r\n\r\n//if (not Inp_Sim):\r\n//\tindex \u003d Out\r\n//elif (Cfg_FailOpen) and (Sts_Closed or Sts_Closing):\r\n//\tindex \u003d 1\r\n//elif (not (Cfg_FailOpen)) and (Sts_Opening or Sts_Opened):\r\n//\tindex \u003d 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "S" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "ValveGroup" + }, + "position": { + "height": 42, + "width": 37, + "x": 51.5, + "y": 6 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "FailOpen" + }, + "position": { + "height": 14, + "width": 37, + "x": 51, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_FailOpen\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#808080", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "text": "FO", + "textStyle": { + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/P_ValveSO/P_ValveSO", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerLeft/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerLeft/resource.json new file mode 100644 index 0000000..b71425d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerLeft/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "64f0290c311590aaabfeb9259cad2ee8e8225fc28a68bb663f6a49097f15a520", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerLeft/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerLeft/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..30ac3a200b7765ba2464f01ce82ba8ed4e93dec8 GIT binary patch literal 2008 zcmV;}2PgQ6P)@C+ns?9fX&yZN&@()Yo_1#J85s}-B8#Yq1_)UoD60*!iy%u2h(iO-7O)9n zQHkt>C4}Io)eq8ES-K0MEcfa+!l`pX0p}shJ z;`gBcGiZ;;gLxx5dg1)_>!AsPz}zmU(-lFFo`L_7nM9}ZQ~%K1&Tw|W3fki#NYc2m zJgJy?|8aF~NxijWB}uQt>4NiK%(K7mz`Qu-aeFYFAaDZrY_F*``aP1wqqF+0Iv&~+ zFFYPE;dPkbPX4&(!Wr7Pxiqg{(|lY|O-#*bv^v#W#mxIvvwllCIi{Fi&}%nU%BkVO zp=Ir^&qtgWG%O>e%jbpGLwMYgz@n|k^;39ppItXMGe`LRoS!gnEY3_RmNX{cC!Xd>%OBOsi3y_}Gq1l>YmDat4c|w2F}0l-F#85fzQH|uWS<||4~~4| zM;)P2XL!sRj-C0zMmMN7YTp^VHXW@W^mPmRXY=}o1#R7XYu}cwLa|h%+WJnlvaR3I zuP-ZAFsX?Zt@*s5DK9o;^c&owx(iC{1BN{e|mnNoR!}DD4uQG5$TB~`-?8dwnv(aR+x!q@g8`Ck+ zZ!KiqHWfr@PBrt7zy0-oc2-ViMz$a=Gwo&;M0(o460cirwg4Zb11!kT1Sp!Jn8-05 z2n0CZO9!59`={-G7E&9jGbBmihi~*7bv$(Kwx8mHBthK0cTX&l$cl?&@%TwuT6+3G zPd5Uw6k=(Pp%LdtECj_eG|Mn3Nb>=@Mem=s5WeVlM$6t=>Uij9dK#kw0M^_0IxQ`& zq@<)sEG{Z4DinzXskgc|ot@TjtBISiF*dKSX@~7HvrRjk4I`o3V&dD)T-qu>yz8U! zDD+wDL}-Fx!=aGN?as=|5=T{BT%4Ys-rUq!vyXICSWlxW(?PF2++jl|2DMw!s3Qyk z2WAHK?xPkx#S@WQeddY-&G8%y$?ojz%*e<9V&J}c^QO^gY_}gE1c8JfoEI9W4Sd8b zIu3pLTnV9zc9+Rt1nr6H=-CtGcDr3s#e)v=TsR!I+wB5@0334r_U+25s)K`r$6B`C z5^grqf&uj{NqM1;Y1WbX+jOR^JX2aO*7{lvlu(DdjTDQY0!>jAj{l-<62`zo9t;L~ zo{t9|3i41MAZ^Xf&0vz$)YJ`)21;>C-XE?qhWn&Wv`6kyHF%q%M_Q_ai_d_P#Z z>WSDE9f)Rj3JOJcQvdnq%YVO{CoCxxCRMg=1;Fm1Ro{u8hO_}9ShJ#{qNk^)rlv-r zPyiE<9UXc|@F~CFFBA$B5)w{B^NWr$95&H23%SCnY5n78cSB6AtooHuA|f`=_SyJJqc+v8W*DcJ{67UneBo%PS~+ zQg!3oj>|3M->f3V9zlKP>6kmUS}j-;j5jbapj0Z?*Vmy&!A#;nV^MBc_NPyu#)AfT z1VbTMN+{0~i3IB1;NT$3@t+)y)*a@LMU6$U<&>7)C@lUeJ?~mUg;@SrT2d-_@aQX9 zOVaxB4`S^3>+0%)(h2DRV*pBI7whd^Sy_Qx#^H`lcx!7b9yHHI(hSK+NlB5*<#~B| zxw#KW+$+)s`#*(;F(eq*CP^x*9cTha&4VT^1p;q?<9M7X8JVwszpn~iF5aS>`r>=-f)SARD8I05&G z&|ZHe&5Fs%7EjKew}x<*Td5twpFyV$@JE8~i_7 z$j__Cndo?Ec!hTcLY@8JS2ebl*3`?YYKp6Bzinx+ZhleO_`LbM*Sna{g8TQN^^j%= qHvs|17L2rdsU3`})zMSu2K^tqXIG!$!Ar*0N4>Ixsd50E!_s``s eUjSq>G_W%ZpJ8Cs*lYV0#PxLbb6Mw<&;$Uhi4wm6 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerRight/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerRight/view.json new file mode 100644 index 0000000..2e62257 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/P_ValveSO/P_ValveSO_VerRight/view.json @@ -0,0 +1,3101 @@ +{ + "custom": {}, + "params": { + "showLabel": true, + "tagPath": "[default]Test_Tags/P_ValveSO" + }, + "propConfig": { + "params.showLabel": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 77, + "width": 140 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "AlarmFrame" + }, + "position": { + "height": 72, + "width": 124, + "x": 7, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 3 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 97, + "x": 7, + "y": 61 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.showLabel" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16, + "x": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "({[default]_Settings/PlantPAXBlink} \u0026\u0026 (tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 !(tag({view.params.tagPath} + \"/Sts_AlmInh\"))) ||\r\n((tag({view.params.tagPath} + \"/Val_NotifyAll\") \u003e 0) \u0026\u0026 tag({view.params.tagPath} + \"/Val_NotifyAll\") % 2 \u003d 0)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "x": 28, + "y": 30.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 11, + "y": 30.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_MaintByp\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 46, + "y": 30.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\t\t\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Err\") ||\r\ntag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t 4: \"Sts_BC_BadCfg\",\n\t}\n\t\t\t\n\tSts_Error \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Error\"])[0].value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/SrcQ\"])[0].value \u0026 32) \u003d\u003d 32\n\n\tif (Sts_Error \u003d\u003d True):\n\t\tindex \u003d 4 \n\telif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdSrcExceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 65, + "y": 30.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tindex \u003d 0\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_OoS\") ||\r\ntag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_BC_CmdSrcNotNorm\",\n\t 2: \"Sts_CmdSrcOoS\"\n\t}\n\t\t\t\n\tSts_OoS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_OoS\"])[0].value\n\tindex \u003d 0\n\tCmdSrc_Sts_Normal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/CmdSrc/Sts_Normal\"])[0].value\n\n\tif (Sts_OoS \u003d\u003d True):\n\t\tindex \u003d 2 \n\telif (CmdSrc_Sts_Normal \u003d\u003d True):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Status" + }, + "position": { + "height": 14, + "width": 66, + "x": 38, + "y": 7 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tstates \u003d {\n\t0: \"Unknown\",\n\t1: \"Closed\",\n\t2: \"Open\",\n\t3: \"Command to Close\",\n\t4: \"Command to Open\",\n\t5: \"Closing\",\n\t6: \"Opening\",\n\t7: \"Stopped\",\n\t8: \"Moving\",\n\t9: \"Tripping\",\n\t10: \"Horn\",\n\t}\n\t\n\tVal_Sts \u003d value\n\tindex \u003d Val_Sts\n\t\n\tret_value \u003d states[index]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#808080", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "fontSize": "8pt", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 1, + "x": 17.5, + "y": 20 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#3F3F3F", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Inside0" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 18, + "x": 0.50066, + "y": 5.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside1" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 16, + "x": 2.50066, + "y": 4.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside2" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 16, + "x": 2.50066, + "y": 5.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside3" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 15, + "x": 3.50066, + "y": 5.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside4" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 15, + "x": 3.50066, + "y": 6.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside5" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 14, + "x": 4.50066, + "y": 6.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside6" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 14, + "x": 4.50066, + "y": 7.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside7" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 13, + "x": 5.50066, + "y": 7.002610000000001 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside8" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 13, + "x": 5.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside9" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 12, + "x": 6.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside10" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 11, + "x": 7.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside11" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 11, + "x": 7.50066, + "y": 9.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside12" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 10, + "x": 8.50066, + "y": 9.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside13" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 10, + "x": 8.50066, + "y": 10.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside14" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 9, + "x": 9.50066, + "y": 10.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside15" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 8, + "x": 10.5007, + "y": 10.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside16" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 8, + "x": 10.5007, + "y": 11.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside17" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 7, + "x": 11.5007, + "y": 11.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside18" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 7, + "x": 11.5007, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside19" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 6, + "x": 12.5007, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside20" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 5, + "x": 13.5007, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside21" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 5, + "x": 13.5007, + "y": 13.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside22" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 4, + "x": 14.5007, + "y": 13.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside23" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 3, + "x": 14.5007, + "y": 13.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside24" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 3, + "x": 14.5007, + "y": 14.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside25" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 2, + "x": 15.5007, + "y": 14.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside26" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 1.5, + "x": 16.5007, + "y": 14.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside27" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 1, + "x": 16.5007, + "y": 15.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside28" + }, + "position": { + "height": 1, + "rotate": { + "angle": 25 + }, + "width": 18, + "x": 0.50066, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside29" + }, + "position": { + "height": 1, + "rotate": { + "angle": 90 + }, + "width": 16, + "x": 9.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Inside" + }, + "position": { + "height": 19, + "width": 19 + }, + "propConfig": { + "custom.valveColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "TopLeftLine" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 19.5, + "x": -0.49934, + "y": 4.00261 + }, + "props": { + "style": { + "borderTopColor": "#3F3F3F", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BottomLeftLine" + }, + "position": { + "height": 1, + "rotate": { + "angle": 25 + }, + "width": 19.5, + "x": -0.49934, + "y": 12.0026 + }, + "props": { + "style": { + "borderTopColor": "#3F3F3F", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "RightLine" + }, + "position": { + "height": 16.5, + "rotate": { + "angle": 0 + }, + "width": 1, + "x": 17.5007, + "y": 0.5 + }, + "props": { + "style": { + "borderRightColor": "#3F3F3F", + "borderRightStyle": "solid", + "borderRightWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ValveRtGroup" + }, + "position": { + "height": 19, + "width": 19, + "x": 17, + "y": 22 + }, + "propConfig": { + "custom.valveColor": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_Closed\") || (tag({view.params.tagPath} + \"/Sts_Horn\") \u0026\u0026 (tag({view.params.tagPath} + \"/Val_Fdbk\") \u003d 1)), \"#808080\", \r\n\tif (tag({view.params.tagPath} + \"/Sts_Closing\"), \"#F0F0F0\",\r\n\t\tif (tag({view.params.tagPath} + \"/Sts_Opening\"), \"#808080\",\r\n\t\t\tif (tag({view.params.tagPath} + \"/Sts_Opened\") || (tag({view.params.tagPath} + \"/Sts_Horn\") \u0026\u0026 (tag({view.params.tagPath} + \"/Val_Fdbk\")) \u003d 2), \"#F0F0F0\", \"#FF00FF\")\r\n\t\t)\r\n\t)\r\n)\r\n\r\n\r\n//colors \u003d {\r\n//0: \"#FF00FF\",\r\n//1: \"#808080\",\r\n//2: \"#F0F0F0\",\r\n//3: \"#808080\",\r\n//4: \"#F0F0F0\",\r\n//}\r\n//\r\n//Sts_Closing \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closing\"])[0].value\r\n//Sts_Closed \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closed\"])[0].value\r\n//Sts_Opening \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opening\"])[0].value\r\n//Sts_Opened \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opened\"])[0].value\r\n//Sts_Horn \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Horn\"])[0].value\r\n//Val_Fdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_Fdbk\"])[0].value\r\n//\r\n//if (Sts_Closed or (Sts_Horn and (Val_Fdbk \u003d\u003d 1))):\r\n//\tindex \u003d 1\r\n//elif (Sts_Closing):\r\n//\tindex \u003d 2\r\n//elif (Sts_Opening):\r\n//\tindex \u003d 3\r\n//elif (Sts_Opened or (Sts_Horn and (Val_Fdbk \u003d\u003d 2))):\r\n//\tindex \u003d 4\r\n//\r\n//try:\r\n//\tret_value \u003d colors[index]\r\n//except:\r\n//\tret_value \u003d \"#808080\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Inside0" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 18, + "x": 0.50066, + "y": 5.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside1" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 16, + "x": 2.50066, + "y": 4.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside2" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 16, + "x": 2.50066, + "y": 5.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside3" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 15, + "x": 3.50066, + "y": 5.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside4" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 15, + "x": 3.50066, + "y": 6.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside5" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 14, + "x": 4.50066, + "y": 6.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside6" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 14, + "x": 4.50066, + "y": 7.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside7" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 13, + "x": 5.50066, + "y": 7.002610000000001 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside8" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 13, + "x": 5.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside9" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 12, + "x": 6.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside10" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 11, + "x": 7.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside11" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 11, + "x": 7.50066, + "y": 9.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside12" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 10, + "x": 8.50066, + "y": 9.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside13" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 10, + "x": 8.50066, + "y": 10.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside14" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 9, + "x": 9.50066, + "y": 10.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside15" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 8, + "x": 10.5007, + "y": 10.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside16" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 8, + "x": 10.5007, + "y": 11.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside17" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 7, + "x": 11.5007, + "y": 11.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside18" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 7, + "x": 11.5007, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside19" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 6, + "x": 12.5007, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside20" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 5, + "x": 13.5007, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside21" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 5, + "x": 13.5007, + "y": 13.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside22" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 4, + "x": 14.5007, + "y": 13.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside23" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 3, + "x": 14.5007, + "y": 13.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside24" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 3, + "x": 14.5007, + "y": 14.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside25" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 2, + "x": 15.5007, + "y": 14.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside26" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 1.5, + "x": 16.5007, + "y": 14.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside27" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 1, + "x": 16.5007, + "y": 15.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside28" + }, + "position": { + "height": 1, + "rotate": { + "angle": 25 + }, + "width": 18, + "x": 0.50066, + "y": 12.0026 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Inside29" + }, + "position": { + "height": 1, + "rotate": { + "angle": 90 + }, + "width": 16, + "x": 9.50066, + "y": 8.00261 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + }, + "props.style.borderTopColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Inside" + }, + "position": { + "height": 19, + "width": 19 + }, + "propConfig": { + "custom.valveColor": { + "binding": { + "config": { + "path": "parent.custom.valveColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "TopLeftLine" + }, + "position": { + "height": 1, + "rotate": { + "angle": -25 + }, + "width": 19.5, + "x": -0.49934, + "y": 4.00261 + }, + "props": { + "style": { + "borderTopColor": "#3F3F3F", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BottomLeftLine" + }, + "position": { + "height": 1, + "rotate": { + "angle": 25 + }, + "width": 19.5, + "x": -0.49934, + "y": 12.0026 + }, + "props": { + "style": { + "borderTopColor": "#3F3F3F", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "RightLine" + }, + "position": { + "height": 16.5, + "rotate": { + "angle": 0 + }, + "width": 1, + "x": 17.5007, + "y": 0.5 + }, + "props": { + "style": { + "borderRightColor": "#3F3F3F", + "borderRightStyle": "solid", + "borderRightWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ValveLtGroup" + }, + "position": { + "height": 19, + "rotate": { + "angle": "180deg" + }, + "width": 19, + "y": 20.25 + }, + "propConfig": { + "custom.valveColor": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_Closed\") || (tag({view.params.tagPath} + \"/Sts_Horn\") \u0026\u0026 (tag({view.params.tagPath} + \"/Val_Fdbk\") \u003d 1)), \"#808080\", \r\n\tif (tag({view.params.tagPath} + \"/Sts_Closing\"), \"#808080\",\r\n\t\tif (tag({view.params.tagPath} + \"/Sts_Opening\"), \"#F0F0F0\",\r\n\t\t\tif (tag({view.params.tagPath} + \"/Sts_Opened\") || (tag({view.params.tagPath} + \"/Sts_Horn\") \u0026\u0026 (tag({view.params.tagPath} + \"/Val_Fdbk\")) \u003d 2), \"#F0F0F0\", \"#FF00FF\")\r\n\t\t)\r\n\t)\r\n)\r\n\r\n//colors \u003d {\r\n//0: \"#FF00FF\",\r\n//1: \"#808080\",\r\n//2: \"#808080\",\r\n//3: \"#F0F0F0\",\r\n//4: \"#F0F0F0\",\r\n//}\r\n//\r\n//Sts_Closing \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closing\"])[0].value\r\n//Sts_Closed \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Closed\"])[0].value\r\n//Sts_Opening \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opening\"])[0].value\r\n//Sts_Opened \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Opened\"])[0].value\r\n//Sts_Horn \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Horn\"])[0].value\r\n//Val_Fdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_Fdbk\"])[0].value\r\n//\r\n//if (Sts_Closed or (Sts_Horn and (Val_Fdbk \u003d\u003d 1))):\r\n//\tindex \u003d 1\r\n//elif (Sts_Closing):\r\n//\tindex \u003d 2\r\n//elif (Sts_Opening):\r\n//\tindex \u003d 3\r\n//elif (Sts_Opened or (Sts_Horn and (Val_Fdbk \u003d\u003d 2))):\r\n//\tindex \u003d 4\r\n" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Actuator" + }, + "position": { + "height": 19, + "rotate": { + "angle": -90 + }, + "width": 19, + "x": 8.5, + "y": 1.0057 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if (!(tag({view.params.tagPath} + \"/Inp_Sim\")), if (tag({view.params.tagPath} + \"/Out\"), \"#F0F0F0\", \"#808080\"),\r\n\tif (tag({view.params.tagPath} + \"/Cfg_FailOpen\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Closed\") || tag({view.params.tagPath} + \"/Sts_Closing\")), \"#F0F0F0\",\r\n\t\tif (!tag({view.params.tagPath} + \"/Cfg_FailOpen\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Opening\") || tag({view.params.tagPath} + \"/Sts_Opened\")), \"#F0F0F0\", \"#808080\"\r\n\t\t)\r\n\t)\r\n)\r\n\r\n//if (not Inp_Sim):\r\n//\tindex \u003d Out\r\n//elif (Cfg_FailOpen) and (Sts_Closed or Sts_Closing):\r\n//\tindex \u003d 1\r\n//elif (not (Cfg_FailOpen)) and (Sts_Opening or Sts_Opened):\r\n//\tindex \u003d 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "S" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "ValveGroup" + }, + "position": { + "height": 42, + "rotate": { + "angle": -90 + }, + "width": 37, + "x": 87.5, + "y": 17 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "FailOpen" + }, + "position": { + "height": 14, + "width": 22, + "x": 116, + "y": 31 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_FailOpen\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#808080", + "borderStyle": "none", + "borderWidth": "1px", + "color": "#808080", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "text": "FO", + "textStyle": { + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.meta.tooltip.text}", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}" + }, + "viewPath": "Plant PAX/Popups/P_ValveSO/P_ValveSO", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "root", + "tooltip": {} + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/ValveSolenoid/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/ValveSolenoid/resource.json new file mode 100644 index 0000000..d8a8cd7 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/ValveSolenoid/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "2a311645280ab9f439bd2c8712b5d3cf540540209795fb3ad2bce40316222ea4", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/ValveSolenoid/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Faceplates/ValveSolenoid/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..5b0c944500a31586b98b3628a5cbdcb7c8096061 GIT binary patch literal 1460 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 XI}?(zGuoJ&M1ZQImO`zZRrvn_4oWg4 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PIDE/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PIDE/view.json new file mode 100644 index 0000000..7e7087d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PIDE/view.json @@ -0,0 +1,933 @@ +{ + "custom": {}, + "params": { + "tagPath": "[default]Test_Tags/Flow_PID" + }, + "propConfig": { + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 440, + "width": 360 + } + }, + "root": { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "PVLegendPolygon" + }, + "position": { + "height": 8, + "width": 16, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#2A4191" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "PVLegendText" + }, + "position": { + "height": 16, + "width": 122, + "x": 19 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"PV (\" + tag({view.params.tagPath} + \"/Cfg_PVEU\") + \")\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "FdbkLegend" + }, + "position": { + "height": 22, + "width": 145 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "PVLegendPolygon" + }, + "position": { + "height": 8, + "width": 16, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#93C2E4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "PVLegendText" + }, + "position": { + "height": 16, + "width": 123, + "x": 19 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Setpoint" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "SPLegend" + }, + "position": { + "height": 22, + "width": 145, + "y": 20 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "PVLegendPolygon" + }, + "position": { + "height": 8, + "width": 16, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#55555A" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "PVLegendText" + }, + "position": { + "height": 16, + "width": 122, + "x": 19 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Output CV (\" + tag({view.params.tagPath} + \"/Cfg_CVEU\") + \")\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "OutputCVLegend" + }, + "position": { + "height": 22, + "width": 145, + "x": 146 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "PVLegendPolygon" + }, + "position": { + "height": 8, + "width": 16, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#AAD38F" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "PVLegendText" + }, + "position": { + "height": 16, + "width": 123, + "x": 19 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Target CV" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "TargetCVLegend" + }, + "position": { + "height": 22, + "width": 145, + "x": 146, + "y": 20 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TrendLegend" + }, + "position": { + "height": 48, + "width": 355 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "custom": { + "historyTags": [ + { + "aggregate": "Average", + "alias": "SP" + }, + { + "aggregate": "Average", + "alias": "PV" + } + ] + }, + "meta": { + "name": "TimeSeriesChartPVandSP" + }, + "position": { + "height": 225, + "width": 355 + }, + "propConfig": { + "custom.historyTags[0].path": { + "binding": { + "config": { + "expression": "{view.params.tagPath} + \"/Val_SP\"" + }, + "type": "expr" + } + }, + "custom.historyTags[1].path": { + "binding": { + "config": { + "expression": "{view.params.tagPath} + \"/Val_PV\"" + }, + "type": "expr" + } + }, + "props.plots[0].axes[0].max": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_PVEUMax\")" + }, + "type": "expr" + } + }, + "props.plots[0].axes[0].min": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_PVEUMin\")" + }, + "type": "expr" + } + }, + "props.series[0].data": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "5", + "mostRecentUnits": "MIN" + }, + "enableValueCache": true, + "ignoreBadQuality": false, + "polling": { + "enabled": true, + "rate": "4" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "type": "tag-history" + } + } + }, + "props": { + "enablePanZoom": false, + "plots": [ + { + "axes": [ + { + "alignment": "left", + "label": { + "font": { + "color": "", + "size": 10 + }, + "offset": 0, + "style": { + "classes": "" + }, + "text": "", + "visible": true + }, + "name": "yAxis", + "style": { + "classes": "" + }, + "tick": { + "color": "", + "count": 5, + "label": { + "font": { + "color": "", + "size": 10 + }, + "format": "Auto", + "style": { + "classes": "" + } + }, + "style": { + "classes": "" + } + }, + "width": 0 + } + ], + "markers": [], + "trends": [ + { + "axis": "yAxis", + "baselines": [], + "breakLine": true, + "columns": [ + { + "color": "", + "key": "t_stamp", + "styles": { + "highlighted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "muted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "normal": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "selected": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + } + } + }, + { + "color": "#93C2E4", + "key": "SP", + "styles": { + "highlighted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "muted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "normal": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": 2 + } + }, + "selected": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + } + } + }, + { + "color": "#475CA7", + "key": "PV", + "styles": { + "highlighted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "muted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "normal": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": 2 + } + }, + "selected": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + } + } + } + ], + "interpolation": "curveLinear", + "radius": 2, + "series": "Trend", + "stack": true, + "type": "line", + "visible": true + } + ] + } + ], + "series": [ + { + "name": "Trend" + } + ], + "timeAxis": { + "height": 15 + }, + "timeRange": { + "visible": false + }, + "xTrace": { + "visible": false + } + }, + "type": "ia.chart.timeseries" + }, + { + "custom": { + "historyTags": [ + { + "aggregate": "Average", + "alias": "CV" + }, + { + "aggregate": "Average", + "alias": "TargetCV" + } + ] + }, + "meta": { + "name": "TimeSeriesChartCV" + }, + "position": { + "height": 149, + "width": 355, + "x": 0.5, + "y": 239 + }, + "propConfig": { + "custom.historyTags[0].path": { + "binding": { + "config": { + "expression": "{view.params.tagPath} + \"/Val_CVOut\"" + }, + "type": "expr" + } + }, + "custom.historyTags[1].path": { + "binding": { + "config": { + "expression": "{view.params.tagPath} + \"/Val_CVSet\"" + }, + "type": "expr" + } + }, + "props.plots[0].axes[0].max": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVEUMax\")" + }, + "type": "expr" + } + }, + "props.plots[0].axes[0].min": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVEUMin\")" + }, + "type": "expr" + } + }, + "props.series[0].data": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "5", + "mostRecentUnits": "MIN" + }, + "enableValueCache": true, + "ignoreBadQuality": false, + "polling": { + "enabled": true, + "rate": "4" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "type": "tag-history" + } + } + }, + "props": { + "enablePanZoom": false, + "plots": [ + { + "axes": [ + { + "alignment": "left", + "label": { + "font": { + "color": "", + "size": 10 + }, + "offset": 0, + "style": { + "classes": "" + }, + "text": "", + "visible": true + }, + "name": "yAxis", + "style": { + "classes": "" + }, + "tick": { + "color": "", + "count": 5, + "label": { + "font": { + "color": "", + "size": 10 + }, + "format": "Auto", + "style": { + "classes": "" + } + }, + "style": { + "classes": "" + } + }, + "width": 0 + } + ], + "markers": [], + "trends": [ + { + "axis": "yAxis", + "baselines": [], + "breakLine": true, + "columns": [ + { + "color": "", + "key": "t_stamp", + "styles": { + "highlighted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "muted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "normal": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "selected": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + } + } + }, + { + "color": "#AAD38F", + "key": "TargetCV", + "styles": { + "highlighted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "muted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "normal": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": 2 + } + }, + "selected": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + } + } + }, + { + "color": "#55555A", + "key": "CV", + "styles": { + "highlighted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "muted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "normal": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": 2 + } + }, + "selected": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + } + } + } + ], + "interpolation": "curveLinear", + "radius": 2, + "series": "Trend", + "stack": true, + "type": "line", + "visible": true + } + ] + } + ], + "series": [ + { + "name": "Trend" + } + ], + "timeAxis": { + "height": 15 + }, + "timeRange": { + "visible": false + }, + "xTrace": { + "visible": false + } + }, + "type": "ia.chart.timeseries" + } + ], + "meta": { + "name": "Trend" + }, + "position": { + "height": 390, + "width": 355, + "x": 2.5, + "y": 45 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVCapture/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVCapture/resource.json new file mode 100644 index 0000000..ee677ac --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVCapture/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "53c6269c42b5646544a04dd30b686fbffc634bcbe5d0517ec96d8c0cd74a373c", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:18Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVCapture/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/00_Trend_Popups/Process_PVCapture/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..560f67b7ab3489d85550c4a697f55812ce690434 GIT binary patch literal 4413 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay/view.json new file mode 100644 index 0000000..ed9124d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay/view.json @@ -0,0 +1,353 @@ +{ + "custom": {}, + "params": { + "alarmName": "TransitStall", + "tagPath": "[DH1]Block 1/Process/Valve/FV_13" + }, + "propConfig": { + "params.alarmName": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 34, + "width": 291 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 34, + "width": 290 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 17, + "x": 273.9970643310547, + "y": 0.0000019073486328125 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {view.params.alarmName} + \"/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 200 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {view.params.alarmName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#A0A0A4", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GroupDoesNotHaveAlarm" + }, + "position": { + "height": 18, + "width": 200, + "x": 26, + "y": 10 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {view.params.alarmName} + \"/Cfg_Exists\"), false, true)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 30, + "width": 286 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {view.params.alarmName} + \"/Alm\")" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag(\"[default]_Settings/PlantPAXBlink\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/\" + self.view.params.alarmName+ \"/Val_Notify\"])[0].value\n\tcurrent_color \u003d self.props.style.borderColor\n#\t\n\t# id: [color1, color2]\n\tcolors \u003d {\n\t0: [\"#FFFFFF\", \"#FFFFFF\"],\n\t1: [\"#FFFFFF\", \"#000000\"],\n\t2: [\"#000000\", \"#000000\"],\n\t3: [\"#916AAD\", \"#000000\"],\n\t4: [\"#000000\", \"#000000\"],\n\t5: [\"#F5DF1B\", \"#000000\"],\n\t6: [\"#000000\", \"#000000\"],\n\t7: [\"#EC8629\", \"#000000\"],\n\t8: [\"#000000\", \"#000000\"],\n\t9: [\"#FF0000\", \"#000000\"]\n\t}\n#\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tif (current_color \u003d\u003d colors[Val_NotifyAll][0]):\n\t\t\tret_value \u003d colors[Val_NotifyAll][1]\n\t\telif (current_color \u003d\u003d colors[Val_NotifyAll][1]):\n\t\t\tret_value \u003d colors[Val_NotifyAll][0]\n\t\telse:\n\t\t\tret_value \u003d colors[Val_NotifyAll][0]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 200, + "x": 24, + "y": 8 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {view.params.alarmName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#000000", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {view.params.alarmName} + \"/Disabled\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shelved" + }, + "position": { + "height": 17, + "width": 16, + "x": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {view.params.alarmName} + \"/Shelved\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Shelved.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Suppressed" + }, + "position": { + "height": 17, + "width": 16, + "x": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {view.params.alarmName} + \"/Suppressed\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Supp.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupInhibits" + }, + "position": { + "height": 17, + "width": 56, + "x": 225.985, + "y": 6.99554 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 6 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {view.params.alarmName} + \"/Alm\")" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {view.params.alarmName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Error\"]\n\t\n\tVal_Notify \u003d value\n\t\n\tif (Val_Notify \u003e\u003d 1) and (Val_Notify \u003c\u003d 9):\n\t\tret_value \u003d images_path.format(images[Val_Notify])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupHasAlarm" + }, + "position": { + "height": 30, + "width": 286, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {view.params.alarmName} + \"/Cfg_Exists\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\talarm_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/\" + self.view.params.alarmName + \"/Cfg_Cond\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, alarm_label)\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath + \"/\" + self.view.params.alarmName}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_Alarm/P_Alarm\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_ControlVariable/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_ControlVariable/resource.json new file mode 100644 index 0000000..7bd4923 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_ControlVariable/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "7b1e0deae7aab55e56c86abeb66146eb262e08dcca10d93345553375f7c300bc", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_ControlVariable/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_ControlVariable/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..d4cccec71538d9c4fcaea36daad4d814cad65cbd GIT binary patch literal 238 zcmVFVdQ&MBb@0EL4L{r~^~ literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_LoopModeManualButton/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_LoopModeManualButton/view.json new file mode 100644 index 0000000..b911dc3 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_LoopModeManualButton/view.json @@ -0,0 +1,137 @@ +{ + "custom": {}, + "params": { + "tagPath": "[default]Test_Tags/Flow_PID" + }, + "propConfig": { + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 40, + "width": 40 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeMan_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeMan.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_StartFwd\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_StartFwd\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV/resource.json new file mode 100644 index 0000000..ea4e311 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "04eaee98127e45a8cc1751e1a16ad09ff8eb55117f093d0a9db566320b70f118", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..a9eaf9b482de9b8fa7e358f6bb9350296260c402 GIT binary patch literal 606 zcmV-k0-^nhP)Sd5iWm6uV23?T{^Q1@|w%9uU{Xhfk^&S~|mQ5lTkUOMiYaz!(mrg5$SABkoe zV{q?I;nzstM9bY!B$ek(ktbwJo6q%X6;VxOWKag4581BIr%cBs>+okt^V{6K>6p~^ zViDFUW4~8cdWU9$?%3((;9`2YzF}xGws5Lp;O+V@#1Szf1L>$-E#!K-r`l~^DYVA% zro%DW-r<$}OCVX=MPdi%U#8<{TEd0WPG6V*(lw9ODQ_!GKW{(=VW>43wtFp(8K>mG z(UTmo2U;D;r*?m1XS{%*fa1p#SC<>FyAzp`R?OQT1s`^eSszEg7KuiM&Ve#uCzYw& z?*7Q_2czfBy(g}CI-W%C*}~_{&rD5$_vviv)AxKPbD`d8>7ISJu#p^(p1c_Nk>6-G z_j_i4LK5J>17*snm`5IcGx$1N=84d>OU`XArSEsf;)#!!Z~Cs@37)+b{;-zw4Mv(; zUrNvCihn58-DXfmJPIMKL4BBtFxEM^mr_;Li?(NIpdtb>@l_0OSf&gDZKxZx$_0TH s0MgqN=@TqQ;m^JPtWD;>aYQnI0hb*al9^+i6951J07*qoM6N<$f=?MFO#lD@ literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV/view.json new file mode 100644 index 0000000..b3ed99e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV/view.json @@ -0,0 +1,253 @@ +{ + "custom": {}, + "params": { + "tagPath": "[default]Test_Tags/Flow_PID" + }, + "propConfig": { + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 48, + "width": 88 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "godsAlarmPolygon" + }, + "position": { + "height": 46, + "width": 78, + "x": 5, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_CVNotify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_CVNotify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 5 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 66, + "x": 11, + "y": 4 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_CVOut\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 56, + "x": 16, + "y": 26 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_CVEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "msi_AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_CVNotify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_CVNotify\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "msi_Exceptions" + }, + "position": { + "height": 17, + "width": 16, + "x": 70 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_PVBad\") || tag({view.params.tagPath} + \"/Sts_CVClamped\")" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_PVBad\") || tag({view.params.tagPath} + \"/Sts_CVClamped\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Clamped\",\n\t 2: \"Sts_CommBad\"\n\t}\n\t\t\t\n\tSts_PVBad \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_PVBad\"])[0].value\n\tSts_SPClamped \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_SPClamped\"])[0].value\n\n\tif (Sts_PVBad):\n\t\tindex \u003d 2 \n\telif (Sts_SPClamped):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_PV/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_PV/resource.json new file mode 100644 index 0000000..439f2bf --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_PV/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "1ed44372178b394fc48c8f3e65d905e72e226b50e331754d87e51d38b876019d", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_PV/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_PV/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..83bbe86da6bba6991ee03a1413edf3ddc6566aa4 GIT binary patch literal 682 zcmV;b0#*HqP)w{vdi-V2lU!_^dYc!UL#TcUZP0y@V8Za09$sv}a8Azr^x~+4TqH&t~5rON((d(iZRsP10n(h*su zZf0vALIgUAQ%&x;-&d#{=+n3LG3{QupFjx%3>?M-RYY{`&XyH}U``NVy zEum>Px9UIjwHwugJ}w};tTq<`Bi(%@~{mQ)fl~BLLDuj@v*g{qSrhdk-|^{ zCKTNMyb<*f&azr_dyC=Hy{Yi>lI+@`uE!x$k2x)GiWR0nB?Xvbl6DH?4_ z8YW}0`AM(*#>=%hDTTqGh7ekCy(_OCs8kW-3-MHJ>rNAKrQXnE4`hDtbvzm=R_ezV z=!9RicAfKhA8(I{;geOd#O5W#oacuKPRk$tO%-ZZL`Y7Z1PjpO}KOMCG4`*1s QP5=M^07*qoM6N<$f?cag9smFU literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_PV/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_PV/view.json new file mode 100644 index 0000000..4606a30 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_PV/view.json @@ -0,0 +1,253 @@ +{ + "custom": {}, + "params": { + "tagPath": "[default]Test_Tags/Flow_PID" + }, + "propConfig": { + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 48, + "width": 88 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "godsAlarmPolygon" + }, + "position": { + "height": 46, + "width": 78, + "x": 5, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVNotify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PVNotify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 5 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 66, + "x": 11, + "y": 4 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_PV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_PV\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 56, + "x": 16, + "y": 26 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_PVEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "msi_AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVNotify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PVNotify\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "msi_Exceptions" + }, + "position": { + "height": 17, + "width": 16, + "x": 70 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_PVBad\") || tag({view.params.tagPath} + \"/Sts_PVUncertain\")" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_PVBad\") || tag({view.params.tagPath} + \"/Sts_PVUncertain\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_CommUncertain\",\n\t 2: \"Sts_CommBad\"\n\t}\n\t\t\t\n\tSts_PVBad \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_PVBad\"])[0].value\n\tSts_PVUncertain \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_PVUncertain\"])[0].value\n\n\tif (Sts_PVBad):\n\t\tindex \u003d 2 \n\telif (Sts_PVUncertain):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP/resource.json new file mode 100644 index 0000000..21a6ca2 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "57c1d449d7a16c57c7e0febd69e0cd83ae012c4ec32493a857e8a319e7fba59e", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..83bbe86da6bba6991ee03a1413edf3ddc6566aa4 GIT binary patch literal 682 zcmV;b0#*HqP)w{vdi-V2lU!_^dYc!UL#TcUZP0y@V8Za09$sv}a8Azr^x~+4TqH&t~5rON((d(iZRsP10n(h*su zZf0vALIgUAQ%&x;-&d#{=+n3LG3{QupFjx%3>?M-RYY{`&XyH}U``NVy zEum>Px9UIjwHwugJ}w};tTq<`Bi(%@~{mQ)fl~BLLDuj@v*g{qSrhdk-|^{ zCKTNMyb<*f&azr_dyC=Hy{Yi>lI+@`uE!x$k2x)GiWR0nB?Xvbl6DH?4_ z8YW}0`AM(*#>=%hDTTqGh7ekCy(_OCs8kW-3-MHJ>rNAKrQXnE4`hDtbvzm=R_ezV z=!9RicAfKhA8(I{;geOd#O5W#oacuKPRk$tO%-ZZL`Y7Z1PjpO}KOMCG4`*1s QP5=M^07*qoM6N<$f?cag9smFU literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP/view.json new file mode 100644 index 0000000..66a476a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP/view.json @@ -0,0 +1,253 @@ +{ + "custom": {}, + "params": { + "tagPath": "[default]Test_Tags/Flow_PID" + }, + "propConfig": { + "params.tagPath": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 48, + "width": 88 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "godsAlarmPolygon" + }, + "position": { + "height": 46, + "width": 78, + "x": 5, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_CascSPNotify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_CascSPNotify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "borderBottomLeftRadius": 5, + "borderBottomRightRadius": 5, + "borderStyle": "solid", + "borderTopLeftRadius": 5, + "borderTopRightRadius": 5, + "borderWidth": 5 + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 66, + "x": 11, + "y": 4 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_SP\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_SP\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 56, + "x": 16, + "y": 26 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_PVEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "msi_AlarmIndicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_CascSPNotify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_CascSPNotify\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "msi_Exceptions" + }, + "position": { + "height": 17, + "width": 16, + "x": 70 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_PVBad\") || tag({view.params.tagPath} + \"/Sts_SPClamped\")" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_PVBad\") || tag({view.params.tagPath} + \"/Sts_SPClamped\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Clamped\",\n\t 2: \"Sts_CommBad\"\n\t}\n\t\t\t\n\tSts_PVBad \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_PVBad\"])[0].value\n\tSts_SPClamped \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_SPClamped\"])[0].value\n\n\tif (Sts_PVBad):\n\t\tindex \u003d 2 \n\telif (Sts_SPClamped):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_SPPVBarGraph/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_SPPVBarGraph/resource.json new file mode 100644 index 0000000..2c6dab8 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_SPPVBarGraph/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "eba80c369e52a2e51a8b482517d6ba47ce79001d9ea2c0f9640ada3414545d28", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_SPPVBarGraph/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_SPPVBarGraph/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..5082836e33cc96204276e667c17590a4710d7a05 GIT binary patch literal 1294 zcmV+p1@ZccP)cm7{~K1@&P*Ig!I|Fq0dmvc)QgUj>A@aMVw;XVWUx(3R6=A@i$)RT zsH33*3yOd=oN2`%EQe)x*kR)veD~eM`}2AK&-3mgH)=f+Es7GQ zXwc$snidX|I>lb;1hKbCHx%0nNoTc6c^t#AEX%N5T@cT)949n+7J7JS2%9V;9LEbA z(97}gQy01wS9%i=jKOyh!w8p`L;(&>Syz6WdAOK8%h`25eeSIBKG&fS~WXHT+A zb9dFtrV7Q>IeKUF@mF`hPo5NZ&A)$r?}wL}3XnGcfgOQh$Wo~sjmBcJIJ}}!;XRQ^ zNz86pUG-{1`)0K*OAKZUn@uv^BR~(UI9Y0=JT~GcU zUe(NM?Jtr6*V={={^%M-HpXoa1d{?`2!)Q_Zf`1;28eh(5e`Qz7Q4hG1EML0D=7x7vC;zL=OW7&C;UwiPiDKxTw`W(HS<)I^FW) zB^`F0%EThN=T9}iE;vnAz4?!Y`A1e~089oRZ(QvHpmaI|o`jqbXRze)VBk-x>3l&9 zTO*6uj?-k^iX?LYz?BQ5(H(R5m6IdCHpl*R6 zLKH)h9t?YEt}izg%?3o`{bl$N?cYWhj~&t+XH9 zG0N2m2rUm?S(ee_Kag8JbY*pjWtl2Ty#Yv~Vfyo_o)QQK!;1t!fO&(#<5VgQrhyv| z*oEUbhWU9>RiGn?elW>^fCh&D{5y+g*#n~{;<2-{yhH$kT}MYDXt-Risi~<#q0kS5 z%YZ2HYY`vbS-Yv4{^-+dAYLj5R6ZGa}H zjW<hK522N1Z>000IE0ssI2%jg1$0002pNkllihz%IDHfD0wMJBsh zpj>?x1=!!X>LZ>R6dJ=WxkG`S?zvkMaFevwm~L5?jfJdDM8HA-0B;$kCoE*Z)(dOt zNR{OU9{@96^ause^R_xRSjgG4-We3gp6r|Rh(#a*O)&5x&nnVkw-3ByyaKlg-!5b9 c_NT7Q1q%o2-QNmW<^TWy07*qoM6N<$g11h0<^TWy literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_CVDecimalPlaces/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_CVDecimalPlaces/view.json new file mode 100644 index 0000000..594a68d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_CVDecimalPlaces/view.json @@ -0,0 +1,167 @@ +{ + "custom": {}, + "params": { + "parameterName": "Cfg_PVDecPlcs", + "securityDeviceConfigHMI": true, + "tagPath": "[default]Test_Tags/P_Ain", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.parameterName": { + "paramDirection": "input", + "persistent": true + }, + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 340 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "0" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/\" + {view.params.parameterName}" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 6, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 231, + "x": 11, + "y": 8 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Number of Decimal Places for CV" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area/resource.json new file mode 100644 index 0000000..32098fd --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json" + ], + "attributes": { + "lastModificationSignature": "7e650fa91a004d34ee5e100e81e2e0baa9d1d8a900884f3fce7edfc7df3ccffd", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area/view.json new file mode 100644 index 0000000..4c053b7 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area/view.json @@ -0,0 +1,142 @@ +{ + "custom": {}, + "params": { + "securityConfigSecurity": true, + "tagPath": "[default]Test_Tags/P_Ain", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityConfigSecurity": { + "binding": { + "config": { + "expression": "\"securityConfigSecurity\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 20, + "width": 340 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 156, + "x": 11, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Area name for security:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField_0" + }, + "position": { + "height": 20, + "width": 148, + "x": 180.9 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityConfigSecurity} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_Area\"" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EU/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EU/resource.json new file mode 100644 index 0000000..d89fa19 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EU/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json" + ], + "attributes": { + "lastModificationSignature": "e0a6996824e28954521e9dc810e8012af29c7b9423451742b874b36471080a63", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EU/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EU/view.json new file mode 100644 index 0000000..cbcf138 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EU/view.json @@ -0,0 +1,121 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigHMI": true, + "tagPath": "[default]Test_Tags/P_Ain", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 20, + "width": 70 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "TextField" + }, + "position": { + "height": 20, + "width": 70 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_EU\"" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EUx/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EUx/resource.json new file mode 100644 index 0000000..f3b1d85 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EUx/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json" + ], + "attributes": { + "lastModificationSignature": "dff5b435228676d849ecdbcf91d5593c5b1dbc042af9ab594f675199ac42bba8", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EUx/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EUx/view.json new file mode 100644 index 0000000..e7d6194 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EUx/view.json @@ -0,0 +1,126 @@ +{ + "custom": {}, + "params": { + "parameterName": "Cfg_EU", + "securityDeviceConfigHMI": true, + "tagPath": "[default]Test_Tags/P_Ain", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.parameterName": { + "paramDirection": "input", + "persistent": true + }, + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 20, + "width": 70 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "TextField" + }, + "position": { + "height": 20, + "width": 70 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/\" + {view.params.parameterName}" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasFwdPermObj/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasFwdPermObj/resource.json new file mode 100644 index 0000000..e58b946 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasFwdPermObj/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "b072e348d4250a2b52f0f30ab999280f54c1502f108e968e627b1e1b463a2c74", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasFwdPermObj/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasFwdPermObj/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..b781aa004490b8321f9b1f23cd979c569a889bcd GIT binary patch literal 2048 zcmV+b2>000IE0ssI2%jg1$000NaNkl8@6A%yuX@eqyG@Gn~5}=#joO@d| z8E594sSkAZy;V;=RdsJQZCX>nIvk2^jqUrH?G^S{BsVIHaC+ z;6{z1{KA2bKqygvas=4m2QE+)Ee7DA8H9(+&t|}m6?k_1Z1Wsf^!yE0B+CFx;0|=i zbGkkyKtW&#$3XJ%N&l7(G?_3Wd9X!;5F*ah5y%rI3K&hG#Y+|<8Z-eK1<+^~f-oXI z=m7b_mno%Rn85dm00m!R788bhDg$^Ojm9EF7zG4{xpT}k90lXQp#3j-^LpVw1fZ}i z*DRf5h&vEX-cw@t#4=CBT0F_9d1Z;FpY^;ooMiZ^B_mc7$crby6rMDJ<9R{g*r&1v z@cmS|Kiz`4Ji7=y$4%}>Fhd`v1vXO)P=?7bSTPVd2h3mu(IyP6^7Hz?5fFGDyb8i2 z$Fh&lRA9d#4gS!bU+N`D$26z3(n57lOFhhU8so6WMn&|doWN~R5_#dG>f zCZdQra~|DSgEvB4UfvJKwOcYC##8xQ5W9ArLQ%AGKc2L+YrEQTAavaxF%4qb)^z5j3N3#$0Lp*#*)&~=| zQ^_F+QtFKRH?e;#$g-8r4$Wl&jq74M>3oCd!AXAX-o$7A{wYEBxrc@y zMTl|-)VN!%XHU~auJk~2{dTF;>`#Vw?QZw><{YG7?hbf{YSs#;>C}jxoTn1804m2~ z;3|T|2lwsEv&3OMH3B@i@ySsjNt8ix`t8P#lXR)pZnP?~u)kPuW|Gn4Gzm^xDiZ9D zx#~pIyUZoeF3Y{%PmW`1#S$18=~&Fl-b&PQ6-VjRl>0-}#`DG3uS(5Ed_#(Y-B? z$G^O|93h9}7Bo|CTQ1U}cYiKilv{Yf9X=z>8jaIqS8eHg^icD8#pVlrm#xIf9!R8? z!T$DTi70myxL#|w8~|=H=&P$)Q#rI6WIXJEd-S|MTKO;MixiX98J`VYYfYWKQyrr=~y)oAr$ z+_Pu2sTAJ>nJO43Pow*lyaC@8p6B1cfB)gbhnbm~52AqA+1c5*Z{Nn_aj^TyGni>n zCpMVw6=eo^J0os6L3T4IhgP%Zua7%r@ zj#+91M=2F?A?afFBxbejfBpJ}Y_&Z`i_>jQU)@HcUOXE9ZubM6qp%~IZ)B5EU^X{D zcU8F3gigRZ=69PNI%g;fbiZRGQK}%DW^e}65vTK%1dGEup$wh@MK6(zz@r)7vpZp_ znT}Pe2g98z`E_Uz>>TWVFO&*fW(4R_mo!!R2^5}c;(mhdT`%l=z-!j$^h8tmj;#X_ zI$5n@S8GOaw|(EZo2z%z$3d%k7p7miR5&1Qk6jb*z^JkVKMiLq=W^;&0GQ5eoG#%d-h7{hYAgo7pHqlEs96# z-JdM@Vlj6XiJ`~v5uX!Jrc@j2P7GO-&Npa*2&!l2)DvDnJf@>UHDJ;p-hh02E0Mca zDHKl3EBU^5QzIp-Ys5_h_d7yo=Wesf={?ZyT05hM1F0UsMsce*Qw3zlox<{pMk6En=5hZwonXXN$uZ}pneYK@h`U1$}(qgGfZWx_lw)<>Sq6R*1kCQ>gW(`u4 z2ajIsae24*b%j>Tvu-TibC3LJ<4w70(H3uW_}m`vp=+W^|#5d2SK e|I7Vln12D17O+bMcIEN_0000000IE0ssI2%jg1$0003BNkl#nk>+3mStfWmSsshet5q*AeH)YgB?Eu`D{ku>KdOM2SByHmF^Kh%2`UT z8th-__{C1Q!`$E~iqPV2y`m`cJf|+n1gj#>I3bFzJ$#%eKzdA!s6Y8Zd5Caqs_U(% z;9;3hjvL)#UDch?ZT*Th4jW+{>2SLC>+;!BF!2jY!}q7du@e9kL*G=@t%twe@i+A+ V>ex2R=8FIT002ovPDHLkV1n6blga=9 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasIntlkObj/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasIntlkObj/view.json new file mode 100644 index 0000000..f4f1146 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasIntlkObj/view.json @@ -0,0 +1,213 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigHMI": true, + "tagPath": "[default]Test_Tags/P_DOut", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 340 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Enable navigation to interlock object" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasIntlkObj\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasIntlkObj\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasPermObj/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasPermObj/resource.json new file mode 100644 index 0000000..09434c8 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasPermObj/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "994baa630726b55f3b40ab6ca8fe5ce855360a37ed1b6719ced82eef375724f8", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasPermObj/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasPermObj/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..831fc410281c436f021bbf28c96ede6c15122372 GIT binary patch literal 307 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 mCEB9i(`iGZ)Ft&!AoynrNsCj?eygqk0000+-O literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_RateFiltTC/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_RateFiltTC/view.json new file mode 100644 index 0000000..6e0b60f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_RateFiltTC/view.json @@ -0,0 +1,162 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_Ain", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 39, + "width": 340 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 256, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_FiltTC\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Markdown" + }, + "position": { + "height": 37, + "width": 245 + }, + "props": { + "markdown": { + "escapeHtml": false + }, + "source": "\u003cp\u003ePV Filter Time Constant (sec)\u003cbr\u003e0 \u003d unfiltered\u003c/p\u003e", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.markdown" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack/resource.json new file mode 100644 index 0000000..4f0b27d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "2ae0d45442d5ac33c993883dee78d1dfeb1e2adae9926dcbea734a52381944ad", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..67018255503fe25e071f4a0f71e935ec90e669e8 GIT binary patch literal 267 zcmV+m0rdWfP)000IE0ssI2%jg1$0002eNklPzFz4LN_pSpwyZS5of|XKcz9$EE_CxcI$h?1lWo(R-_3_%aMZ_=+8Dmitu>n2C zaqRnkmSuFuqx(IHfYH%$22p~rlQWV^Nz?@)wML=&{`>R>2SET&?xU5aX_6#V1r34m z(L@5e%jr;5oC4?Q1X99&yV(^-3LNapdsF~5wl4F!IRglao2o3U=F#mRxdG7b>)b6o RJE{Nx002ovPDHLkV1fktboT%N literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack/view.json new file mode 100644 index 0000000..96ec9ce --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack/view.json @@ -0,0 +1,213 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/SC_01", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 340 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_SetTrack\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Bumpless Program/Operator transition" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_SetTrack\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SetTrack\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrackOvrdHand/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrackOvrdHand/resource.json new file mode 100644 index 0000000..9651fac --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrackOvrdHand/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "730e8531781932bd531899e3e1209fcc82b7d0a7a8482a0edd2184a291a539f8", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrackOvrdHand/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrackOvrdHand/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..c719e948f0e21be30c4202e48db14107b662855b GIT binary patch literal 2004 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 Y0ObSR@oKd>K>z>%07*qoM6N<$f*vwm7XSbN literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFullStall/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFullStall/view.json new file mode 100644 index 0000000..4987342 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFullStall/view.json @@ -0,0 +1,213 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_ValveSO", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 280 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ShedOnFullStall\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 250, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "On Full Stall" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_ShedOnFullStall\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ShedOnFullStall\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 274, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault/resource.json new file mode 100644 index 0000000..4d35e26 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "f727e4e30cca705e64a3c337189734472d500924cbec439db3fe5b46c0b85c25", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..305d7a17727701657f3f1863c927ed67f3f9c4c2 GIT binary patch literal 227 zcmV<90382`P)J-pS&>qJaTP*04am! z8*&ZCn0X%Aq)eL+$Tfrz=6U3kGOe(_ynpSTXsrRD?|a4==bR;Y6+(1fr*`Pvbb@ d;l0`Iy93Bp-3$jpSt0-c002ovPDHLkV1n3@Thagk literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault/view.json new file mode 100644 index 0000000..ea3197f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault/view.json @@ -0,0 +1,213 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/SC_01", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 280 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ShedOnIOFault\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 250, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "On I/O Fault" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_ShedOnIOFault\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ShedOnIOFault\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 274, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnInterlockTrip/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnInterlockTrip/resource.json new file mode 100644 index 0000000..d0d6e7a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnInterlockTrip/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "8dbb766dedaa7bd440103b6a5a3daccd61676c731847eb8361d28f89c78e3d51", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnInterlockTrip/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnInterlockTrip/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..6ebaa91185ea3afa18d7bf77affe4669c0049b93 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^O+d`X!2~2594@8+sd`Tr$B>G+x0ejL8x#asAN>1o zpOdv|gJOW9k-q-gg;oYqI>LX{D(`)ZGZnWFxVXS$;gt{Eomm(7&Xzr#f4F(_8J27Y z2C1XW*Oc^3?nbcl`0Dd0-HT6Ak7%AU$t^JBEtlAyzoAME|6RG2S^@Nzp&Qe zoJ;fBHOkZK3)UJ!2x&gMM|t`|2U}idA6ruhVy*SwGsZaQLI@t=ux;C>X_Qjf#O_-; z&tv()=jm%W8vu51OzGCwKq-YM%Z=;0PD+Wtja4O!PQ(52l)-3ihV8ibU~)$H<7Mo% eaTDa93-)kEvBQ>D_0000000IE0ssI2%jg1$000J9Nkl5}D;GA~snDIZAVs!VEE$OeIm?yo+E$iS0gGGH zYlag<;Ky3_T*`p#Cm?V<&vI+Y)z4UzHT<#o>eC01K91vW`*j=(#WSUcB`gB~Of0*V zVU9VNf_}4nF_@BMvOZuTcFrNfZRCNaW5Z z+cP2$yGH4_v!c1R2uA^8O90APerxg5 z^!^5<<6i{7Dlh|GYs21W`iUINQtCMWJSRDYT=hLffG86CzPS0*L zDW}05$(~eKf;gWH;t{;k8G+GW-CxJB$m!KMmq1!~?9HG#oXt6o+wgRSEac;neJlsG z_RINLh5|a{VSBiC^Dyp)(a7NL@x%D$X13t@0!Ljtj&Q0w7+<#vCcV{Z zdhb3i)U%k*=FuG}v$byAq4frj)$iXHFYZgI;lLC?3`#VA#x8D?Xz-m{b#Xfhn^ZO= z(zqN|i_t(V?DG4^4{(lqB(|@y;jW_{XY%f%Vm!1sjR*c%A)krhjWIp#hy6Ca!COj& zZHel9Sko8~;1hFyt=suNN?sI>?G_($q&dvDM%j@1jltd-PQd1Px~gdLOuv@ZX>Ewt z>?F$lM&?jsMZ6{lQM+rWclH#qpjV;A2JQUro&pW}6o$}hv*}byc7wuBlrNik_5NWr zOO5&sG#>H$Z3NX8M3KJl{`0%P$I9JG+;6aZ4;9*Ufz%%SYzrkvlbKz=`;#FwTfiOD zqmFf2hu3R%XRCvJ;`I-TYNIc2`A?JlS&T-bUa!~x0{E{2gKr^^J6@}gd}O_wcIjWd zQu|y+b2Q^oy?AGI+H{8FSW;(*fOr~Ntk}AVN1Z2+U~QeN5MQTK#y!rz?Yv183o7JT z?w~?Q{ikoftz65iRS5dbg((nj^zm!~IePIApxxXF)uNMR{`<9`|__}zf>U`c)Q>> z;zK|k1hQxEFYinqn?@a@`ja+gv$>n&Sw0oX51&IrOp^7*q0wJX5jft0zA?Y`83rp< z6h%;7ilVM04FBKw-wEcT0cH0Ax;$=^RWVUh}Tl zosm(q+8Xv*bV;%jP$@kDd~Z)t9NZ*aCI=GfjBZbIc%{*_92}lcKxxE&Ii}P(V*&dw z{^VV+d1Nx8cx>`8PbI?95~Wiq130$3_tTi(G_&R(-xz5TUY$1lng}Zgk6bm4I6|mh zZ=_n6iMTi3z7s_j6nH+YsL|A*d15oUeLgFasSR2ss}aaY-t6h@Jh%H^iH3Y8Z+duE zI8bT81e<;7ZY90{)_}ULyKZ85exg$ul7-5oSB;j)QV6jI3oN`xKDyrSg!5<3d_-q) z<7x8a!(+2fdaPOtQL3lV9j*HgdoVy bz6AaSGezn;7ppr~00000NkvXXu0mjfw|Xzv literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SimFdbkT/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SimFdbkT/view.json new file mode 100644 index 0000000..41bfe8d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SimFdbkT/view.json @@ -0,0 +1,228 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_DOut", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 340 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_SimFdbkT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 231, + "x": 11, + "y": 8 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Feedback delay for loopback test or when\nfeedback not used (sec)" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 26, + "width": 81, + "x": 1, + "y": 0.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 72, + "y": -1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_1" + }, + "position": { + "height": 27, + "width": 87, + "x": 251, + "y": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Sim\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_StartHornT/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_StartHornT/resource.json new file mode 100644 index 0000000..a79ad7f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_StartHornT/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "6a4ac8c80bdc3000b199321d0ec02992b87141e00d4c98dce8013453829ab245", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_StartHornT/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_StartHornT/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..e68c5744a2b4e3356e2800377c8f36847f23dac0 GIT binary patch literal 1675 zcmV;626Xv}P)000IE0ssI2%jg1$000J3Nkl5}h*d@a-3z}Xom-J%6ELi}mD$Ob?1hIl3C^nW` zGOzZPPg&E960&lscm=8iEMc`=ITT$D6DbiUm|KDLq*g2Kd!R&t4S? zi^Y7QmM5~W9r=IDcdshT@`6A=4pJl@PsF3KRHIsQgh}S5fs&-QP7>IcCJMa57B7f2 zL-T?x@!ZNT^3U{eU{wWhD+P$-MNt9*IbMPYo_`@of>ffam2+O|kyAKk`Ijh8fFQ`r z@hhZien_P&L#pJ9lf^>*?CwcTBT|KYDph|WUID8=_ncf7p|5O{~_!- zmom!#eE@hU@pU8aIaWok9Ifj4Wqk;(Tg~*JiGu$&@)f~6{WLyHAiw{5rgG&4n zchLo=|C->J!T9^-3xXA4IpxT4VZG-OzE8jH2Fc1PzP@=JKuo`G?2&;JjVUx8Hug=|(w<|dOQ(CEydD9IvtGq$ zGK3JX{xEnysJ+|RiV~sCO=Eu!PO(?b?0qm`v2^G5>cG4Uu$_JX((Yba7&AxQNp|*3;8uW`n$>G=;sX=PHu0l7pXza`qAx= z?CLZ`SsAjwCb-+}-rn9ezkz&BFfc5#W0%H4!SgY$8UjT5G!}_>tPZrl|~-(-U{wh|4J`&4kB=DKOOj{<2nuNd?`jvBC|MAe@OtKjzU*ML8L@ zHxhXlhF3b!|~TPPGL zRoZ{I{4c?x%un1}YX=&5UsDMtQM@thWvoF=WG1!`{^9V(W;sMqtb8}*)u%KOFzXyK zs$O)Q*!_OTF+y_i%<|lTs*{o6?(tqOoAo&CexJ>X<_5P#quv}1+y1p?9}lm$-IyqH zi0xye-Le{YLPS*m;oZ$ddH>q^h*o0?J1raT(_T6A(O|{BmUV-_-z@GKj)?Gy<~aP= zuN{QrInuRlarvx!NWRv}ByjBVvVb1i+|kVW0}VHUI3HYF?beVVF`eKem?{r0ih|#& zt>1I-Z1=Cv%=&%oG}otUc83Dnx1bNxmd+YtgqcfYg$o-C+A_C;m|NF=6e2-ux;O8n z2pr4%_w+6wrq%9bTkY_U{hk$1F*i|ZraXt<0A@03V^@EAf?4(LhqK%71Lm8^e*ka{ V@v792rfmQK002ovPDHLkV1f+7JL&)c literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_StartHornT/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_StartHornT/view.json new file mode 100644 index 0000000..f43617d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_StartHornT/view.json @@ -0,0 +1,162 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_DOut", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 340 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_StartHornT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 231, + "x": 11, + "y": 8 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Time to sound audible on command state\nchange (sec) (0\u003ddisabled)" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets/resource.json new file mode 100644 index 0000000..6656f69 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "4d3f2fe1ab33496a6fa4d14c387499d94626e253755043c752885ed7800fd57f", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..3869e31ce9d5eb62d83a34699f2b1b72fdf4def6 GIT binary patch literal 271 zcmV+q0r38bP)000IE0ssI2%jg1$0002iNkl8Smop-KKeV zV7Dz(gBfFHe9&rkboW=L1}mk^_@LA5=y!fGG45)#Et?(vk-Itz@|varfG`XRAyE_& z4R3Mn`#z-riq$?Gc3a)yg_>jA)o V>*`~L#3%p&002ovPDHLkV1lIkb{YTx literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets/view.json new file mode 100644 index 0000000..a9537ea --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets/view.json @@ -0,0 +1,213 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_DOut", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 340 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_XCmdResets\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "External command resets fault" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_XCmdResets\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_XCmdResets\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag/resource.json new file mode 100644 index 0000000..ca5ff9a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "0c34d929a0029925ebb033b807900c756a8a0c271c668b877864698d17f6bbd4", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..088f0d049f798682c77badc79e4565fc5bc9a83b GIT binary patch literal 91 zcmeAS@N?(olHy`uVBq!ia0vp^3xHUHg9%7}GD%DVQc9jKjv*CsZx1r^0(plPeD}}g fGhYB?!oWUWT?q!pN3nZ0fkZrA{an^LB{Ts5JX913 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag/view.json new file mode 100644 index 0000000..f35bcc1 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag/view.json @@ -0,0 +1,245 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigHMI": true, + "tagPath": "[default]Test_Tags/P_Ain", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 68, + "width": 340 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 21, + "width": 79, + "x": 11, + "y": 22.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Label:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_0" + }, + "position": { + "height": 21, + "width": 79, + "x": 11, + "y": 44.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Tag:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "height": 20, + "width": 318, + "x": 11, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_Desc\"" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + }, + { + "meta": { + "name": "TextField_0" + }, + "position": { + "height": 20, + "width": 171.61999999999998, + "x": 156.9, + "y": 23 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_Label\"" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + }, + { + "meta": { + "name": "TextField_1" + }, + "position": { + "height": 20, + "width": 171.61999999999998, + "x": 156.9, + "y": 45 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_Tag\"" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces/resource.json new file mode 100644 index 0000000..7f86a39 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "fdbc7afe71de0500b2992fb7514b46fe83a0ee3f5eb921ddfb2d08ceecbba8d3", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..251211ec531a56758dd6887edea3bc5c37c1fc5c GIT binary patch literal 278 zcmV+x0qOpUP)000IE0ssI2%jg1$0002pNkllihz%IDHfD0wMJBsh zpj>?x1=!!X>LZ>R6dJ=WxkG`S?zvkMaFevwm~L5?jfJdDM8HA-0B;$kCoE*Z)(dOt zNR{OU9{@96^ause^R_xRSjgG4-We3gp6r|Rh(#a*O)&5x&nnVkw-3ByyaKlg-!5b9 c_NT7Q1q%o2-QNmW<^TWy07*qoM6N<$g11h0<^TWy literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces/view.json new file mode 100644 index 0000000..9403584 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces/view.json @@ -0,0 +1,167 @@ +{ + "custom": {}, + "params": { + "parameterName": "Cfg_PVDecPlcs", + "securityDeviceConfigHMI": true, + "tagPath": "[default]Test_Tags/P_Ain", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.parameterName": { + "paramDirection": "input", + "persistent": true + }, + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 340 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "0" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/\" + {view.params.parameterName}" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 6, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 231, + "x": 11, + "y": 8 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Number of Decimal Places for PV" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_ProgOperKeep/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_ProgOperKeep/resource.json new file mode 100644 index 0000000..66e5b09 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_ProgOperKeep/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "2dd4bc8cc2fe09b15704dce4cd9131f15efe91c8af18701619e1a65bc042fef6", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_ProgOperKeep/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_ProgOperKeep/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..8b133b5717e39287608490ca2201ba33583f32cd GIT binary patch literal 409 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_ExtStopPrio/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_ExtStopPrio/view.json new file mode 100644 index 0000000..2775908 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_ExtStopPrio/view.json @@ -0,0 +1,213 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_VSD", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 340 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ExtStopPrio\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "External \u0027Stop\u0027 command always available" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_ExtStopPrio\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ExtStopPrio\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasJog/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasJog/resource.json new file mode 100644 index 0000000..6864fd9 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasJog/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "aed76d79340de357e98735afc7be77e88f082999f1b9e14586ddbb4aef3082c3", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasJog/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasJog/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..f61c60dd4f16d5c8a8949c21eb0bef4b593974d0 GIT binary patch literal 245 zcmV000IE0ssI2%jg1$0002INkl0kn65gxlXfvBVq5DX@w*89>wt8QMVBS5h=VLG zbAydBVLo{}ahe^<++b^Mm`_G0PWQAnPn(8qOYN~0T5AAcjB(D(vg8hKaZL!3Qeux6 z@Av=p!{VHIfbT5C>1TR?5q_*ay7>lEN{2T%@c68%N(h1f6^9_K+Ce{bkK5_o7+i$> vVN_Gsjq+!UK3L;w@2b6Ar`qnT+9bRHEMDxfZN+o$00000NkvXXu0mjfc_(db literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasJog/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasJog/view.json new file mode 100644 index 0000000..2b05207 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasJog/view.json @@ -0,0 +1,213 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_VSD", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 340 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasJog\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Motor can be jogged" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasJog\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasJog\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasReverse/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasReverse/resource.json new file mode 100644 index 0000000..5a615db --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasReverse/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "7994b4263c8a50c279c055fbc67c873a9c044af71ffdf66cb7e73eeb9f8f8bb1", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasReverse/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasReverse/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..59bbc97df28b1c499500831f54e227c0bf67dabb GIT binary patch literal 198 zcmV;%06G7OP)000IE0ssI2%jg1$0001uNkl1+n0000007*qoM6N<$f*l}H AZU6uP literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasReverse/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasReverse/view.json new file mode 100644 index 0000000..624e23e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasReverse/view.json @@ -0,0 +1,213 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_VSD", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 340 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasReverse\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Drive can run reverse" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasReverse\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasReverse\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasRunFdbk/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasRunFdbk/resource.json new file mode 100644 index 0000000..8ccfb5c --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasRunFdbk/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "13593b0ebb239a1776b84eaa09ac27f516949a10277aa867d105b6dc52c1c263", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasRunFdbk/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasRunFdbk/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..06a38853e3c60f3372489ad38fc188c9ddafa60c GIT binary patch literal 249 zcmV000IE0ssI2%jg1$0002MNklcEP*_N#G#I0y>0804WC}Bln!sz39Rz+E z8!V-q=DoXNr@^X>4eq*bn)h16PCxRmK^Z30S>3r{y`s9VwbpSQGsco6VFuo&X-WtY zLSTc(OH&p&apQ*1e2E*0wwpmO?hkP z|MGX?2LPzzbU2sQG2dRQx7DGMMV?000IE0ssI2%jg1$000E~NklbJJhF~$UASr~)EE`-20Ypc`54mI`^Qrz*_Jkw1~Ch+320oyPH8 zsXCra1yN#$9m6kAv0Sx#NfnB%>G(E7E}}#d>6xUc5|bi{(?S!LLaoKOtsSe6QB-=+ zCU7i8!MJ*vibqfKnmoaI)K6w>?6AD~$~l!(MO8|%fO&V{ZnnhIEs!4f4?aPy=lXjL z{HucnXtEsfeEH?8>zP=1I@>X##-aEQu~4vWLN zYcR%(^=!muak*{lYkPq_5SV^t>B}GSvuZhZ6bWXX)|GwtB8qu+HJraHC0tvG!}Qk+ zA_wJB@9HPJSQOe7SzdaHdP}W-HA9$8$e!`JFMgJbA8cAtO-bU!Ww5ttXlTjfv!#cs z*o-@Znwsf;!)3FWUs-&3me&vQhnab7TwPt&YPI?!;DZ8-TsmgK!cn)=?heJgueVC= zVc|IHI6$8M^le{N8!7AO-#mkiL<9Cvu|^!Ok7P9-LQjV3B$puk`9Q>R3cRbBjUcK? z5{q=yw|T^eLznEY?Du)C!k1wJ_a&TW;}l-5tC(#XB;f@dRw z1^uaj+c=i)qmXzY?=*eCvb~QO*0E$&nHM-10oUDT&WWPwVmElO_T7rvfovUyBF-)I zc&=yh&SS9ECvarQu0zZ5jmnfm=xeROvvKb@O5iw=%D(x}3JgamTv$-uOeWLP(f-)@ zpujR8!%VGy@5K*aN2yLcXez#`Z9HFdVZODO%jXxA`@kC`{PE~nB}$jC--l+inu^Vlp?{TeS}s1rFlDVj&$sT^`hAJ}xy1 zF(=~jpxZ_VQ3Qq}PV9gF=1pIgV-ehcin)!Qv2Y&+!>NlLVYJwTvDA=e;lLKhHG{=X zD^jD74>%ChcBpiIYTeuk1fw?-E^}nxM(wBhra-qX8_p3Aw}ev5k~`LeycZcJ p+4%aC6d1Arz1!>c<_i4i_#4a;Fy7qTPIUkP002ovPDHLkV1fY{lP&-N literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_MaxJogT/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_MaxJogT/view.json new file mode 100644 index 0000000..2f13685 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_MaxJogT/view.json @@ -0,0 +1,162 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_VSD", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 340 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxJogT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 230, + "x": 11, + "y": 8 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Maximum jog time (sec)\n0 \u003d unlimited" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_OperStopPrio/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_OperStopPrio/resource.json new file mode 100644 index 0000000..7f6eeb4 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_OperStopPrio/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "4c9564568f4208459cb25a6092078a33ae17979fb087b54cdfd64bcc97e84a7e", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_OperStopPrio/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_OperStopPrio/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..15f954b7dbda7c581f94119bd8cbc4985ba7bab5 GIT binary patch literal 272 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 V@v792rfmQK002ovPDHLkV1f+7JL&)c literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_StartHornT/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_StartHornT/view.json new file mode 100644 index 0000000..7cb04b8 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_StartHornT/view.json @@ -0,0 +1,162 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_DOut", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 32, + "width": 340 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_StartHornT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 231, + "x": 11, + "y": 8 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Time to sound audible on command start\n(sec) (0\u003ddisabled)" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_PVDecimalPlaces/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_PVDecimalPlaces/resource.json new file mode 100644 index 0000000..50de966 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_PVDecimalPlaces/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "f6f09866a645e5ded99465b47b629eebc585bfb38874668738f90427dbdc32f7", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_PVDecimalPlaces/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_PVDecimalPlaces/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..499e13f59f1a57dd2de3bd3fbbf0509155c7dd43 GIT binary patch literal 83 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_StartStopFailTimers/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_StartStopFailTimers/view.json new file mode 100644 index 0000000..0f8a59f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_StartStopFailTimers/view.json @@ -0,0 +1,242 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigFailTimers": true, + "tagPath": "[default]Test_Tags/P_VSD", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigFailTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigFailTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 74, + "width": 340 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 230, + "x": 11, + "y": 8 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Time after \u0027Start\u0027 for feedback before fault (sec)" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigFailTimers} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_FailToStartT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Label_0" + }, + "position": { + "height": 16, + "width": 230, + "x": 11, + "y": 44 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Time after \u0027Stop\u0027 for feedback before fault (sec)" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericInput_0" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 43 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigFailTimers} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_FailToStopT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_Cfg_StartHornT/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_Cfg_StartHornT/resource.json new file mode 100644 index 0000000..7bdc24d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_Cfg_StartHornT/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "1e3326ff7fb477278803cf062a94951001f9dc696bce4a0a5e0dfbd97a44267b", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_Cfg_StartHornT/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_Cfg_StartHornT/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..7fd12e03577be0e83d1c6cfd8d12943439de2893 GIT binary patch literal 1772 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

2r)C5MGRJE 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_HasLimitSwitch/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_HasLimitSwitch/view.json new file mode 100644 index 0000000..630db04 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_HasLimitSwitch/view.json @@ -0,0 +1,711 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_ValveSO", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 127, + "width": 340 + } + }, + "root": { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasClosedLS\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Valve has Closed Limit Switch" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasClosedLS\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasClosedLS\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasClosedLS" + }, + "position": { + "height": 32, + "width": 340 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOpenLS\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Valve has Open Limit Switch" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasOpenLS\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasOpenLS\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasOpenLS" + }, + "position": { + "height": 32, + "width": 340, + "y": 32 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label0" + }, + "position": { + "height": 16, + "width": 249, + "x": 6.5, + "y": 67 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Fault when both feedback inputs are" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_LSFail\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 3, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "ON" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_LSFail\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_LSFail_On" + }, + "position": { + "height": 35, + "width": 161, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_LSFail\"), false, true)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "OFF" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_LSFail\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_LSFail_Off" + }, + "position": { + "height": 35, + "width": 161, + "x": 168.50743865966797, + "y": 3.010406494140625 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Cfg_FdbkFail" + }, + "position": { + "height": 42, + "width": 340, + "x": 2, + "y": 83 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_ValveTimers/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_ValveTimers/resource.json new file mode 100644 index 0000000..e7ff0b8 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_ValveTimers/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "336bc3bc7813b4c8166b77bde23e97c0fb5dfbba07ca24d5abae201d7a592ef7", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_ValveTimers/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_ValveTimers/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..2fc9b79a0140546dcef6cc93299fa7cdaac89307 GIT binary patch literal 6398 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 M07*qoM6N<$f~tE`Bme*a literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_ValveTimers/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_ValveTimers/view.json new file mode 100644 index 0000000..1771f0e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_ValveTimers/view.json @@ -0,0 +1,242 @@ +{ + "custom": {}, + "params": { + "securityDeviceConfigFailTimers": true, + "tagPath": "[default]Test_Tags/P_ValveSO", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityDeviceConfigFailTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigFailTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 84, + "width": 340 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 241, + "x": 11, + "y": 8 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Time after command with no motion before\nFull Stall fault (sec)" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigFailTimers} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_FullStallT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Label_0" + }, + "position": { + "height": 16, + "width": 245, + "x": 11, + "y": 51 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Time after command to reach position before\nTransit Stall fault (sec)" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericInput_0" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 50 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigFailTimers} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_TransitStallT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg/resource.json new file mode 100644 index 0000000..0d3ff28 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json" + ], + "attributes": { + "lastModificationSignature": "8a0daef410d8f76506d4e7c5c77447daa8496b5c002d9f9625e9f8a886752689", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg/view.json new file mode 100644 index 0000000..985b5e1 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg/view.json @@ -0,0 +1,502 @@ +{ + "custom": {}, + "params": { + "interlockNumber": 0, + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_Motor_Intlk", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.interlockNumber": { + "paramDirection": "input", + "persistent": true + }, + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 20, + "width": 322 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "TextField_0" + }, + "position": { + "height": 20, + "width": 170, + "x": 0.9000000000000004 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CondTxt/\" + {view.params.interlockNumber}" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "(tag({view.params.tagPath} + \"/Cfg_Bypassable\") \u0026 pow(2, {view.params.interlockNumber})) \u003d pow(2, {view.params.interlockNumber})" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tbit_check \u003d 2**self.view.params.interlockNumber\n\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Bypassable\"])[0].value\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_Bypassable\", value - bit_check)\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_Bypassable\", value + bit_check)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 18, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "CanBypass" + }, + "position": { + "height": 20, + "width": 20, + "x": 249 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 16, + "x": -1, + "y": -1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_OKState\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tbit_check \u003d 2**self.view.params.interlockNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tret_value \u003d \"1\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "8pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px", + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tbit_check \u003d 2**self.view.params.interlockNumber\n\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_OKState\"])[0].value\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_OKState\", value - bit_check)\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_OKState\", value + bit_check)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 18, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "OkState" + }, + "position": { + "height": 20, + "width": 20, + "x": 201 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "(tag({view.params.tagPath} + \"/Cfg_Latched\") \u0026 pow(2, {view.params.interlockNumber})) \u003d pow(2, {view.params.interlockNumber})" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tbit_check \u003d 2**self.view.params.interlockNumber\n\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Latched\"])[0].value\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_Latched\", value - bit_check)\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_Latched\", value + bit_check)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 18, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Latched" + }, + "position": { + "height": 20, + "width": 20, + "x": 297 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_PermissiveCfg/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_PermissiveCfg/resource.json new file mode 100644 index 0000000..4d43283 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_PermissiveCfg/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json" + ], + "attributes": { + "lastModificationSignature": "643642166dece3982226d90e7400c26226539c498bed4909562862f02a723214", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_PermissiveCfg/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_PermissiveCfg/view.json new file mode 100644 index 0000000..91e4d8a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_PermissiveCfg/view.json @@ -0,0 +1,372 @@ +{ + "custom": {}, + "params": { + "permissiveNumber": 0, + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_Motor_Perm", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.permissiveNumber": { + "paramDirection": "input", + "persistent": true + }, + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 20, + "width": 269 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "TextField_0" + }, + "position": { + "height": 20, + "width": 170, + "x": 0.9000000000000004 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CondTxt/\" + {view.params.permissiveNumber}" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "(tag({view.params.tagPath} + \"/Cfg_Bypassable\") \u0026 pow(2, {view.params.permissiveNumber})) \u003d pow(2, {view.params.permissiveNumber})" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tbit_check \u003d 2**self.view.params.permissiveNumber\n\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Bypassable\"])[0].value\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_Bypassable\", value - bit_check)\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_Bypassable\", value + bit_check)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 18, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "CanBypass" + }, + "position": { + "height": 20, + "width": 20, + "x": 248 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 16, + "x": -1, + "y": -1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_OKState\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tbit_check \u003d 2**self.view.params.permissiveNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tret_value \u003d \"1\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "8pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px", + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tbit_check \u003d 2**self.view.params.permissiveNumber\n\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_OKState\"])[0].value\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_OKState\", value - bit_check)\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_OKState\", value + bit_check)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 18, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "OkState" + }, + "position": { + "height": 20, + "width": 20, + "x": 201 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "root" + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn/resource.json new file mode 100644 index 0000000..cf77ad4 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "f7fd178786733555f3eabf5b107bf5add6cb510c334408f7c5dadd16a098d652", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..dbf4860af25056d2a7459d8424238062cac84252 GIT binary patch literal 6668 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn/view.json new file mode 100644 index 0000000..f21e24f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn/view.json @@ -0,0 +1,7142 @@ +{ + "custom": { + "cmdSrcTitle": "PT_11 - PT_11", + "popupVersion": " 1.0 " + }, + "params": { + "securityBypassFeedback": true, + "securityBypassInterlocks": true, + "securityDeviceConfigLimits": true, + "securityDeviceConfigThresholds": true, + "securityEnableSimulation": true, + "securityEnterOperSettings": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 3, + "tagPath": "[DH1]Block 1/Process/Sensor/PT_11", + "userHasBasic": true + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + }, + "persistent": true + }, + "custom.popupVersion": { + "persistent": true + }, + "params.securityBypassFeedback": { + "binding": { + "config": { + "expression": "\"securityBypassFeedback\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityBypassInterlocks": { + "binding": { + "config": { + "expression": "\"securityBypassInterlocks\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigLimits": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigLimits\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigThresholds": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigThresholds\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnterOperSettings": { + "binding": { + "config": { + "expression": "\"securityEnterOperSettings\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 392 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 37, + "width": 39, + "y": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab4" + }, + "position": { + "height": 37, + "width": 39, + "y": 120 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "StatusText_Ready" + }, + "position": { + "height": 16, + "width": 42, + "x": 6, + "y": 2 + }, + "props": { + "text": "Ready", + "textStyle": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "Lo" + }, + "meta": { + "name": "AlarmNotify_Lo" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "Hi" + }, + "meta": { + "name": "AlarmNotify_Hi" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "LoLo" + }, + "meta": { + "name": "AlarmNotify_LoLo" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "HiHi" + }, + "meta": { + "name": "AlarmNotify_HiHi" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "Fail" + }, + "meta": { + "name": "AlarmNotify_Fail" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmNotices" + }, + "position": { + "height": 20, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AbnormalSeparatorLine" + }, + "position": { + "height": 2, + "width": 352, + "y": 20 + }, + "props": { + "style": { + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content1" + }, + "position": { + "height": 45, + "width": 403, + "x": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "custom": { + "tagExpression": [ + { + "aggregate": "Average", + "alias": "Val" + } + ] + }, + "meta": { + "name": "Sparkline" + }, + "position": { + "height": 177, + "width": 162, + "x": 10, + "y": 7 + }, + "propConfig": { + "custom.tagExpression[0].path": { + "binding": { + "config": { + "expression": "{view.params.tagPath} + \"/Val\"" + }, + "type": "expr" + } + }, + "props.points": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "1", + "mostRecentUnits": "MIN" + }, + "enableValueCache": true, + "ignoreBadQuality": false, + "polling": { + "enabled": true, + "rate": "1" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.tagExpression}", + "valueFormat": "DATASET" + }, + "transforms": [ + { + "code": "\tret_value \u003d value.getColumnAsList(1)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "tag-history" + } + }, + "props.range.high": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_PVEUMax\")" + }, + "type": "expr" + } + }, + "props.range.low": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_PVEUMin\")" + }, + "type": "expr" + } + } + }, + "props": { + "color": "#475CA7", + "marker": { + "first": { + "size": 0 + }, + "high": { + "size": 0 + }, + "last": { + "size": 0 + }, + "low": { + "size": 0 + } + }, + "range": {}, + "width": 1 + }, + "type": "ia.display.sparkline" + }, + { + "children": [ + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16, + "x": 12, + "y": 88 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/SrcQ\") \u003d 19, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "CommBad" + }, + "position": { + "height": 17, + "width": 17, + "x": 68, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0 \n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_Simulated\",\n\t2: \"Sts_CommUncertain\",\n\t3: \"Sts_CommBad\",\n\t}\n\t\n\tSrcQ3 \u003d ((value \u0026 (2**3)) \u003d\u003d (2**3))\n\tSrcQ4 \u003d ((value \u0026 (2**4)) \u003d\u003d (2**4))\n\tSrcQ5 \u003d ((value \u0026 (2**5)) \u003d\u003d (2**5))\n\t\n\tif (SrcQ5):\n\t\tindex \u003d 3 \n\telif (SrcQ4):\n\t\tindex \u003d 2\n\telif (SrcQ3):\n\t\tindex \u003d 1\n\t\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0 \n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_Simulated\",\n\t2: \"Sts_CommUncertain\",\n\t3: \"Sts_CommBad\",\n\t}\n\t\n\tSrcQ3 \u003d ((value \u0026 (2**3)) \u003d\u003d (2**3))\n\tSrcQ4 \u003d ((value \u0026 (2**4)) \u003d\u003d (2**4))\n\tSrcQ5 \u003d ((value \u0026 (2**5)) \u003d\u003d (2**5))\n\t\n\tif (SrcQ5):\n\t\tindex \u003d 3 \n\telif (SrcQ4):\n\t\tindex \u003d 2\n\telif (SrcQ3):\n\t\tindex \u003d 1\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 78, + "x": 5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 56, + "x": 16, + "y": 15 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_EU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "pnddVal" + }, + "position": { + "height": 31, + "width": 88 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOProcessValue" + }, + "position": { + "height": 31, + "width": 88, + "x": 25, + "y": 66 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ActualSpeedIndicator" + }, + "position": { + "height": 16, + "rotate": { + "angle": 0 + }, + "width": 16 + }, + "propConfig": { + "position.y": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val\") ||\r\ntag({view.params.tagPath} + \"/Val_PVEUMin\") ||\r\ntag({view.params.tagPath} + \"/Val_PVEUMax\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val\"])[0].value\n\tVal_PVEUMin \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_PVEUMin\"])[0].value\n\tVal_PVEUMax \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_PVEUMax\"])[0].value\n\t\n\tDisplayMin \u003d 0\n\tDisplayMax \u003d self.getSibling(\"PVBar\").position.height - 2\n\t\n\tvalue_reference \u003d 1\n\t\n\tif (Val_PVEUMax \u003e Val_PVEUMin):\n\t\tvalue_reference \u003d ((Val) - (Val_PVEUMin))/((Val_PVEUMax) - (Val_PVEUMin))\n\t\n\tret_value \u003d DisplayMax - (value_reference * abs(DisplayMax - DisplayMin))\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "color": "#2A4191", + "path": "material/play_arrow" + }, + "type": "ia.display.icon" + }, + { + "children": [ + { + "meta": { + "name": "CoordinateContainer" + }, + "position": { + "height": 176, + "width": 8, + "x": 1, + "y": 2 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PVBar" + }, + "position": { + "height": 180, + "width": 12, + "x": 14, + "y": 7 + }, + "props": { + "style": { + "borderColor": "#A0A0A4", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "MajorTick0" + }, + "position": { + "height": 1, + "width": 5 + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MajorTick1" + }, + "position": { + "height": 1, + "width": 5, + "y": "25%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MajorTick2" + }, + "position": { + "height": 1, + "width": 5, + "y": "50%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MajorTick3" + }, + "position": { + "height": 1, + "width": 5, + "y": "75%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MajorTick4" + }, + "position": { + "height": 1, + "width": 5, + "y": 179 + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick0" + }, + "position": { + "height": 1, + "width": 2, + "y": "5%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick1" + }, + "position": { + "height": 1, + "width": 2, + "y": "10%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick2" + }, + "position": { + "height": 1, + "width": 2, + "y": "15%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick3" + }, + "position": { + "height": 1, + "width": 2, + "y": "20%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick4" + }, + "position": { + "height": 1, + "width": 2, + "y": "30%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick5" + }, + "position": { + "height": 1, + "width": 2, + "y": "35%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick6" + }, + "position": { + "height": 1, + "width": 2, + "y": "40%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick7" + }, + "position": { + "height": 1, + "width": 2, + "y": "45%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick8" + }, + "position": { + "height": 1, + "width": 2, + "y": "55%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick9" + }, + "position": { + "height": 1, + "width": 2, + "y": "60%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick10" + }, + "position": { + "height": 1, + "width": 2, + "y": "65%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick11" + }, + "position": { + "height": 1, + "width": 2, + "y": "70%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick12" + }, + "position": { + "height": 1, + "width": 2, + "y": "80%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick13" + }, + "position": { + "height": 1, + "width": 2, + "y": "85%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick14" + }, + "position": { + "height": 1, + "width": 2, + "y": "90%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MinorTick15" + }, + "position": { + "height": 1, + "width": 2, + "y": "95%" + }, + "props": { + "style": { + "borderTopColor": "#A0A0A4", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Scale" + }, + "position": { + "height": 182, + "width": 10, + "x": 26.0139, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "ScaleMax" + }, + "position": { + "height": 14, + "width": 53, + "x": 33.01, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_PVEUMax\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_PVEUMax\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "A0A0A4", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "ScaleMin" + }, + "position": { + "height": 14, + "width": 53, + "x": 33.0139, + "y": 177 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_PVEUMin\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_PVEUMin\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "A0A0A4", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GOPVBarGraph" + }, + "position": { + "height": 192, + "width": 96 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ThresholdHi" + }, + "position": { + "height": 17, + "width": 16, + "y": 14.001731872558594 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Hi\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_TholdHi.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ThresholdHiHi" + }, + "position": { + "height": 17, + "width": 16, + "y": 14.001731872558594 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_HiHi\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_TholdHiHi.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ThresholdLo" + }, + "position": { + "height": 17, + "width": 16, + "y": 104.0017 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Lo\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_TholdLo.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ThresholdLoLo" + }, + "position": { + "height": 17, + "width": 16, + "y": 104.0017 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_HiHi\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_TholdLoLo.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "PVBarGraphThresholdIndicators" + }, + "position": { + "height": 151, + "width": 16, + "x": 32.0139, + "y": 21 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PVBarGraphAndIndicator" + }, + "position": { + "height": 192, + "width": 117 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PVAndLimitsGroup" + }, + "position": { + "height": 193, + "width": 122, + "x": 162 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InformationSection" + }, + "position": { + "height": 193, + "width": 286 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVNotify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PVNotify\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 42, + "width": 84, + "x": 3, + "y": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVNotify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PVNotify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "CommBad" + }, + "position": { + "height": 17, + "width": 17, + "x": 58, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PVBad\") ||\r\ntag({view.params.tagPath} + \"/Inp_PVUncertain\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0 \n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_CommUncertain\",\n\t2: \"Sts_CommBad\",\n\t}\n\t\n\tInp_PVBad \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVBad\"])[0].value\n\tInp_PVUncertain \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVUncertain\"])[0].value\n\t\n\tif (Inp_PVBad):\n\t\tindex \u003d 2 \n\telif (Inp_PVUncertain):\n\t\tindex \u003d 1\n\t\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PVBad\") ||\r\ntag({view.params.tagPath} + \"/Inp_PVUncertain\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0 \n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_CommUncertain\",\n\t2: \"Sts_CommBad\",\n\t}\n\t\n\tInp_PVBad \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVBad\"])[0].value\n\tInp_PVUncertain \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVUncertain\"])[0].value\n\t\n\tif (Inp_PVBad):\n\t\tindex \u003d 2 \n\telif (Inp_PVUncertain):\n\t\tindex \u003d 1\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 66, + "x": 11 + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "center" + }, + "text": "Raw Input", + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 78, + "x": 5, + "y": 12 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Inp_PV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Inp_PV\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "nddInp_PV" + }, + "position": { + "height": 31, + "width": 88 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupRawInput" + }, + "position": { + "height": 48, + "width": 90, + "x": 3.01, + "y": 213 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Inp_PVNotify\") \u003e 0, true, false) " + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ResetCapture_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ResetCapture.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ClearCapt\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_MinMaxClearButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 220 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content2" + }, + "position": { + "height": 265, + "width": 346, + "x": 43, + "y": 35 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_AIn/P_AIn_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40, + "y": 1 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupNavToAdvanced" + }, + "position": { + "height": 42, + "width": 42 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "MtceNavButtons" + }, + "position": { + "height": 42, + "width": 43, + "x": 46, + "y": 2 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Threshold" + }, + "position": { + "height": 16, + "width": 80, + "x": 5, + "y": 1 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Threshold" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Deadband" + }, + "position": { + "height": 16, + "width": 80, + "x": 83, + "y": 1 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Deadband" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Units" + }, + "position": { + "height": 14, + "width": 80, + "x": 5, + "y": 15 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_EU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Headers" + }, + "position": { + "height": 30, + "width": 165, + "x": 178 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 20, + "width": 170 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 167 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Cfg_InpCond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Gate\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadCfg" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupGate" + }, + "position": { + "height": 20, + "width": 170, + "y": 5 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "nde_CfgLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 4, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"Lim\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_CfgDB" + }, + "position": { + "height": 20, + "width": 70, + "x": 83, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"DB\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupLimitAndDB" + }, + "position": { + "height": 30, + "width": 156, + "x": 176 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "gateName": "HiHi" + }, + "meta": { + "name": "GoLimitConfigHiHi" + }, + "position": { + "height": 30, + "width": 335, + "x": 8, + "y": 26 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 20, + "width": 170 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 167 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Cfg_InpCond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Gate\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadCfg" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupGate" + }, + "position": { + "height": 20, + "width": 170, + "y": 5 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "nde_CfgLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 4, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"Lim\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_CfgDB" + }, + "position": { + "height": 20, + "width": 70, + "x": 83, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"DB\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupLimitAndDB" + }, + "position": { + "height": 30, + "width": 156, + "x": 176 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "gateName": "Hi" + }, + "meta": { + "name": "GoLimitConfigHi" + }, + "position": { + "height": 30, + "width": 335, + "x": 8, + "y": 55 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 20, + "width": 170 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 167 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Cfg_InpCond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Gate\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadCfg" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupGate" + }, + "position": { + "height": 20, + "width": 170, + "y": 5 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "nde_CfgLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 4, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"Lim\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_CfgDB" + }, + "position": { + "height": 20, + "width": 70, + "x": 83, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"DB\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupLimitAndDB" + }, + "position": { + "height": 30, + "width": 156, + "x": 176 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "gateName": "Lo" + }, + "meta": { + "name": "GoLimitConfigLo" + }, + "position": { + "height": 30, + "width": 335, + "x": 8, + "y": 84 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 20, + "width": 170 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 167 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Cfg_InpCond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Gate\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadCfg" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupGate" + }, + "position": { + "height": 20, + "width": 170, + "y": 5 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "nde_CfgLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 4, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"Lim\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_CfgDB" + }, + "position": { + "height": 20, + "width": 70, + "x": 83, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"DB\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupLimitAndDB" + }, + "position": { + "height": 30, + "width": 156, + "x": 176 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "gateName": "LoLo" + }, + "meta": { + "name": "GoLimitConfigLoLo" + }, + "position": { + "height": 30, + "width": 335, + "x": 8, + "y": 113 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupLimits" + }, + "position": { + "height": 146, + "width": 345 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageMaintenance1" + }, + "position": { + "height": 195, + "width": 345, + "x": 42, + "y": 26 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.maintenanceTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0) or (value !\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Threshold" + }, + "position": { + "height": 16, + "width": 80, + "x": 5, + "y": 1 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Threshold" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Deadband" + }, + "position": { + "height": 16, + "width": 80, + "x": 83, + "y": 1 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Deadband" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Units" + }, + "position": { + "height": 14, + "width": 80, + "x": 5, + "y": 15 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"(raw units)\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Headers" + }, + "position": { + "height": 30, + "width": 165, + "x": 178 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 20, + "width": 170 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 167 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/FailGate/Cfg_InpCond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/FailGate/Sts_Gate\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadCfg" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/FailGate/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "custom": { + "gateName": "Fail" + }, + "meta": { + "name": "GroupGate" + }, + "position": { + "height": 20, + "width": 170, + "y": 17.5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "nde_CfgFailHiLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 4, + "y": 6 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_FailHiLim\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_CfgFailLoLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 4, + "y": 29 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_FailLoLim\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_CfgDB" + }, + "position": { + "height": 20, + "width": 70, + "x": 83, + "y": 17.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_FailDB\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupLimitAndDB" + }, + "position": { + "height": 55, + "width": 156, + "x": 176 + }, + "type": "ia.container.coord" + } + ], + "custom": { + "gateName": "Fail" + }, + "meta": { + "name": "GoLimitConfigFail" + }, + "position": { + "height": 55, + "width": 335, + "x": 8, + "y": 30 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageMaintenance2" + }, + "position": { + "height": 195, + "width": 345, + "x": 42, + "y": 26 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.maintenanceTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tmaintenanceTabSelected \u003d self.parent.custom.maintenanceTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d maintenanceTabSelected - 1\n\t\n\tif (newTab \u003e\u003d 0):\n\t\tself.parent.custom.maintenanceTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "PrevButton" + }, + "position": { + "height": 36, + "width": 30 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Prev.png", + "style": { + "curor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 0 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page1Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 28 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.maintenanceTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 1 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page2Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 58 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.maintenanceTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tmaintenanceTabSelected \u003d self.parent.custom.maintenanceTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d maintenanceTabSelected + 1\n\t\n\tif (newTab \u003c\u003d maxNumberOfTabs):\n\t\tself.parent.custom.maintenanceTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "NextButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 82 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Next.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + } + ], + "custom": { + "maxNumberOfTabs": 2 + }, + "meta": { + "name": "MaintenancePageButtons" + }, + "position": { + "height": 36, + "width": 112, + "x": 152, + "y": 213 + }, + "propConfig": { + "custom.maintenanceTabSelected": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.maintenanceTabSelected" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "y": 7 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 182 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + }, + "text": "Use Substitute PV" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Val_InpPV" + }, + "position": { + "height": 16, + "width": 72, + "y": 8.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_InpPV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_InpPV\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontSize": "10pt", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_SubstPV\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_SubstPV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_InpPV\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 2, + "y": 1.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_InpPV\")" + }, + "type": "expr" + } + } + }, + "props": { + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_SubstPV\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 56, + "y": 1.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_SubstPV\")" + }, + "type": "expr" + } + } + }, + "props": { + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 93, + "y": 2.5 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "nde_CfgLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 214, + "y": 6.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/Sts_SubstPV\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/MSet_SubstPV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 191 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_SubstPV\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GOSubstitutePVControl" + }, + "position": { + "height": 33, + "width": 321, + "y": 16 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "SubstituvePV" + }, + "position": { + "height": 55, + "width": 340, + "x": 46.5, + "y": 243 + }, + "type": "ia.container.coord" + } + ], + "custom": { + "maintenanceTabSelected": 1 + }, + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 83 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVNotify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PVNotify\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 42, + "width": 84, + "x": 3, + "y": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVNotify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PVNotify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "CommBad" + }, + "position": { + "height": 17, + "width": 17, + "x": 58, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PVBad\") ||\r\ntag({view.params.tagPath} + \"/Inp_PVUncertain\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0 \n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_CommUncertain\",\n\t2: \"Sts_CommBad\",\n\t}\n\t\n\tInp_PVBad \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVBad\"])[0].value\n\tInp_PVUncertain \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVUncertain\"])[0].value\n\t\n\tif (Inp_PVBad):\n\t\tindex \u003d 2 \n\telif (Inp_PVUncertain):\n\t\tindex \u003d 1\n\t\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PVBad\") ||\r\ntag({view.params.tagPath} + \"/Inp_PVUncertain\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0 \n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_CommUncertain\",\n\t2: \"Sts_CommBad\",\n\t}\n\t\n\tInp_PVBad \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVBad\"])[0].value\n\tInp_PVUncertain \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PVUncertain\"])[0].value\n\t\n\tif (Inp_PVBad):\n\t\tindex \u003d 2 \n\telif (Inp_PVUncertain):\n\t\tindex \u003d 1\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 66, + "x": 11 + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "center" + }, + "text": "Raw Input", + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 78, + "x": 5, + "y": 12 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Inp_PV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Inp_PV\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "nddInp_PV" + }, + "position": { + "height": 31, + "width": 88 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupRawInput" + }, + "position": { + "height": 48, + "width": 90, + "x": 13.01, + "y": 43 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 124 + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "center" + }, + "text": "Scaled PV from Input", + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 78, + "x": 5, + "y": 12 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_InpPV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_InpPV\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "nddValInpPV" + }, + "position": { + "height": 31, + "width": 129, + "x": 12 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Inp_Sim\"), false, true)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 124 + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "normal", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "center" + }, + "text": "PV Used in Simulation", + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericEntryField" + }, + "position": { + "height": 20, + "width": 76, + "x": 24, + "y": 18 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnableSimulation} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/Inp_Sim\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Set_SimPV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "nddSetSimPV" + }, + "position": { + "height": 42, + "width": 129 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Inp_Sim\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GoDiagPV" + }, + "position": { + "height": 44, + "width": 175, + "y": 90 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DiagnosticsContent" + }, + "position": { + "height": 295, + "width": 350, + "x": 40.9936, + "y": 0.00000190735 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Diagnostics" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 123 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_AlarmDisplay_Fail" + }, + "position": { + "height": 34, + "width": 291 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "Fail" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_HiHi" + }, + "position": { + "height": 34, + "width": 291, + "y": 37 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "HiHi" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_Hi" + }, + "position": { + "height": 34, + "width": 291, + "y": 74 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "Hi" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_Lo" + }, + "position": { + "height": 34, + "width": 291, + "y": 111 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "Lo" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_LoLo" + }, + "position": { + "height": 34, + "width": 291, + "y": 148 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "LoLo" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "Alarms" + }, + "position": { + "height": 187, + "width": 291 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmContent" + }, + "position": { + "height": 290, + "width": 340, + "x": 43, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Alarm" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 3", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 253 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_AIn", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 206 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 229 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 252 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 275 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonDiagnostics" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 80 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Diag.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 3" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonAlarm" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 120 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Alm.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\t\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"PV Trend\")\n\t\n\tparams \u003d {\n\t\"tagPath\": self.view.params.tagPath,\n\t\"maximumParameterName\": \"Val_PVEUMax\",\n\t\"minimumParameterName\": \"Val_PVEUMin\",\n\t\"euParameterName\": \"Cfg_EU\",\n\t\"pvParameterName\": \"Val\",\n\t}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/00_Trend_Popups/Process_PVCapture\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonTrend" + }, + "position": { + "height": 32, + "width": 32, + "x": 2, + "y": 210 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Trend.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 2, + "y": 250 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_SubstPV\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmInh" + }, + "position": { + "height": 16, + "width": 16, + "y": 116.99519348144531 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_AlmInh\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Inhibit.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_EU\") || tag({view.params.tagPath} + \"/Err_Raw\") || tag({view.params.tagPath} + \"/Err_Filt\") || \r\ntag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigAlarm" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 118 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Alarm\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 287, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn_Advanced/resource.json new file mode 100644 index 0000000..56a0bf2 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "e658712e2650f3215e7a65be2a3e509d3dd3dd7f2a8df18692c1df2cf61e0414", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..166a3fb981c0264fc889e3fcab2eaaa822de1bbb GIT binary patch literal 18012 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 Qti~L0c0@Z=p#l^C2E~nQ-~a#s literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn_Advanced/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn_Advanced/view.json new file mode 100644 index 0000000..db25ffe --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AIn/P_AIn_Advanced/view.json @@ -0,0 +1,2228 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityDeviceConfigBehavior": true, + "securityDeviceConfigHMI": true, + "securityDeviceConfigTimers": true, + "securityEnableSimulation": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/P_AIn", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 442, + "width": 350 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 39, + "width": 37 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 39, + "width": 37, + "x": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 39, + "width": 117, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon_3" + }, + "position": { + "height": 13, + "rotate": { + "angle": "-90deg" + }, + "width": 30, + "x": 177, + "y": 67.5 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Line4" + }, + "position": { + "height": 60, + "rotate": { + "angle": "90deg" + }, + "width": 3, + "x": 207.966, + "y": 45.014 + }, + "props": { + "style": { + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 21, + "width": 33, + "x": 195, + "y": 63 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_TimeFunction.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Icon_4" + }, + "position": { + "height": 13, + "rotate": { + "angle": "-90deg" + }, + "width": 30, + "x": 223, + "y": 67.5 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "Lines" + }, + "position": { + "height": 112, + "width": 340 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "y": 7 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 182, + "y": 5 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Raw Input Scaling" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaximumLabel" + }, + "position": { + "height": 16, + "width": 89, + "y": 48 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + }, + "text": "Maximum" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Minimum Level" + }, + "position": { + "height": 16, + "width": 89, + "y": 83 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + }, + "text": "Maximum" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaxRaw" + }, + "position": { + "height": 20, + "width": 70, + "x": 106, + "y": 47 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_InpRawMax\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "MinRaw" + }, + "position": { + "height": 20, + "width": 70, + "x": 106, + "y": 79 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_InpRawMin\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 55, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr" + }, + "position": { + "height": 61, + "width": 89, + "x": 104, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Raw\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "InputLabel" + }, + "position": { + "height": 16, + "width": 89, + "x": 96.5, + "y": 29 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center", + "textDecoration": "underline" + }, + "text": "Input" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaxPV" + }, + "position": { + "height": 20, + "width": 70, + "x": 242.5, + "y": 47 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_PVEUMax\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "MinPV" + }, + "position": { + "height": 20, + "width": 70, + "x": 242.5, + "y": 79 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_PVEUMin\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 55, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_0" + }, + "position": { + "height": 61, + "width": 89, + "x": 240.5, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Raw\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "ScaledLabel" + }, + "position": { + "height": 16, + "width": 89, + "x": 233.5, + "y": 29 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center", + "textDecoration": "underline" + }, + "text": "Scaled" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 55, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_1" + }, + "position": { + "height": 61, + "width": 89, + "x": 240, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_EU\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "UnitsLabel" + }, + "position": { + "height": 16, + "width": 89, + "x": 149, + "y": 109 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "text": "Units" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_Cfg_EU" + }, + "position": { + "height": 20, + "width": 70, + "x": 242.5, + "y": 107 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EU" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "RawToEUScaling" + }, + "position": { + "height": 131, + "width": 340 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "GO_Cfg_NoSubstPV" + }, + "position": { + "height": 32, + "width": 340, + "x": 2, + "y": 134 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_NoSubstPV" + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 165 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "PV Source and Quality" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_UseChanSrcQ\"), false, true)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Generate SrcQ" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_UseChanSrcQ\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_UseChanSrcQ_Off" + }, + "position": { + "height": 35, + "width": 337, + "y": 13 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_UseChanSrcQ\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Pass thru connected Channel\u0027s SrcQ value" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_UseChanSrcQ\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_UseChanSrcQ_Off_0" + }, + "position": { + "height": 35, + "width": 337, + "y": 41 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "CfgUseChanSrcQ" + }, + "position": { + "height": 78, + "width": 340, + "x": 2, + "y": 175 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Cfg_RateFiltTC" + }, + "position": { + "height": 39, + "width": 340, + "x": 2, + "y": 6.5 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_RateFiltTC" + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 26, + "width": 72, + "y": 15 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 58 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_1" + }, + "position": { + "height": 45, + "width": 75, + "x": 258, + "y": -4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_EU\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Filter" + }, + "position": { + "height": 52, + "width": 344, + "y": 253 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Engineering1" + }, + "position": { + "height": 307, + "width": 344, + "x": 5, + "y": 49 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Engineering" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 39, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Desc_Label_Tag" + }, + "position": { + "height": 68.00000000000001, + "width": 340, + "x": 5, + "y": 3.99 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_Area" + }, + "position": { + "height": 20, + "width": 340, + "x": 5, + "y": 70.987 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityConfigSecurity": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "TextConfig" + }, + "position": { + "height": 200, + "width": 350, + "y": 47 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_PVDecimalPlaces" + }, + "position": { + "height": 32, + "width": 340, + "x": 5, + "y": 14.001999999999999 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "parameterName": "Cfg_PVDecPlcs", + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "HMIConfig" + }, + "position": { + "height": 246, + "width": 350, + "y": 143 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_HMI" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 306, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_AIn_Advanced", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 346 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 369 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 392 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 415 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonEngineering" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Eng.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHMI" + }, + "position": { + "height": 35, + "width": 35, + "x": 42 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_HMI.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 311 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_EU\") || tag({view.params.tagPath} + \"/Err_Raw\") || tag({view.params.tagPath} + \"/Err_Filt\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 35, + "width": 346, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut/resource.json new file mode 100644 index 0000000..1d2ed39 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "79a7272fe5299c6e42f33316fcca98850f63a01255f2bc8c617fcf3279ba0506", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..33a4797fd2d93d793d2ffb884157d457db73c1c0 GIT binary patch literal 4523 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 C*TdHU literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut/view.json new file mode 100644 index 0000000..844dcf1 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut/view.json @@ -0,0 +1,6175 @@ +{ + "custom": { + "cmdSrcTitle": " - ", + "popupVersion": " 1.0 " + }, + "params": { + "securityBypassFeedback": true, + "securityBypassInterlocks": true, + "securityDeviceConfigLimits": true, + "securityEnableSimulation": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 3, + "tagPath": "[default]Test_Tags/SC_01", + "userHasBasic": true + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + }, + "persistent": true + }, + "custom.popupVersion": { + "persistent": true + }, + "params.securityBypassFeedback": { + "binding": { + "config": { + "expression": "\"securityBypassFeedback\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityBypassInterlocks": { + "binding": { + "config": { + "expression": "\"securityBypassInterlocks\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigLimits": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigLimits\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 392 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 37, + "width": 39, + "y": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab4" + }, + "position": { + "height": 37, + "width": 39, + "y": 120 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "StatusText_Ready" + }, + "position": { + "height": 16, + "width": 42, + "x": 6, + "y": 2 + }, + "props": { + "text": "Ready", + "textStyle": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONoticeNRdy_Intlk" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONoticeNRdy_IOFault" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONoticeNRdy_OoS" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONoticeNRdy_CfgErr" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NRdyNotices" + }, + "position": { + "height": 21, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IntlkTrip" + }, + "meta": { + "name": "AlarmNotify_IntlkTrip" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IOFault" + }, + "meta": { + "name": "AlarmNotify_IOFault" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmNotices" + }, + "position": { + "height": 20, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AbnormalSeparatorLine" + }, + "position": { + "height": 2, + "width": 352, + "y": 20 + }, + "props": { + "style": { + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content1" + }, + "position": { + "height": 45, + "width": 403, + "x": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "GOValStsAOut", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 20, + "width": 190 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tstates \u003d {\n\t0: \"At Target\",\n\t1: \"Ramping Down\",\n\t2: \"Ramping Up\",\n\t3: \"Clamped at Min\",\n\t4: \"Clamped at Max\",\n\t5: \"Bumping Close\",\n\t6: \"Bumping Open\",\n\t}\n\t\n\tVal_Sts \u003d value\n\tindex \u003d Val_Sts\n\t\n\tret_value \u003d states[index]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#D4D4D4", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "Left" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "CommBad" + }, + "position": { + "height": 17, + "width": 17, + "x": 100, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_IOFault\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CommBad.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AccelDecel" + }, + "position": { + "height": 17, + "width": 17 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_IOFault\"), true, false)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Accel\") || tag({view.params.tagPath} + \"/Sts_Decel\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d -1\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/Sts_CommBad.png\"\n\timages \u003d {\n\t0: \"Sts_Accel\",\n\t1: \"Sts_Decel\"\n\t}\n\t\n\tSts_Accel \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Accel\"])[0].value\n\tSts_Decel \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Decel\"])[0].value\n\t\n\tif (Sts_Accel):\n\t\tindex \u003d 0\n\telif (Sts_Decel):\n\t\tindex \u003d 1 \n\t\n\tif (index \u003e\u003d 0):\n\t\tret_val \u003d image_path.format(images[index])\n\telse:\n\t\tret_val \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 32, + "x": 28 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt" + }, + "text": "Speed" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 88, + "y": 13 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_SpeedFdbk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_SpeedFdbk\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 22, + "x": 88, + "y": 15 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_SpeedFdbkEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "pnddValSpeedFdbk" + }, + "position": { + "height": 33, + "width": 115, + "x": 2.5, + "y": 0.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ValSpeedFdbk" + }, + "position": { + "height": 36, + "width": 120 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tick0" + }, + "position": { + "height": 5, + "width": 1, + "x": 1.0024, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick1" + }, + "position": { + "height": 5, + "width": 1, + "x": 26, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick2" + }, + "position": { + "height": 5, + "width": 1, + "x": 51, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick3" + }, + "position": { + "height": 5, + "width": 1, + "x": 76, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick4" + }, + "position": { + "height": 5, + "width": 1, + "x": 101, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick0" + }, + "position": { + "height": 2, + "width": 1, + "x": 5, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick1" + }, + "position": { + "height": 2, + "width": 1, + "x": 10, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick2" + }, + "position": { + "height": 2, + "width": 1, + "x": 15, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick3" + }, + "position": { + "height": 2, + "width": 1, + "x": 20, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick4" + }, + "position": { + "height": 2, + "width": 1, + "x": 30, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick5" + }, + "position": { + "height": 2, + "width": 1, + "x": 35, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick6" + }, + "position": { + "height": 2, + "width": 1, + "x": 40, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick7" + }, + "position": { + "height": 2, + "width": 1, + "x": 45, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick8" + }, + "position": { + "height": 2, + "width": 1, + "x": 55, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick9" + }, + "position": { + "height": 2, + "width": 1, + "x": 60, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick10" + }, + "position": { + "height": 2, + "width": 1, + "x": 65, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick11" + }, + "position": { + "height": 2, + "width": 1, + "x": 70, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick12" + }, + "position": { + "height": 2, + "width": 1, + "x": 80, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick13" + }, + "position": { + "height": 2, + "width": 1, + "x": 85, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick14" + }, + "position": { + "height": 2, + "width": 1, + "x": 90, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick15" + }, + "position": { + "height": 2, + "width": 1, + "x": 95, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Scale" + }, + "position": { + "height": 8, + "width": 103, + "x": 5, + "y": 15.0048 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "ActualSpeedIndicator" + }, + "position": { + "height": 12, + "rotate": { + "angle": "90deg" + }, + "width": 13, + "y": -3 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_SpeedFdbk\") ||\r\ntag({view.params.tagPath} + \"/Cfg_MinSpdRef\") ||\r\ntag({view.params.tagPath} + \"/Cfg_MaxSpdRef\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal_SpeedFdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_SpeedFdbk\"])[0].value\n\tCfg_MinSpdRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_MinSpdRef\"])[0].value\n\tCfg_MaxSpdRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_MaxSpdRef\"])[0].value\n\t\n\tDisplayMin \u003d 0\n\tDisplayMax \u003d 100\n\t\n\tret_value \u003d ((DisplayMax - DisplayMin) / (Cfg_MaxSpdRef - Cfg_MinSpdRef)) * (Val_SpeedFdbk - Cfg_MinSpdRef) + DisplayMin\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "color": "#2A4191", + "path": "material/play_arrow" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "SetpointSpeedIndicator" + }, + "position": { + "height": 12, + "rotate": { + "angle": -90 + }, + "width": 13, + "y": 13 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_SpeedRefEU\") \u003d tag({view.params.tagPath} + \"/Cfg_SpeedFdbkEU\"), true, false)" + }, + "type": "expr" + } + }, + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_SpeedRef\") ||\r\ntag({view.params.tagPath} + \"/Cfg_MinSpdRef\") ||\r\ntag({view.params.tagPath} + \"/Cfg_MaxSpdRef\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal_SpeedRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_SpeedRef\"])[0].value\n\tCfg_MinSpdRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_MinSpdRef\"])[0].value\n\tCfg_MaxSpdRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_MaxSpdRef\"])[0].value\n\t\n\tDisplayMin \u003d 0\n\tDisplayMax \u003d 100\n\t\n\tret_value \u003d ((DisplayMax - DisplayMin) / (Cfg_MaxSpdRef - Cfg_MinSpdRef)) * (Val_SpeedRef - Cfg_MinSpdRef) + DisplayMin\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "color": "#3F3F3F", + "path": "material/play_arrow" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "BarGraphBorder" + }, + "position": { + "height": 8, + "width": 101, + "x": 6, + "y": 7.0048 + }, + "props": { + "style": { + "borderColor": "#A0A0A4", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "BarGraphGroup" + }, + "position": { + "height": 27, + "width": 119, + "y": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 49, + "x": 22 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt" + }, + "text": "Setpoint" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 72, + "x": 9, + "y": 13 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_SpeedRef\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_SpeedRef\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "normal", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 22, + "x": 81, + "y": 15 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_SpeedFdbkEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "pnddValSpeedRef" + }, + "position": { + "height": 32, + "width": 107 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Clamped" + }, + "position": { + "height": 16, + "width": 16, + "x": 86.0036, + "y": 13.0036 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_SpeedLimited\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Clamped.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "Setpoint" + }, + "position": { + "height": 32, + "width": 110 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NumericEntryField" + }, + "position": { + "height": 20, + "width": 76 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_SpeedRef\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxSpdRef\"" + }, + "type": "tag" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MinSpdRef\"" + }, + "type": "tag" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_SpeedRef\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "ndeOSet_SpeedRef" + }, + "position": { + "height": 24, + "width": 101, + "x": 4, + "y": 33 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "SpeedSetpoint" + }, + "position": { + "height": 57, + "width": 115, + "x": 8, + "y": 72 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOSpeedFdbkAndSetpoint", + "visible": false + }, + "position": { + "height": 131, + "width": 123, + "y": 27 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "BarGraphBorder" + }, + "position": { + "height": 12, + "width": 180, + "x": 5.5, + "y": 14.3 + }, + "props": { + "style": { + "borderColor": "#A0A0A4", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Tick0" + }, + "position": { + "height": 5, + "width": 1, + "x": 1.0024, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick1" + }, + "position": { + "height": 5, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.25" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick2" + }, + "position": { + "height": 5, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.5" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick3" + }, + "position": { + "height": 5, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.75" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick4" + }, + "position": { + "height": 5, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick0" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.05" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick1" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick2" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.15" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick3" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.20" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick4" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.30" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick5" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.35" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick6" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.40" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick7" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.45" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick8" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.00481 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.55" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick9" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.60" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick10" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.65" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick11" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.70" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick12" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.80" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick13" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.85" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick14" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.90" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick15" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.95" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "length": 180 + }, + "meta": { + "name": "Scale" + }, + "position": { + "height": 8, + "width": 184, + "x": 4.5, + "y": 26.3 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "CVIndicator" + }, + "position": { + "height": 20, + "rotate": { + "angle": "90deg" + }, + "width": 20, + "y": -1.1 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVOut\") ||\r\ntag({view.params.tagPath} + \"/Val_CVEUMin\") ||\r\ntag({view.params.tagPath} + \"/Val_CVEUMax\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal_CVOut \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVOut\"])[0].value\n\tVal_CVEUMin \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMin\"])[0].value\n\tVal_CVEUMax \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMax\"])[0].value\n\t\n\tDisplayMin \u003d -4\n\tDisplayMax \u003d 175\n\t\n\tret_value \u003d ((DisplayMax - DisplayMin) / (Val_CVEUMax - Val_CVEUMin)) * (Val_CVOut - Val_CVEUMin) + DisplayMin\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "color": "#2A4191", + "path": "material/play_arrow" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "CVSet" + }, + "position": { + "height": 20, + "width": 3, + "y": 14.3 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVOut\") ||\r\ntag({view.params.tagPath} + \"/Val_CVEUMin\") ||\r\ntag({view.params.tagPath} + \"/Val_CVEUMax\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal_CVOut \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVOut\"])[0].value\n\tVal_CVEUMin \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMin\"])[0].value\n\tVal_CVEUMax \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMax\"])[0].value\n\t\n\tDisplayMin \u003d 5\n\tDisplayMax \u003d 183\n\t\n\tret_value \u003d ((DisplayMax - DisplayMin) / (Val_CVEUMax - Val_CVEUMin)) * (Val_CVOut - Val_CVEUMin) + DisplayMin\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "BarGraphGroup" + }, + "position": { + "height": 36, + "width": 190, + "x": 20, + "y": 2 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOCVBarGraph" + }, + "position": { + "height": 41, + "width": 228, + "y": 36 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 72, + "x": 17.5, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_CVOut\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Units" + }, + "position": { + "height": 14, + "width": 49, + "x": 29, + "y": 17 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_EU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "pnddValSpeedRef" + }, + "position": { + "height": 32, + "width": 107 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Clamped" + }, + "position": { + "height": 16, + "width": 16, + "x": 86.0036, + "y": 2.0036 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Clamped\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Clamped.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ControlVariable" + }, + "position": { + "height": 32, + "width": 110, + "x": 60, + "y": 73 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NumericEntryField" + }, + "position": { + "height": 20, + "width": 76 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_CV\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVEUMax\"" + }, + "type": "tag" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVEUMin\"" + }, + "type": "tag" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_CV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GOOSetCV" + }, + "position": { + "height": 24, + "width": 101, + "x": 75, + "y": 120 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InformationSection" + }, + "position": { + "height": 171, + "width": 252 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 91, + "y": 3 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "CommandButtons" + }, + "position": { + "height": 44, + "width": 140, + "x": 197.99, + "y": 57 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 112, + "x": 30.5, + "y": 6.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[index][1]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CmdSrcImage" + }, + "position": { + "height": 38, + "width": 18, + "x": 8, + "y": 4 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(states[index][0])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "contain" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}_CmdSrc", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.custom.cmdSrcTitle}", + "type": "open", + "viewParams": { + "selectedTab": "0", + "tagPath": "{view.params.tagPath}/CmdSrc" + }, + "viewPath": "Plant PAX/Popups/P_CmdSrc/P_CmdSrc", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "CmdSrcNavButton" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "image": { + "style": { + "backgroundColor": "#FFFFFF00" + } + }, + "style": { + "backgroundColor": "#FFFFFF00", + "outlineStyle": "none" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "CmdSrcNotNormal" + }, + "position": { + "height": 16, + "width": 16, + "x": 127 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_CmdSrcNotNorm.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GOCmdSrcDisplayWithNav" + }, + "position": { + "height": 45, + "width": 145, + "y": 59 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Commands" + }, + "position": { + "height": 108, + "width": 340, + "y": 157 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content2" + }, + "position": { + "height": 265, + "width": 340, + "x": 43, + "y": 35 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_AOut/P_AOut_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "NavButtons" + }, + "position": { + "height": 42, + "width": 127, + "x": 50, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "y": 7 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 229, + "y": 56 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_Bypass\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Bypass\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Check\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 2, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "start", + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Bypass\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 56, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "end", + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 133, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 101, + "y": 7 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Bypass Enabled" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "BypassEnabled" + }, + "position": { + "height": 33, + "width": 243, + "y": 59 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 182, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Interlocks" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 3 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InterlocksAndPermissives" + }, + "position": { + "height": 40, + "width": 47, + "x": 282, + "y": 56.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "IntlkAndPerm" + }, + "position": { + "height": 105, + "width": 340, + "x": 46.5, + "y": 195 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 257, + "y": 4 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "When scaled CV Out is greater than this value, the device is \"Active\"" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericEntry" + }, + "position": { + "height": 20, + "width": 70, + "x": 266, + "y": 10 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVEUMax\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVEUMin\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxInactiveCV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "ndeCfgMaxClosedPos" + }, + "position": { + "height": 40, + "width": 340, + "x": 3, + "y": 29 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 257, + "y": 81 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "CV Rate of Change Limits" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 267, + "y": 4 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Maximum Rate of Increase (\" + tag({view.params.tagPath} + \"/Cfg_EU\") + \"/sec)\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericEntry" + }, + "position": { + "height": 20, + "width": 70, + "x": 266, + "y": 10 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVRoCLimInc\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "ndeCfgCVRoCLimInc" + }, + "position": { + "height": 40, + "width": 340, + "x": 3, + "y": 106 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 267, + "y": 4 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Maximum Rate of Decrease (\" + tag({view.params.tagPath} + \"/Cfg_EU\") + \"/sec)\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericEntry" + }, + "position": { + "height": 20, + "width": 70, + "x": 266, + "y": 10 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVRoCLimDec\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "ndeCfgCVRoCLimDec" + }, + "position": { + "height": 40, + "width": 340, + "x": 3, + "y": 143 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageMaintenance1" + }, + "position": { + "height": 195, + "width": 345, + "x": 42, + "y": 26 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 83 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350, + "y": 275 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 180.99999999999997 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Device Not Ready Reasons" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Reset\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Reset\") \u0026\u0026 tag({view.params.tagPath} + \"/Sts_NotRdy\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_ResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 293.019, + "y": 1 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONotRdy_OoS" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.01953125, + "y": 20.99609375 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONotRdy_CfgErr" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 40.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONotRdy_Intlk" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 60.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONotRdy_IOFault" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 80.996 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "NotRdyHeader_0" + }, + "position": { + "height": 16, + "width": 334, + "x": 2.02, + "y": 100 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontStyle": "italic", + "fontWeight": "normal" + }, + "text": "* A reset is required to clear this condition" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NotReadyReasons" + }, + "position": { + "height": 178, + "width": 340, + "x": 6 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DiagnosticsContent" + }, + "position": { + "height": 295, + "width": 350, + "x": 40.9936, + "y": 0.00000190735 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Diagnostics" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 123 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_AlarmDisplay_IOFault" + }, + "position": { + "height": 34, + "width": 291 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "IOFault" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_IntlkTrip" + }, + "position": { + "height": 34, + "width": 291, + "y": 37 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "IntlkTrip" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "Alarms" + }, + "position": { + "height": 145, + "width": 291 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmContent" + }, + "position": { + "height": 145, + "width": 340, + "x": 43, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Alarm" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 3", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 253 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_AOut", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 206 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 229 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 252 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 275 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonDiagnostics" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 80 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Diag.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 3" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonAlarm" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 120 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Alm.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 2, + "y": 250 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmInh" + }, + "position": { + "height": 16, + "width": 16, + "y": 116.99519348144531 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_AlmInh\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Inhibit.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Limit\") || tag({view.params.tagPath} + \"/Err_EU\") || tag({view.params.tagPath} + \"/Err_Raw\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigAlarm" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 118 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Alarm\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "y": 99 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 287, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut_Advanced/resource.json new file mode 100644 index 0000000..c248894 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "ae64e33e90b1eeb63e540edd6a04d9a55d5d52b296e0fb6b36541c8f24194593", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..a115037d991cf89d9d50fa9cf2e0502b275aac3f GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^OM&<@2NRIYH*yICQZ=3~jv*CsZx1r^0(plPeD}}g fGhYB?(jHV8%(&0MXsRT92V|G0tDnm{r-UW|EIAYy literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut_Advanced/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut_Advanced/view.json new file mode 100644 index 0000000..db282c1 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_AOut/P_AOut_Advanced/view.json @@ -0,0 +1,4975 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityDeviceConfigBehavior": true, + "securityDeviceConfigHMI": true, + "securityDeviceConfigLimits": true, + "securityDeviceConfigTimers": true, + "securityEnableSimulation": true, + "securityEnterOperSettings": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/SC_01", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigLimits": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigLimits\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnterOperSettings": { + "binding": { + "config": { + "expression": "\"securityBypassFeedback\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 442, + "width": 350 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 39, + "width": 37 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 39, + "width": 37, + "x": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 39, + "width": 37, + "x": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 39, + "width": 117, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "LineHor15" + }, + "position": { + "height": 1, + "width": 50, + "x": 199.01, + "y": 72.5074 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor14" + }, + "position": { + "height": 1, + "width": 50, + "x": 191.007, + "y": 93.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer7" + }, + "position": { + "height": 23, + "width": 1, + "x": 190.00745391845703, + "y": 71.5 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer6" + }, + "position": { + "height": 32, + "width": 1, + "x": 190.01, + "y": 24.5074 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor13" + }, + "position": { + "height": 1, + "width": 50, + "x": 191.01041412353516, + "y": 24.507434844970703 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor16" + }, + "position": { + "height": 1, + "width": 47, + "x": 214.01, + "y": 43.51 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer8" + }, + "position": { + "height": 32, + "rotate": { + "angle": "45deg" + }, + "width": 1, + "x": 202.01, + "y": 38.5074 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor2" + }, + "position": { + "height": -6, + "width": 35.999999999999986, + "x": 102.01, + "y": 88.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor0" + }, + "position": { + "height": 1, + "width": 50, + "x": 137.01, + "y": 67.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer0" + }, + "position": { + "height": 270, + "width": 1, + "x": 137.01, + "y": 67.5 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor1" + }, + "position": { + "height": 1, + "width": 80, + "x": 137.01, + "y": 337.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer1" + }, + "position": { + "height": 30, + "width": 0, + "x": 102.01, + "y": 74 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor3" + }, + "position": { + "height": 1, + "width": 36, + "x": 67.0104, + "y": 73.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor4" + }, + "position": { + "height": 1, + "width": 36, + "x": 67.0104, + "y": 103.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer2" + }, + "position": { + "height": 54, + "width": 1, + "x": 167.01, + "y": 67.5 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor5" + }, + "position": { + "height": 1, + "width": 18, + "x": 150.0104160308838, + "y": 121.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor6" + }, + "position": { + "height": 1, + "width": 151, + "x": 150.0104160308838, + "y": 165.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor7" + }, + "position": { + "height": 1, + "width": 162, + "x": 138.01, + "y": 253.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer3" + }, + "position": { + "height": 88, + "width": 1, + "x": 300.01, + "y": 166.5 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor8" + }, + "position": { + "height": 1, + "width": 53, + "x": 150.01041412353516, + "y": 206.51 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer4" + }, + "position": { + "height": 44, + "width": -2, + "x": 178.01, + "y": 163.51 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor9" + }, + "position": { + "height": 1, + "width": 36, + "x": 102.0089340209961, + "y": 276.4970245361328 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer5" + }, + "position": { + "height": 30, + "width": 70.99702453613281, + "x": 102.0089340209961, + "y": 261.4970245361328 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor10" + }, + "position": { + "height": 1, + "width": 36, + "x": 67.0089340209961, + "y": 260.4970245361328 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor11" + }, + "position": { + "height": 1, + "width": 36, + "x": 67.0089340209961, + "y": 290.4970245361328 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_11" + }, + "position": { + "height": 21, + "width": 33, + "x": 121.01041412353516, + "y": 266.5074348449707 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_RateLimiter.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 299, + "y": 12.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "!(tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Maint\") || (!tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") \u0026\u0026 !tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\"))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOper.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_0" + }, + "position": { + "height": 17, + "width": 16, + "x": 299, + "y": 12.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "(tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Maint\") || (!tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") \u0026\u0026 !tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\"))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcMaint.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_1" + }, + "position": { + "height": 18, + "width": 16, + "x": 298.01, + "y": 35.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcExt.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_2" + }, + "position": { + "height": 18, + "width": 16, + "x": 298.0104160308838, + "y": 59.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcProgram.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_3" + }, + "position": { + "height": 18, + "width": 16, + "x": 298.0104160308838, + "y": 83.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOvrd.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_4" + }, + "position": { + "height": 27, + "width": 27, + "x": 177.01, + "y": 53.48958969116211 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_5" + }, + "position": { + "height": 27, + "width": 27, + "x": 123.01, + "y": 107.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_6" + }, + "position": { + "height": 27, + "width": 27, + "x": 123.01, + "y": 151.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_7" + }, + "position": { + "height": 27, + "width": 27, + "x": 164.01, + "y": 151.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_8" + }, + "position": { + "height": 27, + "width": 27, + "x": 123.01, + "y": 192.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_9" + }, + "position": { + "height": 27, + "width": 27, + "x": 123.01041603088379, + "y": 296.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_10" + }, + "position": { + "height": 21, + "width": 33, + "x": 121.01, + "y": 77.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_HiLoLimiter.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor12" + }, + "position": { + "height": -2, + "rotate": { + "angle": "-45deg" + }, + "width": 25, + "x": 182.01, + "y": 148.51 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "dashed", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "LinesAndImages" + }, + "position": { + "height": 389, + "width": 341, + "x": 1, + "y": 2.5 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "CVLimits" + }, + "position": { + "height": 16, + "width": 89, + "x": 16.5, + "y": 49 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "CV Limits" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 55, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_1" + }, + "position": { + "height": 61, + "width": 89, + "x": 24, + "y": 60 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Limit\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "CVMax" + }, + "position": { + "height": 20, + "width": 70, + "x": 26, + "y": 67 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxCV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "CVMin" + }, + "position": { + "height": 20, + "width": 70, + "x": 26, + "y": 93 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MinCV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "RateOfChange" + }, + "position": { + "height": 16, + "width": 89, + "x": 16.493057250976562, + "y": 236.99305725097656 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "Rate of Change" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "RateOfChangeInc" + }, + "position": { + "height": 20, + "width": 70, + "x": 25.493057250976562, + "y": 254.99305725097656 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVRoCLimInc\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "RateOfChangeDec" + }, + "position": { + "height": 20, + "width": 70, + "x": 25.493057250976562, + "y": 280.99305725097656 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVRoCLimDec\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "RateOfChange_0" + }, + "position": { + "height": 16, + "width": 89, + "x": 214.5, + "y": 316 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "CV Out" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Clamp" + }, + "position": { + "height": 17, + "width": 17, + "x": 68, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0 \n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_Simulated\",\n\t2: \"Sts_CommUncertain\",\n\t3: \"Sts_CommBad\",\n\t}\n\t\n\tSrcQ3 \u003d ((value \u0026 (2**3)) \u003d\u003d (2**3))\n\tSrcQ4 \u003d ((value \u0026 (2**4)) \u003d\u003d (2**4))\n\tSrcQ5 \u003d ((value \u0026 (2**5)) \u003d\u003d (2**5))\n\t\n\tif (SrcQ5):\n\t\tindex \u003d 3 \n\telif (SrcQ4):\n\t\tindex \u003d 2\n\telif (SrcQ3):\n\t\tindex \u003d 1\n\t\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0 \n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_Simulated\",\n\t2: \"Sts_CommUncertain\",\n\t3: \"Sts_CommBad\",\n\t}\n\t\n\tSrcQ3 \u003d ((value \u0026 (2**3)) \u003d\u003d (2**3))\n\tSrcQ4 \u003d ((value \u0026 (2**4)) \u003d\u003d (2**4))\n\tSrcQ5 \u003d ((value \u0026 (2**5)) \u003d\u003d (2**5))\n\t\n\tif (SrcQ5):\n\t\tindex \u003d 3 \n\telif (SrcQ4):\n\t\tindex \u003d 2\n\telif (SrcQ3):\n\t\tindex \u003d 1\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "GO_ControlVariable" + }, + "position": { + "height": 38, + "width": 88, + "x": 214.009, + "y": 328 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_ControlVariable" + }, + "type": "ia.display.view" + }, + { + "custom": { + "parameter": "Val_CVOut" + }, + "meta": { + "name": "Target" + }, + "position": { + "height": 20, + "width": 70, + "x": 203, + "y": 246.988 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "RateOfChange_1" + }, + "position": { + "height": 16, + "width": 89, + "x": 193.5, + "y": 229 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "Target" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Inp_Tieback" + }, + "meta": { + "name": "Tieback" + }, + "position": { + "height": 20, + "width": 70, + "x": 28.498271942138672, + "y": 183.99307250976562 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "RateOfChange_2" + }, + "position": { + "height": 16, + "width": 89, + "x": 18.498271942138672, + "y": 165.99307250976562 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "Tieback" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Inp_OvrdCV" + }, + "meta": { + "name": "OvrdCV" + }, + "position": { + "height": 20, + "width": 70, + "x": 225.0086784362793, + "y": 85 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "PSet_CV" + }, + "meta": { + "name": "ProgCV" + }, + "position": { + "height": 20, + "width": 70, + "x": 225.0086784362793, + "y": 61 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "XSet_CV" + }, + "meta": { + "name": "ExtSrcCV" + }, + "position": { + "height": 20, + "width": 70, + "x": 225, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "RateOfChangeInc_0" + }, + "position": { + "height": 20, + "width": 70, + "x": 203.471, + "y": 199.979 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_IntlkCV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "RateOfChange_3" + }, + "position": { + "height": 16, + "width": 89, + "x": 194.009, + "y": 181 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "Interlock CV" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_OSet_CV" + }, + "position": { + "height": 20, + "width": 70, + "x": 225, + "y": 14 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "({view.params.securityEnterOperSettings} \u0026\u0026 !({view.params.securityOverrideInputs} \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_Rel\"))) ||\r\n({view.params.securityOverrideInputs} \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_Rel\")) \u0026\u0026\r\ntag({view.params.tagPath} + \"/ORdy_CV\") \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxCV\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MinCV\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_CV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ShedHold\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 13 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label_3" + }, + "position": { + "height": 32, + "width": 102, + "x": 25, + "y": 5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Hold last good\nvalue" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_ShedHold\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ShedHold\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 32, + "width": 119, + "x": 1, + "y": 6 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "HoldLastGoodValue" + }, + "position": { + "height": 43, + "width": 127.99999999999999, + "x": 201.01, + "y": 119.00999999999999 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupDiagram" + }, + "position": { + "height": 394, + "width": 343, + "x": 2, + "y": 45 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 39, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line5" + }, + "position": { + "height": 90, + "width": 3, + "x": 178.505, + "y": 44.0069 + }, + "props": { + "style": { + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Icon_3" + }, + "position": { + "height": 13, + "rotate": { + "angle": "-90deg" + }, + "width": 30, + "x": 146, + "y": 85.5 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Line4" + }, + "position": { + "height": 60, + "rotate": { + "angle": "90deg" + }, + "width": 3, + "x": 176.966, + "y": 63.014 + }, + "props": { + "style": { + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 21, + "width": 33, + "x": 164, + "y": 81 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_TimeFunction.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Icon_4" + }, + "position": { + "height": 13, + "rotate": { + "angle": "+90deg" + }, + "width": 30, + "x": 184, + "y": 85.5 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Icon_5" + }, + "position": { + "height": 13, + "rotate": { + "angle": 0 + }, + "width": 30, + "x": 164, + "y": 73.0069 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Icon_6" + }, + "position": { + "height": 13, + "rotate": { + "angle": 0 + }, + "width": 30, + "x": 164, + "y": 125.007 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "Lines" + }, + "position": { + "height": 138, + "width": 340 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 209, + "y": 5 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Controlled Variable Scaling" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 55, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr" + }, + "position": { + "height": 61, + "width": 89, + "x": 74, + "y": 61 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_EU\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 55, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_0" + }, + "position": { + "height": 61, + "width": 89, + "x": 210.5, + "y": 61 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Raw\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "InputLabel" + }, + "position": { + "height": 16, + "width": 89, + "x": 66.5, + "y": 47 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center", + "textDecoration": "underline" + }, + "text": "Scaled" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "ScaledLabel" + }, + "position": { + "height": 16, + "width": 89, + "x": 203.5, + "y": 47 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center", + "textDecoration": "underline" + }, + "text": "Output" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaximumLabel" + }, + "position": { + "height": 16, + "width": 75, + "x": 10, + "y": 26 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + }, + "text": "Output CV" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaximumLabel_0" + }, + "position": { + "height": 15.999999999999986, + "width": 111, + "x": 10.51, + "y": 134.01 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + }, + "text": "Raw Output CV" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_CVOut" + }, + "meta": { + "name": "Tieback" + }, + "position": { + "height": 20, + "width": 70, + "x": 143.498, + "y": 23.993 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_Cfg_EU" + }, + "position": { + "height": 20, + "width": 70, + "x": 216.505, + "y": 24.0069 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_EU" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Cfg_CVEUMax" + }, + "position": { + "height": 20, + "width": 70, + "x": 76, + "y": 65 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVEUMax\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Cfg_CVEUMin" + }, + "position": { + "height": 20, + "width": 70, + "x": 76, + "y": 97 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVEUMin\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "MaxPV" + }, + "position": { + "height": 20, + "width": 70, + "x": 212.5, + "y": 65 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVRawMax\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "MinPV" + }, + "position": { + "height": 20, + "width": 70, + "x": 212.5, + "y": 97 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVRawMin\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "custom": { + "parameter": "Out_CV" + }, + "meta": { + "name": "Tieback_0" + }, + "position": { + "height": 20, + "width": 70, + "x": 143.505, + "y": 133.007 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "ControlValueScaling" + }, + "position": { + "height": 158, + "width": 344, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Cfg_SetTrack" + }, + "position": { + "height": 32, + "width": 340, + "y": 0.008699999999999264 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_SetTrackOvrdHand" + }, + "position": { + "height": 32, + "width": 340, + "y": 37 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrackOvrdHand", + "style": { + "overflow": "visible" + } + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_OvrdIntlk" + }, + "position": { + "height": 32, + "width": 340, + "y": 74 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OvrdIntlk", + "style": { + "overflow": "visible" + } + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_SkipRoCLim\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Bumpless transition from Override/Hand to\nProgram/Operator" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_SkipRoCLim\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SkipRoCLim\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_SkipRoCLim" + }, + "position": { + "height": 33, + "width": 340, + "y": 111 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "CheckBoxes" + }, + "position": { + "height": 147, + "width": 340, + "x": 2.5, + "y": 179.0017318725586 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageEngineering1" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0) or (value !\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label0" + }, + "position": { + "height": 16, + "width": 89, + "x": 6.5, + "y": 9 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Shed Triggers:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_Cfg_ShedOnIOFault" + }, + "position": { + "height": 32, + "width": 280, + "x": 12.5, + "y": 29.0017 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_ShedOnInterlockTrip" + }, + "position": { + "height": 32, + "width": 280, + "x": 12.5, + "y": 58.0017 + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/SC_01", + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnInterlockTrip" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Label1" + }, + "position": { + "height": 16, + "width": 89, + "x": 7.505207061767578, + "y": 100.0017318725586 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Shed Action:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ShedHold\"), false, true)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 195, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Use Set Value" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ShedHold\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 195, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_ShedHold_Off" + }, + "position": { + "height": 35, + "width": 337, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ShedHold\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 195, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Hold Last Good Value" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ShedHold\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 195, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_ShedHold_On" + }, + "position": { + "height": 35, + "width": 337, + "y": 31 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Cfg_ShedHold" + }, + "position": { + "height": 78, + "width": 340, + "x": 2, + "y": 115 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "RateOfChangeInc_0" + }, + "position": { + "height": 20, + "width": 70, + "x": 208.471, + "y": 125.979 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_IntlkCV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "PageEngineering2" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected - 1\n\t\n\tif (newTab \u003e\u003d 0):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "PrevButton" + }, + "position": { + "height": 36, + "width": 30 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Prev.png", + "style": { + "curor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 0 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page1Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 28 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 1 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page2Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 58 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected + 1\n\t\n\tif (newTab \u003c\u003d maxNumberOfTabs):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "NextButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 82 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Next.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + } + ], + "custom": { + "maintenanceTabSelected": 0, + "maxNumberOfTabs": 2 + }, + "meta": { + "name": "MaintenancePageButtons" + }, + "position": { + "height": 36, + "width": 112, + "x": 112.5, + "y": 393 + }, + "propConfig": { + "custom.pageTabSelected": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 18, + "width": 16, + "x": 150.005, + "y": 389 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_EU\") || tag({view.params.tagPath} + \"/Err_Raw\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "custom": { + "maintenanceTabSelected": null, + "pageTabSelected": 0 + }, + "meta": { + "name": "TabPage_Engineering" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 402, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "x": 80, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Desc_Label_Tag" + }, + "position": { + "height": 68.00000000000001, + "width": 340, + "x": 5, + "y": 3.99 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_Area" + }, + "position": { + "height": 20, + "width": 340, + "x": 5, + "y": 70.987 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityConfigSecurity": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "TextConfig" + }, + "position": { + "height": 200, + "width": 350, + "y": 47 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_CVDecimalPlaces" + }, + "position": { + "height": 32, + "width": 340, + "x": 5, + "y": 7.006900000000002 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "parameterName": "Cfg_DecPlcs", + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_CVDecimalPlaces" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "HMIConfig" + }, + "position": { + "height": 275, + "width": 350, + "y": 164 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_HMI" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 306, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_AOut_Advanced", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 346 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 369 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 392 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 415 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonEngineering" + }, + "position": { + "height": 35, + "width": 35, + "x": 42 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Eng.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHMI" + }, + "position": { + "height": 35, + "width": 35, + "x": 81 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_HMI.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 311 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Limit\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigEng" + }, + "position": { + "height": 16, + "width": 16, + "x": 63, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_EU\") || tag({view.params.tagPath} + \"/Err_Raw\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 35, + "width": 346, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0\n\tself.getChild(\"TabPage_Engineering\").custom.pageTabSelected \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm/resource.json new file mode 100644 index 0000000..f3443a0 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "e668a6ec3e88ce5a330b866e7701136c133a9d5971aa2f9fedd466e711e0af84", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..85ed7827e25df9abec8e5a926b3de8767b906589 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^i-0(dg9%6;e|h&EkaG8QaSW-5dwbB35y(5V;H!Tw fFaH7{lOzzwbBK$9(R^LmS&%kQS3j3^P6JAmE literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm/view.json new file mode 100644 index 0000000..0b67e02 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm/view.json @@ -0,0 +1,2920 @@ +{ + "custom": {}, + "params": { + "securityAlarmConfig": true, + "securityAlarmDisable": true, + "securityAlarmShelve": true, + "securityBypassFeedback": true, + "securityBypassInterlocks": true, + "securityDeviceConfigLimits": true, + "securityEnableSimulation": true, + "securityEnterOperSettings": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/P_Ain/Fail", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "params.securityAlarmConfig": { + "binding": { + "config": { + "expression": "\"securityAlarmConfig\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityAlarmDisable": { + "binding": { + "config": { + "expression": "\"securityAlarmDisable\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityAlarmShelve": { + "binding": { + "config": { + "expression": "\"securityAlarmShelve\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityBypassFeedback": { + "binding": { + "config": { + "expression": "\"securityBypassFeedback\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityBypassInterlocks": { + "binding": { + "config": { + "expression": "\"securityBypassInterlocks\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigLimits": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigLimits\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnterOperSettings": { + "binding": { + "config": { + "expression": "\"securityEnterOperSettings\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "input", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 225, + "width": 345 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "masiAlarmState" + }, + "position": { + "height": 16, + "width": 336, + "x": 6, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Disabled\") ||\r\ntag({view.params.tagPath} + \"/Shelved\") || \r\ntag({view.params.tagPath} + \"/Suppressed\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tCfg_Cond \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Cond\"])[0].value\n\t\n\tstates \u003d {\n\t0: Cfg_Cond,\n\t1: \"{0} Disabled\".format(Cfg_Cond),\n\t2: \"{0} Shelved\".format(Cfg_Cond),\n\t3: \"{0} Suppressed\".format(Cfg_Cond),\n\t}\n\t\n\tDisabled \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Disabled\"])[0].value\n\tShelved \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Shelved\"])[0].value\n\tSuppressed \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Suppressed\"])[0].value\n\t\n\tif (Disabled):\n\t\tindex \u003d 1\n\telif (Shelved):\n\t\tindex \u003d 2\n\telif (Suppressed):\n\t\tindex \u003d 3\t\n\t\n\ttry:\n\t\tret_value \u003d states[index]\n\texcept:\n\t\tret_value \u003d \"Error\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_Notify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 20, + "width": 347 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_Notify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "solid", + "borderRightWidth": 2, + "borderTopStyle": "solid", + "borderTopWidth": 2, + "key": "value" + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "alarmParameterName": "FailToStop" + }, + "meta": { + "name": "AlarmNotify" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmNotices" + }, + "position": { + "height": 20, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AbnormalSeparatorLine" + }, + "position": { + "height": 2, + "width": 352, + "y": 20 + }, + "props": { + "style": { + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAck_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAck.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Ack\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_Ack\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOAckButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 254, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Reset\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_Reset\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 254, + "y": 48 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AbbieNormals" + }, + "position": { + "height": 95, + "width": 421, + "x": -1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Exists\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AlarmDoesNotExist" + }, + "position": { + "height": 48, + "width": 290, + "x": 4.5, + "y": 6 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_Exists\"), false, true)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Cond\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"The alarm \u0027{0}\u0027 is not configured to exist for this device\".format(value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "GOValStsVSD", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 20, + "width": 240 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Exists\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Alm\") ||\r\ntag({view.params.tagPath}+ \"/Ack\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tAlm \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Alm\"])[0].value\n\tAck \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Ack\"])[0].value\n\t\n\tstates \u003d {\n\t0: \"Alarm Not Active\",\n\t1: \"Unacknowledged\",\n\t2: \"In Alarm, Unacknowledged\",\n\t3: \"In Alarm, Acknowledged\"\n\t}\n\t\n\tif (Alm and Ack):\n\t\tindex \u003d 3\n\telif (Alm):\n\t\tindex \u003d 2\n\telif (Ack):\n\t\tindex \u003d 0\n\telse:\n\t\tindex \u003d 1\n\t\t\n\tret_value \u003d states[index]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#D4D4D4", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "Left" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 127, + "x": 21 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + }, + "text": "Alarm Input Status" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "bidAlarmInputValue" + }, + "position": { + "height": 17, + "width": 150, + "y": 1 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Disabled\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Alm_Disabled\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 127, + "x": 21 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + }, + "text": "Alarm Disabled" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "bidAlarmDisabled" + }, + "position": { + "height": 17, + "width": 150 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Shelved\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Alm_Shelved\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 127, + "x": 21 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + }, + "text": "Alarm Shelved" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "bidAlarmShelved" + }, + "position": { + "height": 17, + "width": 150, + "y": 20 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Disabled\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Alm_Supp\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 127, + "x": 21 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + }, + "text": "Alarm Suppressed" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "bidAlarmSuppressed" + }, + "position": { + "height": 17, + "width": 150, + "y": 40 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Group" + }, + "position": { + "height": 63, + "width": 166, + "y": 30.01 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Exists\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Group" + }, + "position": { + "height": 94, + "width": 168, + "y": 22 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InformationSection" + }, + "position": { + "height": 116, + "width": 240, + "x": 3.01, + "y": 26 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 195, + "y": 4 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_MinToUnshelve\") || tag({view.params.tagPath} + \"/Val_SecToUnshelve\")" + }, + "transforms": [ + { + "code": "\tVal_MinToUnshelve \u003d \"%02d\" % system.tag.readBlocking([self.view.params.tagPath + \"/Val_MinToUnshelve\"])[0].value\n\tVal_SecToUnshelve \u003d \"%02d\" % system.tag.readBlocking([self.view.params.tagPath + \"/Val_MinToUnshelve\"])[0].value\n\tret_value \u003d \"Remaining Shelve Time: {0}:{1}\".format(Val_MinToUnshelve, Val_SecToUnshelve)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmShelve_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmShelve.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Shelve\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.securityAlarmShelve} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Shelve\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOShelveButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 249 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmUnshelve_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmUnshelve.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Unshelve\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.securityAlarmShelve} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Unshelve\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOUnshelveButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 204.00657653808594, + "y": 0.00164031982421875 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ShelveAlarm" + }, + "position": { + "height": 40, + "width": 290, + "x": 4, + "y": 177 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Exists\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content1" + }, + "position": { + "height": 226, + "width": 439, + "x": 44 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 224, + "width": 342, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0) or ((value !\u003d 1) and (value !\u003d 2) and (value !\u003d 3))", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 224, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40, + "y": 1 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Cond\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_Alarm/P_Alarm_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "GroupNavToAdvanced" + }, + "position": { + "height": 42, + "width": 42 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Accum.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GORuntimeButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 47, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasRunTimeObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px", + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_ResInh.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GORestartInhibitButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 92, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasResInhObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px", + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "MtceNavButtons" + }, + "position": { + "height": 42, + "width": 190, + "x": 45.9974, + "y": 2 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 90 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFaceWide_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 40, + "width": 90 + }, + "props": { + "style": { + "color": "#3F3F3F47", + "fontSize": "10pt", + "textAlign": "center" + }, + "text": "Test Alarm" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 90 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 90 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFaceWide_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 40, + "width": 90 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + }, + "text": "Test Alarm" + }, + "type": "ia.display.label" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Test\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 90 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.securityEnableSimulation} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_Test\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOAlarmTestButton" + }, + "position": { + "height": 40, + "width": 90, + "x": 189, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Disabled\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Disabled\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Enable\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 2, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityAlarmDisable} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Disable\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 56, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityAlarmDisable} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 133, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 101, + "y": 7 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Disable Alarm" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "tgl_AlarmDisableControl" + }, + "position": { + "height": 40, + "width": 262, + "x": 46.5, + "y": 52 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 290, + "y": 7 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 182 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Alarm Severity" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "TitleWithSeparator" + }, + "position": { + "height": 20, + "width": 290, + "y": 9 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ndeCfgSeverity" + }, + "position": { + "height": 20, + "width": 53, + "x": 3, + "y": 4.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityAlarmConfig} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "0" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_Severity\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 1000, + "minimum": 1 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 25, + "width": 59, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 56, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr" + }, + "position": { + "height": 29, + "width": 75 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Severity\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ndeCfgSeverity" + }, + "position": { + "height": 30, + "width": 78, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 18, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Severity\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d { \n\t0: \"Alm_PriorityLo\", \n\t1: \"Alm_PriorityMed\", \n\t2: \"Alm_PriorityHi\",\n\t3: \"Alm_PriorityUrg\",\n\t}\n\t\n\tCfg_Severity \u003d value\n\n\tif (Cfg_Severity \u003e 750):\n\t\tindex \u003d 3\n\telif (Cfg_Severity \u003e 500):\n\t\tindex \u003d 2\n\telif (Cfg_Severity \u003e 250):\n\t\tindex \u003d 1\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 17, + "width": 77, + "x": 21, + "y": 0.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Severity\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tstates \u003d { \n\t0: \"Low\", \n\t1: \"Medium\", \n\t2: \"High\",\n\t3: \"Urgent\",\n\t}\n\t\n\tCfg_Severity \u003d value\n\n\tif (Cfg_Severity \u003e 750):\n\t\tindex \u003d 3\n\telif (Cfg_Severity \u003e 500):\n\t\tindex \u003d 2\n\telif (Cfg_Severity \u003e 250):\n\t\tindex \u003d 1\n\t\n\ttry:\n\t\tret_value \u003d states[index]\n\texcept:\n\t\tret_value \u003d \"Error\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "msiSeverityIndicator" + }, + "position": { + "height": 18, + "width": 100, + "x": 80, + "y": 11 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Group" + }, + "position": { + "height": 40, + "width": 191, + "y": 29 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Slider" + }, + "position": { + "height": 24, + "width": 272, + "x": 9, + "y": 4 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityAlarmConfig} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_Severity\"" + }, + "type": "tag" + } + } + }, + "props": { + "fillColor": "#FFFFFF", + "handleColor": "#C0C0C0", + "max": 1000, + "min": 1, + "railColor": "#C0C0C0", + "trackColor": "#C0C0C0" + }, + "type": "ia.input.slider" + }, + { + "children": [ + { + "meta": { + "name": "PolygonLow" + }, + "position": { + "height": 3, + "width": "25%" + }, + "props": { + "style": { + "borderTopColor": "#916AAD", + "borderTopStyle": "solid", + "borderTopWidth": "3px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "PolygonMedium" + }, + "position": { + "height": 3, + "width": "25%", + "x": "25%" + }, + "props": { + "style": { + "borderTopColor": "#F5E11B", + "borderTopStyle": "solid", + "borderTopWidth": "3px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "PolygonHigh" + }, + "position": { + "height": 3, + "width": "25%", + "x": "50%" + }, + "props": { + "style": { + "borderTopColor": "#EC8629", + "borderTopStyle": "solid", + "borderTopWidth": "3px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "PolygonUrgent" + }, + "position": { + "height": 3, + "width": "25%", + "x": "75%" + }, + "props": { + "style": { + "borderTopColor": "#E22028", + "borderTopStyle": "solid", + "borderTopWidth": "3px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmBackgroundColors" + }, + "position": { + "height": 5, + "width": 272, + "x": 10, + "y": 32 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 17, + "width": 50, + "x": 18, + "y": 5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "1-250" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_0" + }, + "position": { + "height": 17, + "width": 50, + "x": 86, + "y": 5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "251-500" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_1" + }, + "position": { + "height": 17, + "width": 50, + "x": 224, + "y": 5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "751-1000" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_2" + }, + "position": { + "height": 17, + "width": 50, + "x": 156, + "y": 5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "501-750" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "AlarmSliderLabels" + }, + "position": { + "height": 25, + "width": 290, + "y": 32 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "SeveritySlider" + }, + "position": { + "height": 57, + "width": 290, + "y": 53 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "CfgSeverity" + }, + "position": { + "height": 110, + "width": 290, + "x": 43, + "y": 111 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 224, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "width": 32, + "x": 2, + "y": 250 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Help.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\") || tag({view.params.tagPath} + \"/Err_Severity\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 287, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm_Advanced/resource.json new file mode 100644 index 0000000..cbd003c --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "6a8170e686833eeb72212a67d3c2adcede2692998d83681fdcfc4d6764dddf87", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Alarm/P_Alarm_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4ea79f55ca5da069eac9ddcac1cc7b505749dd GIT binary patch literal 17468 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 IM6N<$f^W$SX#fBK literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc/view.json new file mode 100644 index 0000000..1fa53cf --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc/view.json @@ -0,0 +1,3592 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityBypassInterlocks": true, + "securityCmdSrcMaint": true, + "securityCmdSrcOperProg": true, + "securityCmdSrcOutOfService": true, + "securityEnableSimulation": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/P_DOut/CmdSrc", + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityBypassInterlocks": { + "binding": { + "config": { + "expression": "\"securityBypassInterlocks\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityCmdSrcMaint": { + "binding": { + "config": { + "expression": "\"securityCmdSrcMaint\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityCmdSrcOperProg": { + "binding": { + "config": { + "expression": "\"securityCmdSrcOperProg\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityCmdSrcOutOfService": { + "binding": { + "config": { + "expression": "\"securityCmdSrcOutOfService\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 170, + "width": 245 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "CmdBtnFaceHighlightDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_HighlightDisabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_CmdSrcProg_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "NoPrivProg" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "CmdBtnFaceHighlightDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_HighlightReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_CmdSrcProg.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Prog\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.securityCmdSrcOperProg} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Prog\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ButtonGrp_Prog" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "CmdBtnFaceHighlightDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_HighlightDisabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_CmdSrcOper_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "NoPrivProg" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "CmdBtnFaceHighlightDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_HighlightReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_CmdSrcOper.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Oper\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.securityCmdSrcOperProg} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Oper\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ButtonGrp_Oper" + }, + "position": { + "height": 40, + "width": 40, + "x": 47 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOper\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "CmdBtnFaceHighlightDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_HighlightDisabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_CmdSrcOperLock_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "NoPrivProg" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "CmdBtnFaceHighlightDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_HighlightReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_CmdSrcOperLock.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Lock\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.securityCmdSrcOperProg} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Lock\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ButtonGrp_Lock" + }, + "position": { + "height": 40, + "width": 40, + "x": 94 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOperLocked\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOOperatorButtons" + }, + "position": { + "height": 40, + "width": 140, + "x": 51, + "y": 58 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 180 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Place in External Control" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Ext\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Ext\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/XCmd_Rel\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 2, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityCmdSrcOperProg} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/XRdy_Rel\")" + }, + "type": "expr" + } + } + }, + "props": { + "align": "start", + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/XCmd_Acq\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 56, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityCmdSrcOperProg} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/XRdy_Acq\")" + }, + "type": "expr" + } + } + }, + "props": { + "align": "end", + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 73, + "y": 28 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOExternalControl" + }, + "position": { + "height": 60, + "width": 190, + "x": 40, + "y": 106 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasExt\") \u0026\u0026 !tag({view.params.tagPath} + \"/Cfg_ExtAcqAsLevel\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content1" + }, + "position": { + "height": 170, + "width": 242, + "x": 3 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 170, + "width": 242, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 170, + "width": 242 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "CmdBtnFaceHighlightDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_HighlightDisabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_CmdSrcMaintAcq_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "NoPrivProg" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "CmdBtnFaceHighlightDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_HighlightReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_CmdSrcMaintAcq.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Acq\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.securityCmdSrcMaint} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_Acq\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ButtonGrp_Maint" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "CmdBtnFaceHighlightDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_HighlightDisabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_CmdSrcMaintRel_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "NoPrivProg" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "CmdBtnFaceHighlightDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_HighlightReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_CmdSrcMaintRel.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Rel\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.securityCmdSrcMaint} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_Rel\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ButtonGrp_InSvc" + }, + "position": { + "height": 40, + "width": 40, + "x": 47 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOMtceButtons" + }, + "position": { + "height": 40, + "width": 90, + "x": 11, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 180 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Take Device Out of Service" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**2)) \u003d\u003d (2**2))\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**2)) \u003d\u003d (2**2))\n\t\n\tif (check_value):\n\t\tret_value \u003d 20\n\telse:\n\t\tret_value \u003d 0\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_IS\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 2, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityCmdSrcOutOfService} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_IS\")" + }, + "type": "expr" + } + } + }, + "props": { + "align": "start", + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_OoS\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 56, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityCmdSrcOutOfService} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_OoS\")" + }, + "type": "expr" + } + } + }, + "props": { + "align": "end", + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 73, + "y": 28 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOOutOfServiceControl" + }, + "position": { + "height": 60, + "width": 190, + "y": 44 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasMOoS\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content1" + }, + "position": { + "height": 105, + "width": 190, + "x": 43, + "y": 54 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_CmdSrc/P_CmdSrc_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupNavToAdvanced" + }, + "position": { + "height": 42, + "width": 42, + "x": 189, + "y": 57 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 170, + "width": 242, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 124 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 170, + "width": 242 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 120, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 70, + "x": 115, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_CmdSrc", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 189, + "x": 48, + "y": 76 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 120, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 70, + "x": 115, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 189, + "x": 48, + "y": 99 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 120, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 70, + "x": 115, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 189, + "x": 48, + "y": 122 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 120, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 70, + "x": 115, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 189, + "x": 48, + "y": 145 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 170, + "width": 242, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 2, + "y": 120 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 157, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "CmdSrcNotNormal" + }, + "position": { + "height": 16, + "width": 16, + "x": 177 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Normal\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_CmdSrcNotNorm.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "CmdSrcImage" + }, + "position": { + "height": 17, + "width": 16, + "x": 5, + "y": 4 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(states[index][0])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 162, + "x": 26, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[index][1]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontSize": "10pt", + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GOCmdSrcDisplay" + }, + "position": { + "height": 24, + "width": 194 + }, + "props": { + "style": { + "backgroundColor": "#D4D4D4" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 17, + "width": 16, + "x": 3, + "y": 2 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcHand.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shade" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**0)) \u003d\u003d (2**0)) # Get bit 0 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/ShadeCover.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupHandReq" + }, + "position": { + "height": 21, + "width": 23 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 17, + "width": 16, + "x": 3, + "y": 2 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOoS.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shade" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**1)) \u003d\u003d (2**1)) or ((Sts_bSrc \u0026 (2**2)) \u003d\u003d (2**2)) # Get bit 1 or 2 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/ShadeCover.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupOurOfServiceReq" + }, + "position": { + "height": 21, + "width": 23, + "x": 26 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 17, + "width": 16, + "x": 3, + "y": 2 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcMaint.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shade" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**3)) \u003d\u003d (2**3)) # Get bit 3 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/ShadeCover.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupMaintReq" + }, + "position": { + "height": 21, + "width": 23, + "x": 52 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 17, + "width": 16, + "x": 3, + "y": 2 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOvrd.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shade" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**4)) \u003d\u003d (2**4)) # Get bit 4 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/ShadeCover.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupOvrdReq" + }, + "position": { + "height": 21, + "width": 23, + "x": 78 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 17, + "width": 16, + "x": 3, + "y": 2 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOperLocked.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shade" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**8)) \u003d\u003d (2**8)) # Get bit 8 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/ShadeCover.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupOperLockedReq" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**6)) \u003d\u003d (2**6)) or ((Sts_bSrc \u0026 (2**7)) \u003d\u003d (2**7)) # Get bit 6 or 7 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 17, + "width": 16, + "x": 3, + "y": 2 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcProgLocked.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shade" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**6)) \u003d\u003d (2**6)) # Get bit 6 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/ShadeCover.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupProgLockedReq" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**6)) \u003d\u003d (2**6)) or ((Sts_bSrc \u0026 (2**7)) \u003d\u003d (2**7)) # Get bit 6 or 7 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupProgOperLocked" + }, + "position": { + "height": 21, + "width": 23, + "x": 26 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 17, + "width": 16, + "x": 3, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasExt\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcExt.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shade" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**5)) \u003d\u003d (2**5)) # Get bit 5 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/ShadeCover.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupExtReq" + }, + "position": { + "height": 21, + "width": 23 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupExtOverLock" + }, + "position": { + "height": 21, + "width": 49, + "x": 104 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ExtOverLock\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 17, + "width": 16, + "x": 3, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasExt\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcExt.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shade" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**5)) \u003d\u003d (2**5)) # Get bit 5 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/ShadeCover.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupExtReq" + }, + "position": { + "height": 21, + "width": 23, + "x": 26 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 17, + "width": 16, + "x": 3, + "y": 2 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOperLocked.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shade" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**8)) \u003d\u003d (2**8)) # Get bit 8 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/ShadeCover.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupOperLockedReq" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**6)) \u003d\u003d (2**6)) or ((Sts_bSrc \u0026 (2**7)) \u003d\u003d (2**7)) # Get bit 6 or 7 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 17, + "width": 16, + "x": 3, + "y": 2 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcProgLocked.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shade" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**6)) \u003d\u003d (2**6)) # Get bit 6 from Sts_bSrc\n\t\n\tif (check_value):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/ShadeCover.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupProgLockedReq" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOperLocked\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupProgOperLocked" + }, + "position": { + "height": 21, + "width": 23 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupNotExtOverLock" + }, + "position": { + "height": 21, + "width": 49, + "x": 104 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ExtOverLock\"), false, true)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 17, + "width": 16, + "x": 3, + "y": 2 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOper.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shade", + "visible": false + }, + "position": { + "height": 21, + "width": 23 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/ShadeCover.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "DefaultProg" + }, + "position": { + "height": 15, + "rotate": { + "angle": 45 + }, + "width": 1, + "y": -5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ProgNormal\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupOperLockedReq" + }, + "position": { + "height": 21, + "width": 23 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 17, + "width": 16, + "x": 3, + "y": 2 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcProgram.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shade", + "visible": false + }, + "position": { + "height": 21, + "width": 23 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/ShadeCover.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "DefaultProg" + }, + "position": { + "height": 15, + "rotate": { + "angle": 45 + }, + "width": 1, + "y": -5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ProgNormal\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupProgLockedReq" + }, + "position": { + "height": 21, + "width": 23 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_bSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d True\n\t\n\tSts_bSrc \u003d value\n\tCfg_HasProg \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasProg\"])[0].value\n\tCfg_HasOper \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasOper\"])[0].value \n\t\n\tcheck_value \u003d ((Sts_bSrc \u0026 (2**7)) \u003d\u003d (2**7)) or (((Sts_bSrc \u0026 (2**6)) \u003d\u003d (2**6)) and Cfg_HasProg) or (not(Cfg_HasOper)) \n\t\n\tif (check_value):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupProgOperLocked" + }, + "position": { + "height": 21, + "width": 23, + "x": 156 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOCmdSrcActiveDisplay" + }, + "position": { + "height": 21, + "width": 179, + "y": 25 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "StaticGroup" + }, + "position": { + "height": 49, + "width": 194, + "x": 45, + "y": 1 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc_Advanced/resource.json new file mode 100644 index 0000000..daa566f --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "a0ffb1dd95ad2757347124d5bfd3946dae169851f272a3c3e18e8319e2eb5a45", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..66eedc30b2d28973e2c6b3cdc783e0dcdc7e7006 GIT binary patch literal 14662 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 IQRCqM3&ewgZU6uP literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc_Advanced/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc_Advanced/view.json new file mode 100644 index 0000000..77bffba --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_CmdSrc/P_CmdSrc_Advanced/view.json @@ -0,0 +1,4158 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityDeviceConfigBehavior": true, + "securityDeviceConfigFailTimers": true, + "securityDeviceConfigHMI": true, + "securityDeviceConfigLimits": true, + "securityDeviceConfigTimers": true, + "securityEnableSimulation": true, + "securityEnterOperSettings": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/P_Motor/CmdSrc", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigFailTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigFailTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigLimits": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigLimits\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnterOperSettings": { + "binding": { + "config": { + "expression": "\"securityEnterOperSettings\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 442, + "width": 350 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 39, + "width": 37 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 39, + "width": 117, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label0" + }, + "position": { + "height": 16, + "width": 316, + "x": 6.5, + "y": 17 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Command source which is considered \u0027Normal\u0027" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ProgNormal\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Program" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ProgNormal\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_ProgNormal_Program" + }, + "position": { + "height": 35, + "width": 161, + "x": 5, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ProgNormal\"), false, true)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Operator" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ProgNormal\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_ProgNormal_Operator" + }, + "position": { + "height": 35.00000000000001, + "width": 161, + "x": 5, + "y": 35 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Cfg_ProgNormal" + }, + "position": { + "height": 73, + "width": 340, + "x": 2, + "y": 43 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label1" + }, + "position": { + "height": 16, + "width": 316, + "x": 7, + "y": 121 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Command Source to use on device power-up" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ProgPwrUp\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Program" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ProgPwrUp\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_ProgPwrUp_Program" + }, + "position": { + "height": 35, + "width": 161, + "x": 5, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ProgPwrUp\"), false, true)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Operator" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ProgPwrUp\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_ProgPwrUp_Operator" + }, + "position": { + "height": 35.00000000000001, + "width": 161, + "x": 5, + "y": 35 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Cfg_ProgPwrUp" + }, + "position": { + "height": 73, + "width": 340, + "x": 2, + "y": 147 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label2" + }, + "position": { + "height": 16, + "width": 316, + "x": 7, + "y": 232 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Command Priority - when simultaneous requests occur" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_PCmdPriority\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Program wins" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PCmdPriority\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_PCmdPriority_Program" + }, + "position": { + "height": 35, + "width": 161, + "x": 5, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_PCmdPriority\"), false, true)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Operator wins" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PCmdPriority\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_PCmdPriority_Operator" + }, + "position": { + "height": 35.00000000000001, + "width": 161, + "x": 5, + "y": 35 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Cfg_PCmdPriority" + }, + "position": { + "height": 73, + "width": 340, + "x": 2, + "y": 258 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageEngineering1" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_OvrdOverLock\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Override supersedes Program or Operator lock" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_OvrdOverLock\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_OvrdOverLock\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_OvrdOverLock" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": -1 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ExtOverLock\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "External supersedes Program or Operator lock" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_ExtOverLock\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ExtOverLock\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_ExtOverLock" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 35 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasMaint\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Maintenance Control Exists" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasMaint\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasMaint\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasMaint" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 71 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasMOoS\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Maintenance Out of Service exists" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasMOoS\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasMOoS\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasMOoS" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 107 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOper\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced} \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_eSrc\") \u003d 129)" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Operator (Unlocked) exists *" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasOper\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasOper\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced} \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_eSrc\") \u003d 129)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasOper" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 143 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOperLocked\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced} \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_eSrc\") \u003d 129)" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Operator Locked exists *" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasOperLocked\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasOperLocked\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced} \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_eSrc\") \u003d 129)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasOperLocked" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 179 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasProg\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced} \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_eSrc\") \u003d 129)" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Program (Unlocked) exists *" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasProg\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasProg\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced} \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_eSrc\") \u003d 129)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasProg" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 215 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasProgLocked\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced} \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_eSrc\") \u003d 129)" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Program Locked exists *" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasProgLocked\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasProgLocked\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced} \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_eSrc\") \u003d 129)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasProgLocked" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 251 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label2" + }, + "position": { + "height": 16, + "width": 316, + "x": 7, + "y": 302 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "* Logic EnableIn must be False (programmed out of service) to change this configuration" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "PageEngineering2" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasExt\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "External exists" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasExt\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasExt\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasExt" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": -1 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_PCmdLockAsLevel\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "PCmd_Lock used as a level (1\u003dlock, 0\u003dunlock)" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PCmdLockAsLevel\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PCmdLockAsLevel\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_PCmdLockAsLevel" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 35 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_PCmdProgAsLevel\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "PCmd_Prog used as a level (1\u003dProg, 0\u003dOper)" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PCmdProgAsLevel\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PCmdProgAsLevel\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_PCmdProgAsLevel" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 71 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ExtAcqAsLevel\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "XCmd_Acq used as a level (1\u003dExt, 0\u003dRelease Ext)" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_ExtAcqAsLevel\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ExtAcqAsLevel\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_ExtAcqAsLevel" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 107 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageEngineering3" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 2)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected - 1\n\t\n\tif (newTab \u003e\u003d 0):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "PrevButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 91 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Prev.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 0 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page1Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 118.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 1 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page2Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 147.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 2 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page3Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 176.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected + 1\n\t\n\tif (newTab \u003c\u003d maxNumberOfTabs):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "NextButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 200 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Next.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + } + ], + "custom": { + "maintenanceTabSelected": 0, + "maxNumberOfTabs": 3 + }, + "meta": { + "name": "PageButtons" + }, + "position": { + "height": 36, + "width": 321, + "x": 14, + "y": 393 + }, + "propConfig": { + "custom.pageTabSelected": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 18, + "width": 16, + "x": 180.005, + "y": 389 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Sim\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "custom": { + "pageTabSelected": 0 + }, + "meta": { + "name": "TabPage_Engineering" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 0", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 306, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_CmdSrc_Advanced", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 346 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 369 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 392 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 415 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonEngineering" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Eng.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 311 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigEng" + }, + "position": { + "height": 16, + "width": 16, + "x": 63, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Sim\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 35, + "width": 346, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0\n\tself.getChild(\"TabPage_Engineering\").custom.pageTabSelected \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn/resource.json new file mode 100644 index 0000000..81fb317 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "fb40942e6f055ec907ff0839cf61730205321b0e8e0b9695da825f8c2279f00c", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..2fb0b0ca063ae1462038591b628da944a5e56f35 GIT binary patch literal 5924 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn/view.json new file mode 100644 index 0000000..571dfce --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn/view.json @@ -0,0 +1,4013 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityEnableSimulation": true, + "securityOverrideInputs": true, + "selectedTab": 3, + "tagPath": "[DH1]Block 1/Process/Discrete/AAH_15", + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 392 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 37, + "width": 39, + "y": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab4" + }, + "position": { + "height": 37, + "width": 39, + "y": 120 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "StatusText_Normal" + }, + "position": { + "height": 16, + "width": 42, + "x": 6, + "y": 2 + }, + "props": { + "text": "Normal", + "textStyle": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "TgtDisagree" + }, + "meta": { + "name": "AlarmNotify_TgtDisagree" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IOFault" + }, + "meta": { + "name": "AlarmNotify_IOFault" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmNotices" + }, + "position": { + "height": 20, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AbnormalSeparatorLine" + }, + "position": { + "height": 2, + "width": 352, + "y": 20 + }, + "props": { + "style": { + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content1" + }, + "position": { + "height": 45, + "width": 403, + "x": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 21, + "width": 80, + "y": 14 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_TgtDisagree\") \u003d True, \"#000000\", \"#E0E0E0\")" + }, + "type": "expr" + } + }, + "props.style.color": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_TgtDisagree\") \u003d True, \"#FFFFFF\", \"#2A4191\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Sts\"), upper(tag({view.params.tagPath}+ \"/Cfg_1StText\")), upper(tag({view.params.tagPath}+ \"/Cfg_0StText\")))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 72, + "x": 4 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "PV" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Exceptions" + }, + "position": { + "height": 17, + "width": 16, + "x": 84, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\t\n\tSrcQ \u003d value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (SrcQ \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (SrcQ \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (SrcQ \u0026 32) \u003d\u003d 32\n\n\tif (SrcQ5):\n\t\tindex \u003d 3\n\telif (SrcQ4):\n\t\tindex \u003d 2\n\telif (SrcQ3):\n\t\tindex \u003d 1\n\n\tif (index \u003e 0):\n\t\tret_value \u003d True\t\t\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t 0: \"\",\n\t 1: \"Sts_Simulated\",\n\t 2: \"Sts_CommUncertain\",\n\t 3: \"Sts_CommBad\",\n\t}\n\t\t\t\n\tSrcQ \u003d value\n\tindex \u003d 0\n\t\n\tSrcQ3 \u003d (SrcQ \u0026 8) \u003d\u003d 8\n\tSrcQ4 \u003d (SrcQ \u0026 16) \u003d\u003d 16\n\tSrcQ5 \u003d (SrcQ \u0026 32) \u003d\u003d 32\n\n\tif (SrcQ5 \u003d\u003d True):\n\t\tindex \u003d 3\n\telif (SrcQ4 \u003d\u003d True):\n\t\tindex \u003d 2\n\telif (SrcQ3 \u003d\u003d True):\n\t\tindex \u003d 1\n\telse:\n\t\tindex \u003d 0\n\n\ttry:\n\t\tret_value \u003d images_path.format(images[index])\n\texcept:\n\t\tret_value \u003d images_path.format(\"Error\")\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "Status" + }, + "position": { + "height": 35, + "width": 100, + "x": 16 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 72, + "x": 20, + "y": 12 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Inp_Target\"), upper(tag({view.params.tagPath}+ \"/Cfg_1StText\")), upper(tag({view.params.tagPath}+ \"/Cfg_0StText\")))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 120 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "Target" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Inp_Target" + }, + "position": { + "height": 30, + "width": 120, + "y": 45 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InformationSection" + }, + "position": { + "height": 75, + "width": 120 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content2" + }, + "position": { + "height": 253, + "width": 330, + "x": 60, + "y": 42 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 0", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_DIn/P_DIn_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupNavToAdvanced" + }, + "position": { + "height": 42, + "width": 42, + "x": 50, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 180, + "x": 30 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/TgtDisagreeGate/Cfg_InpCond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 21, + "width": 80, + "x": 10, + "y": 14 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Sts\"), upper(tag({view.params.tagPath}+ \"/Cfg_1StText\")), upper(tag({view.params.tagPath}+ \"/Cfg_0StText\")))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 100 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "Current Value" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CurrentValue" + }, + "position": { + "height": 35, + "width": 100, + "y": 24 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 21, + "width": 72, + "x": 14, + "y": 14 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Inp_Target\"), upper(tag({view.params.tagPath}+ \"/Cfg_1StText\")), upper(tag({view.params.tagPath}+ \"/Cfg_0StText\")))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 100 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "Target" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Target" + }, + "position": { + "height": 35, + "width": 100, + "x": 53 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "CoordinateContainer" + }, + "position": { + "height": 1, + "width": 69, + "x": -4.00302, + "y": 24.2611 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftStyle": "none", + "borderRightStyle": "none", + "borderTopColor": "#6A6A6A", + "borderTopStyle": "dashed", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 21, + "width": 21, + "x": 7 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_NotEqual.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "RightArrow" + }, + "position": { + "height": 21, + "width": 10, + "x": 25 + }, + "props": { + "color": "#000000", + "path": "material/chevron_left" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "RightArrow_0" + }, + "position": { + "height": 21, + "width": 10 + }, + "props": { + "color": "#000000", + "path": "material/chevron_right" + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "NotEqualWithArrows" + }, + "position": { + "height": 21, + "width": 35, + "x": 14.9792, + "y": 13.9881 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TargetGroup" + }, + "position": { + "height": 35, + "width": 154, + "x": 89, + "y": 24 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 130, + "x": 14.932759259033219, + "y": 22.954366296386723 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Out\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tstates \u003d {\n\t0: \"Target Agree\",\n\t1: \"Target Disagree\",\n\t2: \"Target Disagree Warning\",\n\t3: \"Target Disagree Failure\",\n\t}\n\t\n\tOut \u003d value\n\tparam101 \u003d self.parent.custom.param101\n\t\n\tif (not(Out)):\n\t\tindex \u003d 0\n\telif (param101 \u003d\u003d 2):\n\t\tindex \u003d 2\n\telif (param101 \u003d\u003d 3):\n\t\tindex \u003d 3\n\telse:\n\t\tindex \u003d 1\n\t\n\tret_value \u003d states[index]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#475CA7", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 17, + "x": 71.7749, + "y": 8.8606 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Out\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_Good\",\n\t1: \"Sts_NotOK\",\n\t}\n\t\n\tOut \u003d value\n\t\n\tif (Out \u003d\u003d 0):\n\t\tindex \u003d 0\n\telif (Out \u003d\u003d 1):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "height": 16, + "mode": "fill", + "width": 16 + } + }, + "type": "ia.display.image" + } + ], + "custom": { + "gateName": "TgtDisagree", + "param101": 1 + }, + "meta": { + "name": "GateResult" + }, + "position": { + "height": 48, + "width": 160, + "x": -0.5, + "y": 56 + }, + "props": { + "style": { + "backgroundColor": "#C6C6C6", + "borderColor": "#AAAAAA", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Line" + }, + "position": { + "height": 59, + "width": 1, + "x": 79, + "y": -1 + }, + "props": { + "style": { + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "dashed", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 130, + "x": 4, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Gate\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tSts_Gate \u003d value\n\t\n\tif (Sts_Gate):\n\t\tret_value \u003d \"Gate Pass\"\n\telif (not(Sts_Gate)):\n\t\tret_value \u003d \"Gate Blocked\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#475CA7", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16, + "x": 122 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Err\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tSts_Error \u003d value\n\t\n\tif (Sts_Error):\n\t\tret_value \u003d True\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "custom": { + "gateName": "TgtDisagree" + }, + "meta": { + "name": "GateButton" + }, + "position": { + "height": 20, + "width": 140, + "x": 10, + "y": 26 + }, + "props": { + "style": { + "backgroundColor": "#C6C6C6", + "borderColor": "#AAAAAA", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 13, + "width": 30, + "x": 64.5, + "y": 13 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Icon_0" + }, + "position": { + "height": 13, + "width": 30, + "x": 64.5, + "y": 54 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "GateGroup" + }, + "position": { + "height": 108, + "width": 160, + "x": 42, + "y": 59 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "SAMA" + }, + "position": { + "height": 167, + "width": 243, + "x": 90, + "y": 50 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 193, + "y": 17 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_SubstPV\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 111 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Use Substitute PV" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_SubstPV\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_SubstPV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tif (self.view.params.securityOverrideInputs) and (self.view.params.userHasBasic):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_InpPV\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 28, + "width": 50 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026\r\n(tag({view.params.tagPath} + \"/Sts_SubstPV\") \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_InpPV\")) ||\r\n(!tag({view.params.tagPath} + \"/Sts_SubstPV\") \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_SubstPV\"))" + }, + "type": "expr" + } + } + }, + "props": { + "align": "start", + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tif (self.view.params.securityOverrideInputs) and (self.view.params.userHasBasic):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_SubstPV\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 28, + "width": 50, + "x": 58 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026\r\n(tag({view.params.tagPath} + \"/Sts_SubstPV\") \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_InpPV\")) ||\r\n(!tag({view.params.tagPath} + \"/Sts_SubstPV\") \u0026\u0026 tag({view.params.tagPath} + \"/MRdy_SubstPV\"))" + }, + "type": "expr" + } + } + }, + "props": { + "align": "end", + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 86, + "y": 16 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "SubstitutePVToggle" + }, + "position": { + "height": 44, + "width": 196 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "InpPV" + }, + "position": { + "height": 13, + "width": 70, + "x": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Inp_Sim\"), false, true)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Inp_PV\"), tag({view.params.tagPath} + \"/Cfg_1stText\"), tag({view.params.tagPath} + \"/Cfg_1stText\"))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "SimPV" + }, + "position": { + "height": 13, + "width": 70, + "x": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Inp_Sim\"), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Set_SimPV\"), tag({view.params.tagPath} + \"/Cfg_1stText\"), tag({view.params.tagPath} + \"/Cfg_1stText\"))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "InpPVDisplay" + }, + "position": { + "height": 16, + "width": 72, + "x": 10.00007, + "y": 22.991 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "InpPV" + }, + "position": { + "height": 13, + "width": 70, + "x": 212, + "y": 23.9851 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/MSet_SubstPV\"), tag({view.params.tagPath} + \"/Cfg_1stText\"), tag({view.params.tagPath} + \"/Cfg_1stText\"))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/MSet_SubstPV\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_SubstPV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 99, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tif (self.view.params.securityOverrideInputs) and (self.view.params.userHasBasic):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_SubstPV\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 28, + "width": 50, + "x": 64 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_SubstPV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV) and (self.view.params.userHasBasic) and (self.view.params.securityOverrideInputs):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "align": "start", + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "OFF" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tif (self.view.params.securityOverrideInputs) and (self.view.params.userHasBasic):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_SubstPV\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 28, + "width": 50, + "x": 123 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_SubstPV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV) and (self.view.params.userHasBasic) and (self.view.params.securityOverrideInputs):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "align": "end", + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "ON" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 28, + "width": 178 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "MSetSubstPVToggle" + }, + "position": { + "height": 28, + "width": 178, + "x": 130.985, + "y": 40.9896 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "SubstitutePV" + }, + "position": { + "height": 71, + "width": 322, + "x": 50, + "y": 217 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 83 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Exceptions" + }, + "position": { + "height": 16, + "width": 16, + "x": 84, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IOFault\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\t\n\tInp_IOFault \u003d value\n\t\n\tif (Inp_IOFault):\n\t\tret_value \u003d True \t\n\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CommBad.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 21, + "width": 80, + "y": 14 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_TgtDisagree\") \u003d True, \"#000000\", \"#E0E0E0\")" + }, + "type": "expr" + } + }, + "props.style.color": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_TgtDisagree\") \u003d True, \"#FFFFFF\", \"#2A4191\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Sts\"), upper(tag({view.params.tagPath}+ \"/Cfg_1StText\")), upper(tag({view.params.tagPath}+ \"/Cfg_0StText\")))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 72, + "x": 4 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "Raw Input" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "RawInput" + }, + "position": { + "height": 35, + "width": 100, + "x": 1, + "y": 49.4978 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Inp_Sim\"), false, true)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 141 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "PV Used in Simulation" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Set_SimPV\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Set_SimPV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSet_SimPV \u003d value\n\t\n\tif (Set_SimPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tif (self.view.params.securityEnableSimulation) and (self.view.params.userHasBasic):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/Set_SimPV\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 28, + "width": 50 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityEnableSimulation}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "start", + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tif (self.view.params.securityEnableSimulation) and (self.view.params.userHasBasic):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/Set_SimPV\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 28, + "width": 50, + "x": 58 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityEnableSimulation}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "end", + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "custom": { + "alpha": "FF" + }, + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 41, + "y": 16 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "SubstitutePVToggle" + }, + "position": { + "height": 44, + "width": 196, + "x": -0.01190185546875, + "y": 89.99554634094238 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Inp_Sim\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DiagnosticsContent" + }, + "position": { + "height": 134, + "width": 350, + "x": 40.9936, + "y": 0.00000190735 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Diagnostics" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 123 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_AlarmDisplay_IOFault" + }, + "position": { + "height": 34, + "width": 291 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "IOFault" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_TgtDisagree" + }, + "position": { + "height": 34, + "width": 291, + "y": 37 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "TgtDisagree" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "Alarms" + }, + "position": { + "height": 75, + "width": 291 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmContent" + }, + "position": { + "height": 75, + "width": 340, + "x": 43, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Alarm" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 3", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 253 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_DIn", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 206 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 229 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 252 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 275 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonDiagnostics" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 80 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Diag.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 3" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonAlarm" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 120 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Alm.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 2, + "y": 250 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_SubstPV\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmInh" + }, + "position": { + "height": 16, + "width": 16, + "y": 116.99519348144531 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_AlmInh\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Inhibit.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Timer\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigAlarm" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 118 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Alarm\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 287, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn_Advanced/resource.json new file mode 100644 index 0000000..321cebb --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "fbfac3db6eb2e762da4fccbb1f64a3607edf51ba811ce3270110b8ff6264dc92", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..bc8f368b022a029f5f752681a0a8eee3f42b5053 GIT binary patch literal 12111 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn_Advanced/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn_Advanced/view.json new file mode 100644 index 0000000..37f3fbd --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DIn/P_DIn_Advanced/view.json @@ -0,0 +1,2635 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityDeviceConfigHMI": true, + "securityDeviceConfigTimers": true, + "securityEnableSimulation": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/P_Din", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 442, + "width": 350 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 39, + "width": 37 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 39, + "width": 37, + "x": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 39, + "width": 37, + "x": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 39, + "width": 117, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line0" + }, + "position": { + "height": 42.99999999999999, + "rotate": { + "angle": "90deg" + }, + "width": 2, + "x": 114.46, + "y": 45.2556 + }, + "props": { + "style": { + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "dashed", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Line1" + }, + "position": { + "height": 34, + "rotate": { + "angle": "90deg" + }, + "width": 2, + "x": 108.333, + "y": 92.3333 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_NoSubstPV\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "dashed", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Line2" + }, + "position": { + "height": 127, + "rotate": { + "angle": 0 + }, + "width": -1, + "x": 138, + "y": 66 + }, + "props": { + "style": { + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "dashed", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_0" + }, + "position": { + "height": 27, + "width": 27, + "x": 125, + "y": 95 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 13, + "width": 30, + "x": 123.5, + "y": 86 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Icon_0" + }, + "position": { + "height": 13, + "width": 30, + "x": 123.01, + "y": 144 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Icon_1" + }, + "position": { + "height": 13, + "width": 30, + "x": 123.01, + "y": 185 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Icon_2" + }, + "position": { + "height": 13, + "rotate": { + "angle": -90 + }, + "width": 30, + "x": 109.01, + "y": 102 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_NoSubstPV\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Line3" + }, + "position": { + "height": 25, + "rotate": { + "angle": "90deg" + }, + "width": 1, + "x": 105.457, + "y": 135.436 + }, + "props": { + "style": { + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Line4" + }, + "position": { + "height": 15, + "rotate": { + "angle": "-45deg" + }, + "width": 1, + "x": 122.457, + "y": 145.436 + }, + "props": { + "style": { + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Icon_3" + }, + "position": { + "height": 13, + "rotate": { + "angle": "-45deg" + }, + "width": 30, + "x": 106.01, + "y": 145 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 21, + "width": 33, + "x": 122, + "y": 153 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_TimeFunction.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "LinesAndIcons" + }, + "position": { + "height": 350, + "width": 332 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 180, + "x": 76, + "y": 10 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/TgtDisagreeGate/Cfg_InpCond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 21, + "width": 80, + "x": 10, + "y": 14 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Sts\"), upper(tag({view.params.tagPath}+ \"/Cfg_1StText\")), upper(tag({view.params.tagPath}+ \"/Cfg_0StText\")))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 100 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "Current Value" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CurrentValue" + }, + "position": { + "height": 35, + "width": 100, + "x": 87, + "y": 194 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 21, + "width": 72, + "x": 14, + "y": 14 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Inp_Target\"), upper(tag({view.params.tagPath}+ \"/Cfg_1StText\")), upper(tag({view.params.tagPath}+ \"/Cfg_0StText\")))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 100 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "Target" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Target" + }, + "position": { + "height": 35, + "width": 100, + "x": 53 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "CoordinateContainer" + }, + "position": { + "height": 1, + "width": 69, + "x": -4.00302, + "y": 24.2611 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftStyle": "none", + "borderRightStyle": "none", + "borderTopColor": "#6A6A6A", + "borderTopStyle": "dashed", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 21, + "width": 21, + "x": 7 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_NotEqual.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "RightArrow" + }, + "position": { + "height": 21, + "width": 10, + "x": 25 + }, + "props": { + "color": "#000000", + "path": "material/chevron_left" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "RightArrow_0" + }, + "position": { + "height": 21, + "width": 10 + }, + "props": { + "color": "#000000", + "path": "material/chevron_right" + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "NotEqualWithArrows" + }, + "position": { + "height": 21, + "width": 35, + "x": 14.9792, + "y": 13.9881 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TargetGroup" + }, + "position": { + "height": 35, + "width": 154, + "x": 176, + "y": 194 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 130, + "x": 14.932759259033219, + "y": 22.954366296386723 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Out\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tstates \u003d {\n\t0: \"Target Agree\",\n\t1: \"Target Disagree\",\n\t2: \"Target Disagree Warning\",\n\t3: \"Target Disagree Failure\",\n\t}\n\t\n\tOut \u003d value\n\tparam101 \u003d self.parent.custom.param101\n\t\n\tif (not(Out)):\n\t\tindex \u003d 0\n\telif (param101 \u003d\u003d 2):\n\t\tindex \u003d 2\n\telif (param101 \u003d\u003d 3):\n\t\tindex \u003d 3\n\telse:\n\t\tindex \u003d 1\n\t\n\tret_value \u003d states[index]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#475CA7", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 17, + "x": 71.7749, + "y": 8.8606 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Out\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_Good\",\n\t1: \"Sts_NotOK\",\n\t}\n\t\n\tOut \u003d value\n\t\n\tif (Out \u003d\u003d 0):\n\t\tindex \u003d 0\n\telif (Out \u003d\u003d 1):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "height": 16, + "mode": "fill", + "width": 16 + } + }, + "type": "ia.display.image" + } + ], + "custom": { + "gateName": "TgtDisagree", + "param101": 1 + }, + "meta": { + "name": "GateResult" + }, + "position": { + "height": 48, + "width": 160, + "x": -0.5, + "y": 56 + }, + "props": { + "style": { + "backgroundColor": "#C6C6C6", + "borderColor": "#AAAAAA", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Line" + }, + "position": { + "height": 59, + "width": 1, + "x": 79, + "y": -1 + }, + "props": { + "style": { + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "dashed", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 130, + "x": 4, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Gate\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tSts_Gate \u003d value\n\t\n\tif (Sts_Gate):\n\t\tret_value \u003d \"Gate Pass\"\n\telif (not(Sts_Gate)):\n\t\tret_value \u003d \"Gate Blocked\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#475CA7", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16, + "x": 122 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Err\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tSts_Error \u003d value\n\t\n\tif (Sts_Error):\n\t\tret_value \u003d True\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "custom": { + "gateName": "TgtDisagree" + }, + "meta": { + "name": "GateButton" + }, + "position": { + "height": 20, + "width": 140, + "x": 10, + "y": 26 + }, + "props": { + "style": { + "backgroundColor": "#C6C6C6", + "borderColor": "#AAAAAA", + "borderStyle": "solid", + "borderWidth": 1, + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Icon" + }, + "position": { + "height": 13, + "width": 30, + "x": 64.5, + "y": 13 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Icon_0" + }, + "position": { + "height": 13, + "width": 30, + "x": 64.5, + "y": 54 + }, + "props": { + "path": "material/keyboard_arrow_down" + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "GateGroup" + }, + "position": { + "height": 108, + "width": 160, + "x": 129, + "y": 229 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 21, + "width": 80, + "x": 10, + "y": 14 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Sts_PV\"), upper(tag({view.params.tagPath}+ \"/Cfg_1StText\")), upper(tag({view.params.tagPath}+ \"/Cfg_0StText\")))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 100 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "PV from Input" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "InputPV" + }, + "position": { + "height": 35, + "width": 100, + "x": 3, + "y": 44 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Inp_Sim\"), false, true)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 21, + "width": 80, + "x": 10, + "y": 14 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Sts_PV\"), upper(tag({view.params.tagPath}+ \"/Cfg_1StText\")), upper(tag({view.params.tagPath}+ \"/Cfg_0StText\")))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 100 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "Simulation PV" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "SimPV" + }, + "position": { + "height": 35, + "width": 100, + "x": 3, + "y": 44 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Inp_Sim\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 21, + "width": 80, + "x": 10, + "y": 14 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Sts_PV\"), upper(tag({view.params.tagPath}+ \"/Cfg_1StText\")), upper(tag({view.params.tagPath}+ \"/Cfg_0StText\")))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 100 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "Simulation PV" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "SubPV" + }, + "position": { + "height": 35, + "width": 100, + "x": 3, + "y": 84 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_NoSubstPV\"), false, true)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 85 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + }, + "text": "Debounce Time" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "ndeDebounceTime" + }, + "position": { + "height": 20, + "width": 77, + "x": 4.08, + "y": 13.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigTimers} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_Debounce\"" + }, + "type": "tag" + } + } + }, + "props": { + "format": "0,0.000", + "inputBounds": { + "maximum": 2147483.647, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 25, + "width": 84, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 84, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr" + }, + "position": { + "height": 29, + "width": 102, + "y": 9 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ndeDebounceTime" + }, + "position": { + "height": 39, + "width": 102, + "x": 13, + "y": 130 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "SAMA" + }, + "position": { + "height": 350, + "width": 332, + "x": 8, + "y": 50 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 39, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "GO_Cfg_NoSubstPV" + }, + "position": { + "height": 32, + "width": 340, + "x": 5, + "y": 52.987 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "securityEnableSimulation": true, + "securityOverrideInputs": true, + "selectedTab": 3, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_NoSubstPV" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "TabPage_Engineering" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 402, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "x": 80, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Desc_Label_Tag" + }, + "position": { + "height": 68.00000000000001, + "width": 340, + "x": 5, + "y": 3.99 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_Area" + }, + "position": { + "height": 20, + "width": 340, + "x": 5, + "y": 70.987 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityConfigSecurity": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area" + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 214, + "x": 16.1, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Text to Display in PV \u003d 0 State:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "height": 20, + "width": 76, + "x": 257 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_0StText\"" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "sde_Cfg_0StText" + }, + "position": { + "height": 20, + "width": 350, + "y": 94 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 214, + "x": 16.1, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Text to Display in PV \u003d 1 State:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "height": 20, + "width": 76, + "x": 257 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_1StText\"" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "sde_Cfg_1StText" + }, + "position": { + "height": 20, + "width": 350, + "y": 118 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TextConfig" + }, + "position": { + "height": 200, + "width": 350, + "y": 47 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_NormTextVis\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Display state text in \"normal\" state (\u003d target)" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_NormTextVis\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_NormTextVis\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_NormTextVis" + }, + "position": { + "height": 243, + "width": 350 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "HMIConfig" + }, + "position": { + "height": 246, + "width": 350, + "y": 193 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_HMI" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 306, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_DIn_Advanced", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 346 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 369 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 392 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 415 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonEngineering" + }, + "position": { + "height": 35, + "width": 35, + "x": 42 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Eng.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHMI" + }, + "position": { + "height": 35, + "width": 35, + "x": 81 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_HMI.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 311 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Timer\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 35, + "width": 346, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0\n\t" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut/resource.json new file mode 100644 index 0000000..4c78261 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "b6693f69f800fa0292272c99f3224f2d1b0c8d559d264e660d2f7d730e9eff34", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..e6365559d900c592821305d1c4b5ff542f55b7de GIT binary patch literal 4998 zcmd6L=R4fr^S%&7i*A*Owt`^w5+xD6ClMvcD#5CWVAqP4=&MCYbkXZ#_4X2?EQ?ik zb?@jUtdbA}3GwxL_WKil56+wibDg>7o;h>RH52>TRF8p{o0g1>jKM%(+wAHFu1>-Y z@++zR2+To7#%f}q{m?wXZtt_Z6^}t$^bYbQ(_7sR9S?mW2eTL6=&Z4^PDs4=jS`0Z zjQ)|E`;YxlH&UO4#+juaXL)vCM3XBDZ)e@>S1~Jx*o@j3I20b@f4*07-H1h zTU1o!RQqs1U|56hKOe;fec*@}xlPW)0#emw{**V?ww*)Ov0p4sn)t#^# z_hKPG`gL8Lor|B{(#s(E3(HWs67{g0vxl#t`?vKRmzC|zs}*=GbSy78y#uBY&v6F_ zUI#yBJS@hJy}lhsJS&IqQT?TU>ruqa6U}9@)8x?sQ9stjwC0NSr;?cCxVy+zMC!#eO{lyvdGg z1og5`xVXAf)9fB@O5G7D+uQ_AJOx`QD2!n5``mEd{LVo*+`#97Kvw&At*p`+iBT6> zPu|T`wAggMbn|CAdk?mi^rtASFr;0*8Jan8a+iJNu(#DFKAfPK80U3r_l|GDOM%_s znB0B_j)xBk4{BW(gv$EnK~Um?y(aO3UBfqIbk-q~^t!++&2Y^EWqJ7==Xy`il9`%K z7z|d2t7AfKD)nyB)ENrXNF8)-rA+skD=1a z-J7x$ifftio;pq^+A1>n>IbjJVqftds(b3ICj~I6!^2n!lr&US{JV~0%wIFauLpjB zaKe9$myCWNJpROpRmzWn^svyY?^6xZMhh@Ib!I}aN>}Lg)as%{2b`8oRFdwk_C76x z%*>oJSX(A9LL?-7plJbUI_Q5$8WnhKq3HXyyF|w2OT<>&NW`NB;MSp0i+%vJ!-sl@ zUlMop$cMB41G-`jbrxpJ9a7F)zFz#oOHs_`st1M5$u@S~#uYNV#zgB*&)_pe9R(%f z-9~FCTay{5rtXt#ZkrQ>N4U2LJrI_?SV}osT$#xL!&$IjTa8C3e2!RwITbZ_jy9WB z&|4X^`gzHx=?IOk7KoN>anQ3$K_H=*7bjm?LwbI`JwK>Zp*CM%YHF_cnSi}ci{(fHIS$tjQkG0^wUtDKt*CGDLdnF1YB_#$Nu|tVb z>3SF zzX8H~YTNLbf zIaNFn;_O@>H(w-AZQnhI$luX>`gFq0-o}Rc<9696J?5pjzwkFVkUQbd96lw_a+nGo zvU78}xVZYd$|Hh0>}{>B=%r}MO`I%zeL7%V zKyha7UU?kzj1yERa>7f>OYwzC_hD5R!ld`68smlMy0NbBbQIkaUFGi9qJ0%H8AcY| zYd09I`PnV2*}Z;=Ho6%dONIm)GlN(j21^63Xf!&ii7Gpbr#alJ@wtWBZvJAzGs@2| zxzT${9tBlyr3Id8GhR*GPejv)O5${_sQ4a^0ymrjN>0STIL3<3dS=B+%gM_hWvGtt zZ53*PbjCeKO7D=WYJhWW-x|`LcQ0QbqPrJ!*$Z0G=XJ=aYD3vxSJl@sp^`QPJ z&=t|ww-FX5;L}GLVOoK`FBBdzH}}Rk8RohfsgYTD#RY~g3i}ijwH}GlF3%jF`_V&* z3m%+XKmm`xd7@8Rh#UAOL+|??3#|!n23>%cvUBa!f}?WS%gj=O6uWH*?SgR01u; zW2zkHE6k-SxZfPdnG{%ADSaS_?iPXf&QE**rlp)SN{Ge0kc2;&@}` zWGr})fi(VgJwLv@w3jThfclB{gha8JG9>lC9Z9&iJ9L?rj|+95>}TtuqL-as{p-1G*Tkpago%z41Whji0nOW@4(EqUHWa;E32Q{uNl+i=7ZflTi+yki z2ylkM6b+vKn2&@|Q^%yIryFdrA6)psgM)vc1zhgpCs!^}9>6fb89dlCIOskcOGQQ1 zj}wtbrkZU?Eo9GQkOI&@3Af+|Xwr}i%{ARm;|D!$K}vPMO3F)%y33OS#vMLkruv%O z@#wCa9si)0IsVm<5+FqTX2mP3>Q}B3q{VS!)SdAVZ3ruA)Mnv`1wg)O8|jXn*4-uYYgbo#|f= zI(`GG^Zd2Os;Dihqo;$`pr{#qN5FxvzyJM5P$r&L4UA~%T6T2lmYwA98Kt2#9?^}s z7p(}(Fl#Ge9i_`Trfrnd1|L8_!v_;@!MiUP6B7+9z^Ql^HZH!rj68b@4w32UXAgO;iZ9OO513qC zT|v^x_Xp~K2~!DGNH|H?Gr{CRUz@ASeTp2>+`g%IW^_``rO@8qFM%wxCngkg%|F_J zSAn@`g2N|@N0U+2mEwmrMVT2H*wDa07`(Bz)2?4D!BAY>b8YS8$Bz@7*;uMfyUyUV z-MNO6lGNT_>Y7S%vxU1x2;SUn#qB2P7kS{gqVm9tUD1RW|1>0)5{s4lTiN=2nz%~< z=A`ejz`Qm{JAP{FIPBVQuE0p906951RfS_(Kte)dWJD6oQx$H8QqQc}UQ|dn9s4lh z=RuUq)SA#%0r?Vy2caL5jqAo5Ir_Mr`c{?SpPBKNmRGQ554aZ_=gA3nGX5e84|<5R zx0$26XpGC4-F5YFL+9DYD$P}LLaV9*uF#ZE9Euts=etPLvI&6Ts}Z8ThuL^{dw>@x zjuK_-|0!N+w4)iHc+CDeK5?UzPSzd_Q7@!3TcEQUs;$|w8i!#RRXYm7*<(XsM2(r^2tBi=UzHzB27 znP}a_*50T8vF6r*9;h{3{X8Q#*Ur}V>pIHR?Q*YWNm0pGx^&8;K%Lj&HipjJ$GABq z0=@0EBI5sd|2v1!U%4KQG&Tzbuk^Q`b_{_{9#8Ulnm6a_R~28)?6V~CD?yjLr>9|c z%J1hna3Ufi1`l$gWW>eAd3bnG8WmOn<&a&~LTIH#rULApZ8ChgV=gNiU0SP?e|q8{ zhyiC;skGRgK&>XE1^jk=oWDWfE5fqH_@`GO!40MEBV$rTfxond4VPe`WF z#g1>{9PxY)LW6T4$C%6~flEJLhs;kE1dVE|MPD_eq|MDuUR|=G2~xXUXh&Y9QQy#bB2r2Deg}09 z@a4<=(h}e8+hKw)^ur;JoPoI@ri+JLbC!q8GqFjRq1hH7?Wn7-zqhwXB+3MY-y^28 zweW>7yI!8IFr56SEu!=xL!L<%}fYo^QH*B97EsUIx#E{ZtkUaccCpWkDRATBQ6 z?x8T(&?Wyc+!=VheRc?n-<39;&-2Z7DY{Vh9O-R@SprG|SLgj;Z59W${_$6a&MPv@f@ zj~XB&X*$1y3&?5!OkDg>6#WN?HkCd|kfN9_`P%;{>V0;oP0r}F=at8ac7WH*mmO~o zVL?IdhggMTd{Tc0(3Kk4(b?KsyrYuPCfEM~@_-w;L(b^$?=OM>hqwP%`AlLp11>Q7 zW5VU5UOKG7y2AVxuFYFb5E?4~V~VniMc*$^Jp0NNt^+{LyTIYbDPZsyc}`~66B0Qi zlX>vc<&OPjkc&$yT;O^KoF;tvD)*I@p2c(mr*V+6Ty+sB>iYi^tNpiAQ7VVz#=ZJi Q`!zBH9aC+LrbGDu0fiW%RR910 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut/view.json new file mode 100644 index 0000000..fafa516 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut/view.json @@ -0,0 +1,6069 @@ +{ + "custom": { + "cmdSrcTitle": "XY_14 - XY_14", + "popupVersion": " 1.0 " + }, + "params": { + "securityBypassInterlocks": true, + "securityEnableSimulation": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 3, + "tagPath": "[DH1]Block 1/Process/Control/XY_14", + "userHasBasic": true + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + }, + "persistent": true + }, + "custom.popupVersion": { + "persistent": true + }, + "params.securityBypassInterlocks": { + "binding": { + "config": { + "expression": "\"securityBypassInterlocks\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 392 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 37, + "width": 39, + "y": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab4" + }, + "position": { + "height": 37, + "width": 39, + "y": 120 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "StatusText_Ready" + }, + "position": { + "height": 16, + "width": 42, + "x": 6, + "y": 2 + }, + "props": { + "text": "Ready", + "textStyle": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "custom": { + "parameterName": "NRdy_PrioOff" + }, + "meta": { + "name": "GONoticeNRdy_PrioOff" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Fail" + }, + "meta": { + "name": "GONoticeNRdy_Fail" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Perm" + }, + "meta": { + "name": "GONoticeNRdy_Perm" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONoticeNRdy_Intlk" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONoticeNRdy_IOFault" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONoticeNRdy_OoS" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONoticeNRdy_CfgErr" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NRdyNotices" + }, + "position": { + "height": 21, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "OffFail" + }, + "meta": { + "name": "AlarmNotify_OffFail" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IOFault" + }, + "meta": { + "name": "AlarmNotify_IOFault" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IntlkTrip" + }, + "meta": { + "name": "AlarmNotify_IntlkTrip" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "OnFail" + }, + "meta": { + "name": "AlarmNotify_OnFail" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmNotices" + }, + "position": { + "height": 20, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AbnormalSeparatorLine" + }, + "position": { + "height": 2, + "width": 352, + "y": 20 + }, + "props": { + "style": { + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content1" + }, + "position": { + "height": 45, + "width": 403, + "x": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 110, + "x": 99.99, + "y": -1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath}+ \"/Sts_Out\"), upper(tag({view.params.tagPath}+ \"/Cfg_1StText\")), upper(tag({view.params.tagPath}+ \"/Cfg_0StText\")))" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 85, + "x": 8, + "y": 1 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "right" + }, + "text": "Output" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Sts_Out" + }, + "position": { + "height": 18, + "width": 210, + "y": 59 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 110, + "x": 99.99, + "y": -1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_Fdbk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tVal_Fdbk \u003d value\n\tCfg_0StText \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_0StText\"])[0].value\n\tCfg_1StText \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_1StText\"])[0].value\n\n\tif (Val_Fdbk \u003d\u003d 2):\n\t\tret_value \u003d Cfg_1StText\n\telif (Val_Fdbk \u003d\u003d 1):\n\t\tret_value \u003d Cfg_0StText\n\telif (Val_Fdbk \u003d\u003d 0):\n\t\tret_value \u003d \"Transition\"\n\telse:\n\t\tret_value \u003d \"Unknown\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 85, + "x": 8, + "y": 1 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "right" + }, + "text": "Feedback" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Val_Feedback" + }, + "position": { + "height": 18, + "width": 210, + "x": 0.0104218, + "y": 33 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Val_Sts_DOut", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 20, + "width": 190 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tstates \u003d {\n\t0: \"Off\",\n\t1: \"On\",\n\t2: \"Pulsing Off\",\n\t3: \"Pulsing On\",\n\t4: \"Continuous Pulse\",\n\t5: \"Turning Off\",\n\t6: \"Turning On\",\n\t7: \"Horn\",\n\t}\n\t\n\tVal_Sts \u003d value\n\tindex \u003d Val_Sts\n\t\n\tret_value \u003d states[index]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#D4D4D4", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "Left" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "InformationSection" + }, + "position": { + "height": 77, + "width": 210 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "1State" + }, + "position": { + "height": 14, + "width": 56, + "x": 137.038, + "y": -0.00000651855 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_1StText\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "0State" + }, + "position": { + "height": 14, + "width": 56, + "x": 91.038 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_0StText\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_TurnOn_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_TurnOn.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_On\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_On\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_OnButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 145.039, + "y": 17 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_TurnOff_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_TurnOff.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Off\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Off\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_OffButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 101.038, + "y": 17.0048 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_PulseOn_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_PulseOn.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_OnPulse\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_OnPulse\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_PulseOnButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 189.031, + "y": 17 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPulse\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_PulseOff_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_PulseOff.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_OffPulse\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_OffPulse\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_PulseOffButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 56.0156, + "y": 17 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPulse\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_PulseContinuous_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_PulseContinuous.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ContPulse\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_ContPulse\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_PulseButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 10.01562, + "y": 17 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPulse\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "CommandButtons" + }, + "position": { + "height": 58, + "width": 240, + "x": 99.987556519 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 112, + "x": 30.5, + "y": 6.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[index][1]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CmdSrcImage" + }, + "position": { + "height": 38, + "width": 18, + "x": 8, + "y": 4 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(states[index][0])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "contain" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}_CmdSrc", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.custom.cmdSrcTitle}", + "type": "open", + "viewParams": { + "selectedTab": "0", + "tagPath": "{view.params.tagPath}/CmdSrc" + }, + "viewPath": "Plant PAX/Popups/P_CmdSrc/P_CmdSrc", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "CmdSrcNavButton" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "image": { + "style": { + "backgroundColor": "#FFFFFF00" + } + }, + "style": { + "backgroundColor": "#FFFFFF00", + "outlineStyle": "none" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "CmdSrcNotNormal" + }, + "position": { + "height": 16, + "width": 16, + "x": 127 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_CmdSrcNotNorm.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GOCmdSrcDisplayWithNav" + }, + "position": { + "height": 45, + "width": 145, + "y": 59 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 3 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PermOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBPermOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_PermOK\",\n\t1: \"Nav_PermOKBypassed\",\n\t2: \"Nav_PermNonBypOK\",\n\t3: \"Nav_PermNotOK\"\n\t}\n\t\n\tInp_PermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PermOK\"])[0].value \t\t\t#102\n\tInp_NBPermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBPermOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBPermOK)) or (not (Inp_PermOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_PermOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Perm", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Perm", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Perm" + }, + "viewPath": "Plant PAX/Popups/P_Perm/P_Perm", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOPermissivesButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 48 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InterlocksAndPermissives" + }, + "position": { + "height": 40, + "width": 90, + "x": 198, + "y": 61.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Commands" + }, + "position": { + "height": 108, + "width": 340, + "y": 157 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content2" + }, + "position": { + "height": 265, + "width": 340, + "x": 43, + "y": 35 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_DOut/P_DOut_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupNavToAdvanced" + }, + "position": { + "height": 42, + "width": 42, + "x": 50, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_UseOffFdbk\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 319, + "x": 25 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_0StText\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \u0027Use Device \"Off\" ({0}) feedback\u0027.format(value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": -1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Cfg_UseOffFdbk\") \u003d 1, false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseOffFdbk\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_UseOffFdbk\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 343, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "UseOffFeedback" + }, + "position": { + "height": 32, + "width": 345, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOffFdbk\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_UseOnFdbk\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 319, + "x": 25 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_1StText\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \u0027Use Device \"On\" ({0}) feedback\u0027.format(value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": -1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Cfg_UseOnFdbk\") \u003d 1, false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseOnFdbk\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_UseOnFdbk\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 343, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "UseOnFeedback" + }, + "position": { + "height": 32, + "width": 345, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOnFdbk\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Configuration" + }, + "position": { + "height": 76, + "width": 345, + "x": 41.5, + "y": 55 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "y": 7 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 233, + "y": 17 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_Bypass\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Bypass\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Check\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 2, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "start", + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Bypass\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 56, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "end", + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 133, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 101, + "y": 7 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Bypass Enabled" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "BypassEnabled" + }, + "position": { + "height": 33, + "width": 243, + "y": 26 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 182 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Interlocks and Permissives" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 3 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PermOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBPermOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_PermOK\",\n\t1: \"Nav_PermOKBypassed\",\n\t2: \"Nav_PermNonBypOK\",\n\t3: \"Nav_PermNotOK\"\n\t}\n\t\n\tInp_PermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PermOK\"])[0].value \t\t\t#102\n\tInp_NBPermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBPermOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBPermOK)) or (not (Inp_PermOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_PermOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Perm", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Perm", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Perm" + }, + "viewPath": "Plant PAX/Popups/P_Perm/P_Perm", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOPermissivesButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 48 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InterlocksAndPermissives" + }, + "position": { + "height": 40, + "width": 90, + "x": 194, + "y": 58.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "IntlkAndPerm" + }, + "position": { + "height": 105, + "width": 340, + "x": 46.5, + "y": 195 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 83 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350, + "y": 275 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 180.99999999999997 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Device Not Ready Reasons" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Reset\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Reset\") \u0026\u0026 tag({view.params.tagPath} + \"/Sts_NotRdy\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_ResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 293.019, + "y": 1 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONotRdy_OoS" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.01953125, + "y": 20.99609375 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONotRdy_CfgErr" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 40.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONotRdy_Intlk" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 60.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Perm" + }, + "meta": { + "name": "GONotRdy_Perm" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 80.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONotRdy_IOFault" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 100.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Fail" + }, + "meta": { + "name": "GONotRdy_Fail" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 120.996 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_PrioOff" + }, + "meta": { + "name": "GONotRdy_PrioOff" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 140.996 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "NotRdyHeader_0" + }, + "position": { + "height": 16, + "width": 334, + "x": 2.02, + "y": 160 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontStyle": "italic", + "fontWeight": "normal" + }, + "text": "* A reset is required to clear this condition" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NotReadyReasons" + }, + "position": { + "height": 178, + "width": 340, + "x": 6 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DiagnosticsContent" + }, + "position": { + "height": 295, + "width": 350, + "x": 40.9936, + "y": 0.00000190735 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Diagnostics" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 123 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_AlarmDisplay_IOFault" + }, + "position": { + "height": 34, + "width": 291 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "IOFault" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_IntlkTrip" + }, + "position": { + "height": 34, + "width": 291, + "y": 37 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "IntlkTrip" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_OffFail" + }, + "position": { + "height": 34, + "width": 291, + "y": 74 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "OffFail" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_OnFail" + }, + "position": { + "height": 34, + "width": 291, + "y": 111 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "OnFail" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "Alarms" + }, + "position": { + "height": 145, + "width": 291 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmContent" + }, + "position": { + "height": 145, + "width": 340, + "x": 43, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Alarm" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 3", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 253 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_DOut", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 206 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 229 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 252 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 275 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonDiagnostics" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 80 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Diag.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 3" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonAlarm" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 120 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Alm.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 2, + "y": 250 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasOffFdbk\") ||\r\ntag({view.params.tagPath} + \"/Cfg_UseOffFdbk\") ||\r\ntag({view.params.tagPath} + \"/Cfg_HasOnFdbk\") ||\r\ntag({view.params.tagPath} + \"/Cfg_UseOnFdbk\") ||\r\ntag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tCfg_HasOffFdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasOffFdbk\"])[0].value\n\tCfg_UseOffFdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseOffFdbk\"])[0].value\n\tCfg_HasOnFdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasOnFdbk\"])[0].value\n\tCfg_UseOnFdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseOnFdbk\"])[0].value\n\tSts_Bypass \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Bypass\"])[0].value\n\t\n\tif ((Cfg_HasOffFdbk) and not (Cfg_UseOffFdbk)) or ((Cfg_HasOnFdbk) and not (Cfg_UseOnFdbk)) or (Sts_Bypass):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmInh" + }, + "position": { + "height": 16, + "width": 16, + "y": 116.99519348144531 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_AlmInh\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Inhibit.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Timer\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigAlarm" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 118 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Alarm\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "y": 99 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 287, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut_Advanced/resource.json new file mode 100644 index 0000000..1be2992 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "7dc4e95e1147671e1077047314326fdc6f12791fc58a369143d34ef6712ba23d", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..b59ed04188b74cc9556686f0bcc67810c803ef63 GIT binary patch literal 10160 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 D#tfgI literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut_Advanced/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut_Advanced/view.json new file mode 100644 index 0000000..400158b --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_DOut/P_DOut_Advanced/view.json @@ -0,0 +1,4371 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityDeviceConfigBehavior": true, + "securityDeviceConfigFailTimers": true, + "securityDeviceConfigHMI": true, + "securityDeviceConfigLimits": true, + "securityDeviceConfigTimers": true, + "securityEnableSimulation": true, + "securityEnterOperSettings": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/P_DOut", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigFailTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigFailTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigLimits": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigLimits\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnterOperSettings": { + "binding": { + "config": { + "expression": "\"securityEnterOperSettings\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 442, + "width": 350 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 39, + "width": 37 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 39, + "width": 37, + "x": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 39, + "width": 37, + "x": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 39, + "width": 117, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "On" + }, + "position": { + "height": 19, + "width": 79, + "x": 261.5, + "y": 7 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "On" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "OnText" + }, + "position": { + "height": 19, + "width": 79, + "x": 261.5, + "y": 28 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"(\" + tag({view.params.tagPath} + \"/Cfg_1StText\") +\")\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Off" + }, + "position": { + "height": 19, + "width": 79, + "x": 182, + "y": 7 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Off" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "OffText" + }, + "position": { + "height": 19, + "width": 79, + "x": 181.5, + "y": 28 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"(\" + tag({view.params.tagPath} + \"/Cfg_0StText\") +\")\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "LineHor0" + }, + "position": { + "height": 1, + "width": 70, + "x": 186.01, + "y": 45.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor1" + }, + "position": { + "height": 1, + "width": 70, + "x": 265.01, + "y": 45.5074 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "LinesAndImages" + }, + "position": { + "height": 389, + "width": 341, + "x": 1, + "y": 2.5 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label1" + }, + "position": { + "height": 31, + "width": 171, + "x": 6.5, + "y": 49.5 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Time after output change for feedback before fault (sec)" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label2" + }, + "position": { + "height": 31, + "width": 171, + "x": 7, + "y": 89.5 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Delay before changing output (sec)" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label3" + }, + "position": { + "height": 31, + "width": 171, + "x": 7, + "y": 129.5 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Pulse duration (sec)" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 105, + "width": 155, + "x": 1, + "y": 10.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 140, + "y": -4.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_1" + }, + "position": { + "height": 117, + "width": 156, + "x": 182, + "y": 42 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Cfg_OffFailT" + }, + "position": { + "height": 20, + "width": 70, + "x": 186, + "y": 55 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigFailTimers} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_OffFailT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Cfg_OnFailT" + }, + "position": { + "height": 20, + "width": 70, + "x": 266, + "y": 55 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigFailTimers} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_OnFailT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Cfg_OffDelayT" + }, + "position": { + "height": 20, + "width": 70, + "x": 186, + "y": 95 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_OffDelayT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Cfg_OnDelayT" + }, + "position": { + "height": 20, + "width": 70, + "x": 266, + "y": 95.00743865966797 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_OnDelayT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Cfg_OffPulseT" + }, + "position": { + "height": 20, + "width": 70, + "x": 186, + "y": 135 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_OffPulseT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Cfg_OffPulseT_0" + }, + "position": { + "height": 20, + "width": 70, + "x": 266, + "y": 135.00743865966797 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "3" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_OnPulseT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": -4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupTimer" + }, + "position": { + "height": 394, + "width": 343, + "x": 2, + "y": 45 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 39, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOffFdbk\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 7, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 300, + "x": 28 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_0StText\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \u0027Device has \"Off\" ({0}) feedback\u0027.format(value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasOffFdbk\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasOffFdbk\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 343, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "UseOffFeedback" + }, + "position": { + "height": 32, + "width": 345 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOnFdbk\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 7, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 300, + "x": 28 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_1StText\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \u0027Device has \"On\" ({0}) feedback\u0027.format(value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasOnFdbk\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasOnFdbk\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 343, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "UseOnFeedback" + }, + "position": { + "height": 32, + "width": 345, + "y": 28 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label0" + }, + "position": { + "height": 16, + "width": 249, + "x": 6.5, + "y": 62 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Fault when both feedback inputs are" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2.5, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_FdbkFail\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 3, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "On" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_FdbkFail\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_FdbkFail_On" + }, + "position": { + "height": 35, + "width": 161, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_FdbkFail\"), false, true)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Off" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_FdbkFail\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_FdbkFail_Off" + }, + "position": { + "height": 35, + "width": 161, + "x": 168.50743865966797, + "y": 3.010406494140625 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Cfg_FdbkFail" + }, + "position": { + "height": 42, + "width": 340, + "x": 2, + "y": 78 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "x": 2, + "y": 109 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "GO_Cfg_OCmdResets" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 118.003 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OCmdResets" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_XCmdResets" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 150 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets" + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPulse\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Enable pulsing functions" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasPulse\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasPulse\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasPulse" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 182 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "GO_Cfg_OvrdPermIntlk" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 217 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OvrdPermIntlk" + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_OperOffPrio\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Operator \u0027Off\u0027 (\" + tag({view.params.tagPath} + \"/Cfg_0StText\") + \") command available in any mode\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_OperOffPrio\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_OperOffPrio\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_OperOffPrio" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 251 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ExtOffPrio\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"External \u0027Off\u0027 (\" + tag({view.params.tagPath} + \"/Cfg_0StText\") + \") command available in any mode\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_ExtOffPrio\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ExtOffPrio\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_ExtOffPrio" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 285 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageEngineering1" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0) or (value !\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label1" + }, + "position": { + "height": 16, + "width": 89, + "x": 7.50521, + "y": 202.002 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Audible on:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HornOnChange\"), false, true)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 195, + "x": 25, + "y": 1.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Commanded Change from Off State (\" + tag({view.params.tagPath} + \"/Cfg_0StText\") + \")\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HornOnChange\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 240, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_HornOnChange_1" + }, + "position": { + "height": 37, + "width": 300, + "x": 10, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HornOnChange\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 195, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Any Commanded State Change" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HornOnChange\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 240, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_HornOnChange_2" + }, + "position": { + "height": 37, + "width": 300, + "x": 10, + "y": 41 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Cfg_HornOnChange" + }, + "position": { + "height": 82, + "width": 340, + "x": 2, + "y": 217 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "GO_Cfg_StartHornT" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 299.002 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_StartHornT" + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_CompletePulse\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 294, + "x": 25 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Finish Pulse when commanded \u0027Off\u0027 (\" + tag({view.params.tagPath} + \"/Cfg_0StText\") + \") or \u0027On\u0027 (\" + tag({view.params.tagPath} + \"/Cfg_1StText\") + \")\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CompletePulse\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CompletePulse\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_CompletePulse" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 5 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "x": 2, + "y": 39 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label2" + }, + "position": { + "height": 16, + "width": 155, + "x": 8.51, + "y": 49 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Deenergize Output:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_Cfg_ShedOnIOFault" + }, + "position": { + "height": 32, + "width": 280, + "x": 12.5, + "y": 66.0017 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_ShedOnInterlockTrip" + }, + "position": { + "height": 32, + "width": 280, + "x": 12.5, + "y": 130 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnInterlockTrip" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_ShedOnFail" + }, + "position": { + "height": 32, + "width": 280, + "x": 12.5, + "y": 98 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFail" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_SimFdbkT" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 164.002 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SimFdbkT" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "PageEngineering2" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected - 1\n\t\n\tif (newTab \u003e\u003d 0):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "PrevButton" + }, + "position": { + "height": 36, + "width": 30 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Prev.png", + "style": { + "curor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 0 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page1Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 28 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 1 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page2Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 58 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected + 1\n\t\n\tif (newTab \u003c\u003d maxNumberOfTabs):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "NextButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 82 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Next.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + } + ], + "custom": { + "maintenanceTabSelected": 0, + "maxNumberOfTabs": 2 + }, + "meta": { + "name": "MaintenancePageButtons" + }, + "position": { + "height": 36, + "width": 112, + "x": 112.5, + "y": 393 + }, + "propConfig": { + "custom.pageTabSelected": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 18, + "width": 16, + "x": 180.005, + "y": 389 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Sim\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "custom": { + "maintenanceTabSelected": null, + "pageTabSelected": 0 + }, + "meta": { + "name": "TabPage_Engineering" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 402, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "x": 80, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Desc_Label_Tag" + }, + "position": { + "height": 68.00000000000001, + "width": 340, + "x": 5, + "y": 3.99 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_Area" + }, + "position": { + "height": 20, + "width": 340, + "x": 5, + "y": 70.987 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityConfigSecurity": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area" + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 214, + "x": 16.1, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Text to Display in PV \u003d 0 State:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "height": 20, + "width": 76, + "x": 257 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_0StText\"" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "sde_Cfg_0StText" + }, + "position": { + "height": 20, + "width": 350, + "y": 94 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 214, + "x": 16.1, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Text to Display in PV \u003d 1 State:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "height": 20, + "width": 76, + "x": 257 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_1StText\"" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "sde_Cfg_1StText" + }, + "position": { + "height": 20, + "width": 350, + "y": 118 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TextConfig" + }, + "position": { + "height": 166, + "width": 350, + "y": 47 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Cfg_HasIntlkObj" + }, + "position": { + "height": 32, + "width": 340, + "x": 5, + "y": 32 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasIntlkObj" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_HasPermObj" + }, + "position": { + "height": 32, + "width": 340, + "x": 5, + "y": 2 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasPermObj" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "HMIConfig" + }, + "position": { + "height": 221, + "width": 350, + "y": 219 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_HMI" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 306, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_DOut_Advanced", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 346 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 369 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 392 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 415 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonEngineering" + }, + "position": { + "height": 35, + "width": 35, + "x": 42 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Eng.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHMI" + }, + "position": { + "height": 35, + "width": 35, + "x": 81 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_HMI.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 311 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Timer\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigEng" + }, + "position": { + "height": 16, + "width": 16, + "x": 63, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Sim\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 35, + "width": 346, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0\n\tself.getChild(\"TabPage_Engineering\").custom.pageTabSelected \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk/resource.json new file mode 100644 index 0000000..5a587dc --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "7f855ff7be9d5fdb28c4c69fe0a3417d882f8f822c3270569b85a9f335322d62", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..a0d5776f1a25170dd9b31477b26710800de868a4 GIT binary patch literal 8613 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 OK$4YIk|-573iuzp1gow9 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk/view.json new file mode 100644 index 0000000..e184ff9 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk/view.json @@ -0,0 +1,7460 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityBypassInterlocks": true, + "securityEnableSimulation": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/P_DOut_Intlk", + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityBypassInterlocks": { + "binding": { + "config": { + "expression": "\"securityBypassInterlocks\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "output", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 392 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 3 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tSts_BypActive \u003d value\n\t\n\tif (Sts_BypActive):\n\t\tret_value \u003d \"Bypassed\"\n\telse:\n\t\tret_value \u003d \"Enabled\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GOBypassDisplay" + }, + "position": { + "height": 20, + "width": 350 + }, + "props": { + "style": { + "backgroundColor": "#c0c0c0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AbnormalSeparatorLine" + }, + "position": { + "height": 2, + "width": 352, + "y": 20 + }, + "props": { + "style": { + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Reset\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.securityOperateEquipment} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Reset\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_Reset \u003d system.tag.readBlocking([self.view.params.tagPath + \"/ORdy_Reset\"])[0].value\n\t\n\tif (self.view.params.securityOperateEquipment) and (self.view.params.userHasBasic) and (ORdy_Reset):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 290, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupAbbieNormals" + }, + "position": { + "height": 45, + "width": 403, + "x": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 0 + }, + "meta": { + "name": "GOInterlock0" + }, + "position": { + "height": 20, + "width": 165, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 1 + }, + "meta": { + "name": "GOInterlock1" + }, + "position": { + "height": 20, + "width": 165, + "y": 28 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 2 + }, + "meta": { + "name": "GOInterlock2" + }, + "position": { + "height": 20, + "width": 165, + "y": 51 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 3 + }, + "meta": { + "name": "GOInterlock3" + }, + "position": { + "height": 20, + "width": 165, + "y": 74 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 4 + }, + "meta": { + "name": "GOInterlock4" + }, + "position": { + "height": 20, + "width": 165, + "y": 97 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 5 + }, + "meta": { + "name": "GOInterlock5" + }, + "position": { + "height": 20, + "width": 165, + "y": 120 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 6 + }, + "meta": { + "name": "GOInterlock6" + }, + "position": { + "height": 20, + "width": 165, + "y": 143 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 7 + }, + "meta": { + "name": "GOInterlock7" + }, + "position": { + "height": 20, + "width": 165, + "y": 166 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DisplayLeft" + }, + "position": { + "height": 205, + "width": 165 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 8 + }, + "meta": { + "name": "GOInterlock8" + }, + "position": { + "height": 20, + "width": 165, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 9 + }, + "meta": { + "name": "GOInterlock9" + }, + "position": { + "height": 20, + "width": 165, + "y": 28 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 10 + }, + "meta": { + "name": "GOInterlock10" + }, + "position": { + "height": 20, + "width": 165, + "y": 51 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 11 + }, + "meta": { + "name": "GOInterlock11" + }, + "position": { + "height": 20, + "width": 165, + "y": 74 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 12 + }, + "meta": { + "name": "GOInterlock12" + }, + "position": { + "height": 20, + "width": 165, + "y": 97 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 13 + }, + "meta": { + "name": "GOInterlock13" + }, + "position": { + "height": 20, + "width": 165, + "y": 120 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 14 + }, + "meta": { + "name": "GOInterlock14" + }, + "position": { + "height": 20, + "width": 165, + "y": 143 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FirstOutPolygon" + }, + "position": { + "height": 20, + "width": 165 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FirstOut[\" + {parent.custom.interlockIndex} + \"]\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Intlk \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk\n\t\n\tif (index \u003d\u003d 1) or (index \u003d\u003d 3):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_NotOK\",\n\t2: \"\",\n\t3: \"Sts_NotOK_Bypassed\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Intlk + 2 \n\telse:\n\t\tindex \u003d Sts_Intlk + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Intlk\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "interlockIndex": 15 + }, + "meta": { + "name": "GOInterlock15" + }, + "position": { + "height": 20, + "width": 165, + "y": 166 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DisplayRight" + }, + "position": { + "height": 205, + "width": 165, + "x": 173 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupInterlockDisplay" + }, + "position": { + "height": 218, + "width": 340, + "x": 43, + "y": 55 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0) or (value !\u003d 1)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_Intlk/P_Intlk_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupNavToAdvanced" + }, + "position": { + "height": 42, + "width": 42, + "x": 50, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "HeaderText" + }, + "position": { + "height": 16, + "width": 320 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textDecoration": "underline" + }, + "text": "Enable Bypass" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 0 + }, + "meta": { + "name": "GOMSetBypass0" + }, + "position": { + "height": 20, + "width": 174 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 1 + }, + "meta": { + "name": "GOMSetBypass1" + }, + "position": { + "height": 20, + "width": 174, + "y": 23 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 2 + }, + "meta": { + "name": "GOMSetBypass2" + }, + "position": { + "height": 20, + "width": 174, + "y": 46 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 3 + }, + "meta": { + "name": "GOMSetBypass3" + }, + "position": { + "height": 20, + "width": 174, + "y": 69 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 4 + }, + "meta": { + "name": "GOMSetBypass4" + }, + "position": { + "height": 20, + "width": 174, + "y": 92 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 5 + }, + "meta": { + "name": "GOMSetBypass5" + }, + "position": { + "height": 20, + "width": 174, + "y": 115 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 6 + }, + "meta": { + "name": "GOMSetBypass6" + }, + "position": { + "height": 20, + "width": 174, + "y": 138 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 7 + }, + "meta": { + "name": "GOMSetBypass7" + }, + "position": { + "height": 20, + "width": 174, + "y": 161 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "EnableLeft" + }, + "position": { + "height": 181, + "width": 174 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 8 + }, + "meta": { + "name": "GOMSetBypass8" + }, + "position": { + "height": 20, + "width": 174 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 9 + }, + "meta": { + "name": "GOMSetBypass9" + }, + "position": { + "height": 20, + "width": 174, + "y": 23 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 10 + }, + "meta": { + "name": "GOMSetBypass10" + }, + "position": { + "height": 20, + "width": 174, + "y": 46 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 11 + }, + "meta": { + "name": "GOMSetBypass11" + }, + "position": { + "height": 20, + "width": 174, + "y": 69 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 12 + }, + "meta": { + "name": "GOMSetBypass12" + }, + "position": { + "height": 20, + "width": 174, + "y": 92 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 13 + }, + "meta": { + "name": "GOMSetBypass13" + }, + "position": { + "height": 20, + "width": 174, + "y": 115 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 14 + }, + "meta": { + "name": "GOMSetBypass14" + }, + "position": { + "height": 20, + "width": 174, + "y": 138 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.interlockIndex": { + "binding": { + "config": { + "path": "parent.custom.interlockIndex" + }, + "type": "property" + } + }, + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.interlockIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.interlockIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "interlockIndex": 15 + }, + "meta": { + "name": "GOMSetBypass15" + }, + "position": { + "height": 20, + "width": 174, + "y": 161 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Intlk\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.interlockIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.interlockIndex\n\tSts_Intlk \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Intlk\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.interlockIndex)])[0].value\n\t\n\tif (Sts_Intlk \u003d\u003d 1) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "EnableRight" + }, + "position": { + "height": 181, + "width": 174, + "x": 170.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Group" + }, + "position": { + "height": 200, + "width": 345, + "y": 19 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Group" + }, + "position": { + "height": 223, + "width": 345, + "x": 41.5, + "y": 55 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 253 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_Intlk", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 206 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 229 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 252 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 275 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 2, + "y": 250 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 287, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk_Advanced/resource.json new file mode 100644 index 0000000..2fa4177 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "75e68e8cb028a7f29eecd9b186bb9c538cd13bf61c4041eb39e093989fc8a5f4", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..fa095a8bcdfa3251520be5d41a37e7f8785f6eac GIT binary patch literal 18816 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 FV1oL@=u`jz literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk_Advanced/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk_Advanced/view.json new file mode 100644 index 0000000..7c7f26d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Intlk/P_Intlk_Advanced/view.json @@ -0,0 +1,1578 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityDeviceConfigBehavior": true, + "securityDeviceConfigHMI": true, + "securityDeviceConfigTimers": true, + "securityEnableSimulation": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/P_DOut_Intlk", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 503, + "width": 350 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 39, + "width": 37 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 39, + "width": 37, + "x": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 39, + "width": 117, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 461, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 502, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label_0" + }, + "position": { + "height": 16, + "width": 39, + "x": 198, + "y": 24 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "OK\nState" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_1" + }, + "position": { + "height": 16, + "width": 39, + "x": 245, + "y": 24 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Can\nBypass" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_2" + }, + "position": { + "height": 16, + "width": 39, + "x": 295, + "y": 24 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Must\nReset" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_InterlockCfg0" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 53 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 0, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg1" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 76 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 1, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg2" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 99 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 2, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg3" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 122 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 3, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg4" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 145 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 4, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg5" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 168 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 5, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg6" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 191 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 6, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg7" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 214 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 7, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg8" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 237 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 8, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg9" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 260 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 9, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg10" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 283 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 10, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg11" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 306 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 11, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg12" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 329 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 12, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg13" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 352 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 13, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg14" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 375 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 14, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_InterlockCfg15" + }, + "position": { + "height": 20, + "width": 322, + "x": 6, + "y": 398 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "interlockNumber": 15, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Interlock Objects/GO_InterlockCfg" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "Engineering1" + }, + "position": { + "height": 453, + "width": 344, + "x": 5, + "y": 49 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Engineering" + }, + "position": { + "height": 502, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 459, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 39, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 501, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Desc_Label_Tag" + }, + "position": { + "height": 68.00000000000001, + "width": 340, + "x": 5, + "y": 3.99 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_Area" + }, + "position": { + "height": 20, + "width": 340, + "x": 5, + "y": 70.987 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityConfigSecurity": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "TextConfig" + }, + "position": { + "height": 200, + "width": 350, + "y": 47 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_HMI" + }, + "position": { + "height": 503, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 459, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 306, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 500, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_Intlk_Advanced", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 406 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 429 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 452 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 475 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 501, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonEngineering" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Eng.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHMI" + }, + "position": { + "height": 35, + "width": 35, + "x": 42 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_HMI.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 311 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_EU\") || tag({view.params.tagPath} + \"/Err_Raw\") || tag({view.params.tagPath} + \"/Err_Filt\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 35, + "width": 346, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor/resource.json new file mode 100644 index 0000000..65a75df --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "050b43591f8fc4e7e3b4d1e15aad08cec9ea94c70861271c73c148056c7314d1", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..3c247d7d1fdfb52d6ef95e152d78eaf40bd926f1 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^yMVZdg9%8w_^XHksbo(V$B>G+w+9UwfxJTtzWV2K g*)ISxsRbI^84V9JFrJ<76a_NU)78&qol`;+0GGHFDF6Tf literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor/view.json new file mode 100644 index 0000000..8f5acf5 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor/view.json @@ -0,0 +1,7142 @@ +{ + "custom": { + "cmdSrcTitle": " - ", + "popupVersion": " 1.0 " + }, + "params": { + "securityBypassFeedback": true, + "securityBypassInterlocks": true, + "securityEnableSimulation": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/P_Motor", + "userHasBasic": true + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + }, + "persistent": true + }, + "custom.popupVersion": { + "persistent": true + }, + "params.securityBypassFeedback": { + "binding": { + "config": { + "expression": "\"securityBypassFeedback\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityBypassInterlocks": { + "binding": { + "config": { + "expression": "\"securityBypassInterlocks\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 392 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 37, + "width": 39, + "y": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab4" + }, + "position": { + "height": 37, + "width": 39, + "y": 120 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "StatusText_Ready" + }, + "position": { + "height": 16, + "width": 42, + "x": 6, + "y": 2 + }, + "props": { + "text": "Ready", + "textStyle": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "custom": { + "parameterName": "NRdy_PrioStop" + }, + "meta": { + "name": "GONoticeNRdy_PrioStop" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Fail" + }, + "meta": { + "name": "GONoticeNRdy_Fail" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Perm" + }, + "meta": { + "name": "GONoticeNRdy_Perm" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONoticeNRdy_Intlk" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONoticeNRdy_IOFault" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONoticeNRdy_OoS" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONoticeNRdy_CfgErr" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NRdyNotices" + }, + "position": { + "height": 21, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "FailToStop" + }, + "meta": { + "name": "AlarmNotify_FailToStop" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "FailToStart" + }, + "meta": { + "name": "AlarmNotify_FailToStart" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IntlkTrip" + }, + "meta": { + "name": "AlarmNotify_IntlkTrip" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IOFault" + }, + "meta": { + "name": "AlarmNotify_IOFault" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmNotices" + }, + "position": { + "height": 20, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AbnormalSeparatorLine" + }, + "position": { + "height": 2, + "width": 352, + "y": 20 + }, + "props": { + "style": { + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content1" + }, + "position": { + "height": 45, + "width": 403, + "x": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Val_Sts_Motor", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 20, + "width": 190 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tstates \u003d {\n\t0: \"Powerup\",\n\t1: \"Stopped\",\n\t2: \"Running Forward\",\n\t3: \"Running Reverse\",\n\t4: \"Running Slow\",\n\t5: \"Starting Forward\",\n\t6: \"Starting Reverse\",\n\t7: \"Starting Slow\",\n\t8: \"Jogging Forward\",\n\t9: \"Jogging Reverse\",\n\t10: \"Stopping\",\n\t11: \"Tripping\",\n\t12: \"Adding Motors\",\n\t13: \"Shedding Motors\",\n\t14: \"Horn\",\n\t15: \"\"\n\t}\n\t\n\tVal_Sts \u003d value\n\tindex \u003d Val_Sts\n\t\n\tret_value \u003d states[index]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#D4D4D4", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "Left" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "AlarmIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_OvldNotify\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Ovld.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GOOverloadButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 6, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOvldObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px", + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 48, + "width": 48, + "x": 2, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_OvldNotify\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_OvldNotify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderRadius": "5px", + "borderStyle": "solid", + "borderWidth": "3px", + "key_4": "value" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "OverloadNotify" + }, + "position": { + "height": 50, + "width": 52, + "x": 291, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Inp_OvldNotify\") \u003e 0, true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InformationSection" + }, + "position": { + "height": 169, + "width": 346 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Stop_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Stop.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Stop\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Stop\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_StopButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 13 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Start_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Start.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Start\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Start\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_StartButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 57 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Bump_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Bump.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onMouseDown": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Jog\", True)" + }, + "scope": "G", + "type": "script" + }, + "onMouseUp": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Jog\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Jog\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_PulseOnButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 100 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasJog\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "CommandButtons" + }, + "position": { + "height": 40, + "width": 140, + "x": 199.988, + "y": 1 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 112, + "x": 30.5, + "y": 6.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[index][1]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CmdSrcImage" + }, + "position": { + "height": 38, + "width": 18, + "x": 8, + "y": 4 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(states[index][0])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "contain" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}_CmdSrc", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.custom.cmdSrcTitle}", + "type": "open", + "viewParams": { + "selectedTab": "0", + "tagPath": "{view.params.tagPath}/CmdSrc" + }, + "viewPath": "Plant PAX/Popups/P_CmdSrc/P_CmdSrc", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "CmdSrcNavButton" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "image": { + "style": { + "backgroundColor": "#FFFFFF00" + } + }, + "style": { + "backgroundColor": "#FFFFFF00", + "outlineStyle": "none" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "CmdSrcNotNormal" + }, + "position": { + "height": 16, + "width": 16, + "x": 127 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_CmdSrcNotNorm.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GOCmdSrcDisplayWithNav" + }, + "position": { + "height": 45, + "width": 145, + "y": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 3 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PermOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBPermOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_PermOK\",\n\t1: \"Nav_PermOKBypassed\",\n\t2: \"Nav_PermNonBypOK\",\n\t3: \"Nav_PermNotOK\"\n\t}\n\t\n\tInp_PermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PermOK\"])[0].value \t\t\t#102\n\tInp_NBPermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBPermOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBPermOK)) or (not (Inp_PermOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_PermOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Perm", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Perm", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Perm" + }, + "viewPath": "Plant PAX/Popups/P_Perm/P_Perm", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOPermissivesButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 48 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InterlocksAndPermissives" + }, + "position": { + "height": 40, + "width": 90, + "x": 209, + "y": 46.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Commands" + }, + "position": { + "height": 90, + "width": 340, + "y": 172 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content2" + }, + "position": { + "height": 265, + "width": 346, + "x": 43, + "y": 35 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_Motor/P_Motor_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40, + "y": 1 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupNavToAdvanced" + }, + "position": { + "height": 42, + "width": 42 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Accum.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GORuntimeButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 47, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasRunTimeObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px", + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_ResInh.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GORestartInhibitButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 92, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasResInhObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px", + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Ovld.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GOOverloadButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 137, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOvldObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px", + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "MtceNavButtons" + }, + "position": { + "height": 42, + "width": 190, + "x": 45.9974, + "y": 2 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_UseRunFdbk\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 319, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Use Run Feedback" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": -1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_UseRunFdbk\") xor tag({view.params.tagPath} + \"/Cfg_HasRunFdbk\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseRunFdbk\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_UseRunFdbk\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 343, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassFeedback} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "GOCfgUseRunFdbk" + }, + "position": { + "height": 32, + "width": 345, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasRunFdbk\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Configuration" + }, + "position": { + "height": 76, + "width": 345, + "x": 41.5, + "y": 55 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 3 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PermOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBPermOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_PermOK\",\n\t1: \"Nav_PermOKBypassed\",\n\t2: \"Nav_PermNonBypOK\",\n\t3: \"Nav_PermNotOK\"\n\t}\n\t\n\tInp_PermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PermOK\"])[0].value \t\t\t#102\n\tInp_NBPermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBPermOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBPermOK)) or (not (Inp_PermOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_PermOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Perm", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Perm", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Perm" + }, + "viewPath": "Plant PAX/Popups/P_Perm/P_Perm", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOPermissivesButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 48 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InterlocksAndPermissivesButtons" + }, + "position": { + "height": 40, + "width": 90, + "x": 205, + "y": 58.5 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "y": 7 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 193, + "y": 17 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_SubstPV\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Bypass\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Check\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 2, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "start", + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Bypass\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 56, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "end", + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 133, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 101, + "y": 7 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Bypass Enabled" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "BypassEnabled" + }, + "position": { + "height": 33, + "width": 243, + "y": 26 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 182 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Interlocks and Permissives" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "IntlkAndPerm" + }, + "position": { + "height": 105, + "width": 340, + "x": 46.5, + "y": 195 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 83 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350, + "y": 275 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 180.99999999999997 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Device Not Ready Reasons" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Reset\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Reset\") \u0026\u0026 tag({view.params.tagPath} + \"/Sts_NotRdy\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_ResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 293.019, + "y": 1 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONotRdy_OoS" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.01953125, + "y": 20.99609375 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONotRdy_CfgErr" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 40.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONotRdy_Intlk" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 60.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Perm" + }, + "meta": { + "name": "GONotRdy_Perm" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 80.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONotRdy_IOFault" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 100.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Fail" + }, + "meta": { + "name": "GONotRdy_Fail" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 120.996 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_PrioStop" + }, + "meta": { + "name": "GONotRdy_PrioStop" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 140.996 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "NotRdyHeader_0" + }, + "position": { + "height": 16, + "width": 334, + "x": 2.02, + "y": 160 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontStyle": "italic", + "fontWeight": "normal" + }, + "text": "* A reset is required to clear this condition" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NotReadyReasons" + }, + "position": { + "height": 178, + "width": 340, + "x": 6 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DiagnosticsContent" + }, + "position": { + "height": 295, + "width": 350, + "x": 40.9936, + "y": 0.00000190735 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Diagnostics" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 123 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 34, + "width": 290 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 17, + "x": 273.9970643310547, + "y": 0.0000019073486328125 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 200 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#A0A0A4", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GroupDoesNotHaveAlarm" + }, + "position": { + "height": 18, + "width": 200, + "x": 26, + "y": 10 + }, + "propConfig": { + "custom.alarmParameterName": { + "binding": { + "config": { + "path": "parent.custom.alarmParameterName" + }, + "type": "property" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Exists\"), false, true)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 30, + "width": 286 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Alm\")" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/\" + self.parent.custom.alarmParameterName + \"/Val_Notify\"])[0].value\n\tcurrent_color \u003d self.props.style.borderColor\n#\t\n\t# id: [color1, color2]\n\tcolors \u003d {\n\t0: [\"#FFFFFF\", \"#FFFFFF\"],\n\t1: [\"#FFFFFF\", \"#000000\"],\n\t2: [\"#000000\", \"#000000\"],\n\t3: [\"#916AAD\", \"#000000\"],\n\t4: [\"#000000\", \"#000000\"],\n\t5: [\"#F5DF1B\", \"#000000\"],\n\t6: [\"#000000\", \"#000000\"],\n\t7: [\"#EC8629\", \"#000000\"],\n\t8: [\"#000000\", \"#000000\"],\n\t9: [\"#FF0000\", \"#000000\"]\n\t}\n#\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tif (current_color \u003d\u003d colors[Val_NotifyAll][0]):\n\t\t\tret_value \u003d colors[Val_NotifyAll][1]\n\t\telif (current_color \u003d\u003d colors[Val_NotifyAll][1]):\n\t\t\tret_value \u003d colors[Val_NotifyAll][0]\n\t\telse:\n\t\t\tret_value \u003d colors[Val_NotifyAll][0]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 200, + "x": 24, + "y": 8 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#000000", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Disabled\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shelved" + }, + "position": { + "height": 17, + "width": 16, + "x": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Shelved\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Shelved.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Suppressed" + }, + "position": { + "height": 17, + "width": 16, + "x": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Suppressed\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Supp.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupInhibits" + }, + "position": { + "height": 17, + "width": 56, + "x": 225.985, + "y": 6.99554 + }, + "propConfig": { + "custom.alarmParameterName": { + "binding": { + "config": { + "path": "parent.custom.alarmParameterName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 6 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupHasAlarm" + }, + "position": { + "height": 30, + "width": 286, + "x": 2, + "y": 2 + }, + "propConfig": { + "custom.alarmParameterName": { + "binding": { + "config": { + "path": "parent.custom.alarmParameterName" + }, + "type": "property" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Exists\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "alarmParameterName": "IOFault" + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\talarm_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/\" + self.custom.alarmParameterName + \"/Cfg_Cond\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, alarm_label)\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath + \"/\" + self.custom.alarmParameterName}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_Alarm/P_Alarm\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AlarmDisplay_IOFault" + }, + "position": { + "height": 34, + "width": 291, + "x": -0.0014555664062640972, + "y": 0.0000019073486328125 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 34, + "width": 290 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 17, + "x": 273.9970643310547, + "y": 0.0000019073486328125 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 200 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#A0A0A4", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GroupDoesNotHaveAlarm" + }, + "position": { + "height": 18, + "width": 200, + "x": 26, + "y": 10 + }, + "propConfig": { + "custom.alarmParameterName": { + "binding": { + "config": { + "path": "parent.custom.alarmParameterName" + }, + "type": "property" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Exists\"), false, true)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 30, + "width": 286 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Alm\")" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/\" + self.parent.custom.alarmParameterName + \"/Val_Notify\"])[0].value\n\tcurrent_color \u003d self.props.style.borderColor\n#\t\n\t# id: [color1, color2]\n\tcolors \u003d {\n\t0: [\"#FFFFFF\", \"#FFFFFF\"],\n\t1: [\"#FFFFFF\", \"#000000\"],\n\t2: [\"#000000\", \"#000000\"],\n\t3: [\"#916AAD\", \"#000000\"],\n\t4: [\"#000000\", \"#000000\"],\n\t5: [\"#F5DF1B\", \"#000000\"],\n\t6: [\"#000000\", \"#000000\"],\n\t7: [\"#EC8629\", \"#000000\"],\n\t8: [\"#000000\", \"#000000\"],\n\t9: [\"#FF0000\", \"#000000\"]\n\t}\n#\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tif (current_color \u003d\u003d colors[Val_NotifyAll][0]):\n\t\t\tret_value \u003d colors[Val_NotifyAll][1]\n\t\telif (current_color \u003d\u003d colors[Val_NotifyAll][1]):\n\t\t\tret_value \u003d colors[Val_NotifyAll][0]\n\t\telse:\n\t\t\tret_value \u003d colors[Val_NotifyAll][0]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 200, + "x": 24, + "y": 8 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#000000", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Disabled\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shelved" + }, + "position": { + "height": 17, + "width": 16, + "x": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Shelved\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Shelved.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Suppressed" + }, + "position": { + "height": 17, + "width": 16, + "x": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Suppressed\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Supp.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupInhibits" + }, + "position": { + "height": 17, + "width": 56, + "x": 225.985, + "y": 6.99554 + }, + "propConfig": { + "custom.alarmParameterName": { + "binding": { + "config": { + "path": "parent.custom.alarmParameterName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 6 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupHasAlarm" + }, + "position": { + "height": 30, + "width": 286, + "x": 2, + "y": 2 + }, + "propConfig": { + "custom.alarmParameterName": { + "binding": { + "config": { + "path": "parent.custom.alarmParameterName" + }, + "type": "property" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Exists\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "alarmParameterName": "IntlkTrip" + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\talarm_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/\" + self.custom.alarmParameterName + \"/Cfg_Cond\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, alarm_label)\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath + \"/\" + self.custom.alarmParameterName}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_Alarm/P_Alarm\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AlarmDisplay_IntlkTrip" + }, + "position": { + "height": 34, + "width": 291, + "x": -0.00145557, + "y": 37 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 34, + "width": 290 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 17, + "x": 273.9970643310547, + "y": 0.0000019073486328125 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 200 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#A0A0A4", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GroupDoesNotHaveAlarm" + }, + "position": { + "height": 18, + "width": 200, + "x": 26, + "y": 10 + }, + "propConfig": { + "custom.alarmParameterName": { + "binding": { + "config": { + "path": "parent.custom.alarmParameterName" + }, + "type": "property" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Exists\"), false, true)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 30, + "width": 286 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Alm\")" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/\" + self.parent.custom.alarmParameterName + \"/Val_Notify\"])[0].value\n\tcurrent_color \u003d self.props.style.borderColor\n#\t\n\t# id: [color1, color2]\n\tcolors \u003d {\n\t0: [\"#FFFFFF\", \"#FFFFFF\"],\n\t1: [\"#FFFFFF\", \"#000000\"],\n\t2: [\"#000000\", \"#000000\"],\n\t3: [\"#916AAD\", \"#000000\"],\n\t4: [\"#000000\", \"#000000\"],\n\t5: [\"#F5DF1B\", \"#000000\"],\n\t6: [\"#000000\", \"#000000\"],\n\t7: [\"#EC8629\", \"#000000\"],\n\t8: [\"#000000\", \"#000000\"],\n\t9: [\"#FF0000\", \"#000000\"]\n\t}\n#\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tif (current_color \u003d\u003d colors[Val_NotifyAll][0]):\n\t\t\tret_value \u003d colors[Val_NotifyAll][1]\n\t\telif (current_color \u003d\u003d colors[Val_NotifyAll][1]):\n\t\t\tret_value \u003d colors[Val_NotifyAll][0]\n\t\telse:\n\t\t\tret_value \u003d colors[Val_NotifyAll][0]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 200, + "x": 24, + "y": 8 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#000000", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Disabled\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shelved" + }, + "position": { + "height": 17, + "width": 16, + "x": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Shelved\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Shelved.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Suppressed" + }, + "position": { + "height": 17, + "width": 16, + "x": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Suppressed\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Supp.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupInhibits" + }, + "position": { + "height": 17, + "width": 56, + "x": 225.985, + "y": 6.99554 + }, + "propConfig": { + "custom.alarmParameterName": { + "binding": { + "config": { + "path": "parent.custom.alarmParameterName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 6 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupHasAlarm" + }, + "position": { + "height": 30, + "width": 286, + "x": 2, + "y": 2 + }, + "propConfig": { + "custom.alarmParameterName": { + "binding": { + "config": { + "path": "parent.custom.alarmParameterName" + }, + "type": "property" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Exists\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "alarmParameterName": "FailToStart" + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\talarm_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/\" + self.custom.alarmParameterName + \"/Cfg_Cond\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, alarm_label)\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath + \"/\" + self.custom.alarmParameterName}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_Alarm/P_Alarm\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AlarmDisplay_FailToStart" + }, + "position": { + "height": 34, + "width": 291, + "x": -0.00145557, + "y": 74 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 34, + "width": 290 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 17, + "x": 273.9970643310547, + "y": 0.0000019073486328125 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 200 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#A0A0A4", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GroupDoesNotHaveAlarm" + }, + "position": { + "height": 18, + "width": 200, + "x": 26, + "y": 10 + }, + "propConfig": { + "custom.alarmParameterName": { + "binding": { + "config": { + "path": "parent.custom.alarmParameterName" + }, + "type": "property" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Exists\"), false, true)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 30, + "width": 286 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Alm\")" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/\" + self.parent.custom.alarmParameterName + \"/Val_Notify\"])[0].value\n\tcurrent_color \u003d self.props.style.borderColor\n#\t\n\t# id: [color1, color2]\n\tcolors \u003d {\n\t0: [\"#FFFFFF\", \"#FFFFFF\"],\n\t1: [\"#FFFFFF\", \"#000000\"],\n\t2: [\"#000000\", \"#000000\"],\n\t3: [\"#916AAD\", \"#000000\"],\n\t4: [\"#000000\", \"#000000\"],\n\t5: [\"#F5DF1B\", \"#000000\"],\n\t6: [\"#000000\", \"#000000\"],\n\t7: [\"#EC8629\", \"#000000\"],\n\t8: [\"#000000\", \"#000000\"],\n\t9: [\"#FF0000\", \"#000000\"]\n\t}\n#\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tif (current_color \u003d\u003d colors[Val_NotifyAll][0]):\n\t\t\tret_value \u003d colors[Val_NotifyAll][1]\n\t\telif (current_color \u003d\u003d colors[Val_NotifyAll][1]):\n\t\t\tret_value \u003d colors[Val_NotifyAll][0]\n\t\telse:\n\t\t\tret_value \u003d colors[Val_NotifyAll][0]\n\t\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "borderWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 200, + "x": 24, + "y": 8 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#000000", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Disabled\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Shelved" + }, + "position": { + "height": 17, + "width": 16, + "x": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Shelved\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Shelved.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Suppressed" + }, + "position": { + "height": 17, + "width": 16, + "x": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Suppressed\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Supp.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupInhibits" + }, + "position": { + "height": 17, + "width": 56, + "x": 225.985, + "y": 6.99554 + }, + "propConfig": { + "custom.alarmParameterName": { + "binding": { + "config": { + "path": "parent.custom.alarmParameterName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 6 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupHasAlarm" + }, + "position": { + "height": 30, + "width": 286, + "x": 2, + "y": 2 + }, + "propConfig": { + "custom.alarmParameterName": { + "binding": { + "config": { + "path": "parent.custom.alarmParameterName" + }, + "type": "property" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Exists\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "alarmParameterName": "FailToStop" + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\talarm_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/\" + self.custom.alarmParameterName + \"/Cfg_Cond\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, alarm_label)\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath + \"/\" + self.custom.alarmParameterName}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_Alarm/P_Alarm\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AlarmDisplay_FailToStop" + }, + "position": { + "height": 34, + "width": 291, + "x": -0.00145557, + "y": 111 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Alarms" + }, + "position": { + "height": 145, + "width": 291 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmContent" + }, + "position": { + "height": 145, + "width": 340, + "x": 43, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Alarm" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 3", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 253 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_Motor", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 206 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 229 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 252 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 275 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonDiagnostics" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 80 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Diag.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 3" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonAlarm" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 120 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Alm.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 2, + "y": 250 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasRunFdbk\") ||\r\ntag({view.params.tagPath} + \"/Cfg_UseRunFdbk\") ||\r\ntag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tCfg_HasRunFdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasRunFdbk\"])[0].value\n\tCfg_UseRunFdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseRunFdbk\"])[0].value\n\tSts_Bypass \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Bypass\"])[0].value\n\t\n\tif ((Cfg_HasRunFdbk) and not (Cfg_UseRunFdbk)) or (Sts_Bypass):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmInh" + }, + "position": { + "height": 16, + "width": 16, + "y": 116.99519348144531 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_AlmInh\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Inhibit.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Timer\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigAlarm" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 118 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Alarm\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmInh_0" + }, + "position": { + "height": 16, + "width": 16, + "y": 99 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 287, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor_Advanced/resource.json new file mode 100644 index 0000000..7314856 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "7b588550ec234f0da262cf5336e4b7ab1500aebefed9f973cfa7b81d6bc7bb06", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..d6bbabf61604b59d23681b63ea3a0aa2a3a6ac38 GIT binary patch literal 9139 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor_Advanced/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor_Advanced/view.json new file mode 100644 index 0000000..c71224a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Motor/P_Motor_Advanced/view.json @@ -0,0 +1,2323 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityDeviceConfigBehavior": true, + "securityDeviceConfigFailTimers": true, + "securityDeviceConfigHMI": true, + "securityDeviceConfigLimits": true, + "securityDeviceConfigTimers": true, + "securityEnableSimulation": true, + "securityEnterOperSettings": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/P_Motor", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigFailTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigFailTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigLimits": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigLimits\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnterOperSettings": { + "binding": { + "config": { + "expression": "\"securityEnterOperSettings\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 442, + "width": 350 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 39, + "width": 37 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 39, + "width": 37, + "x": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 39, + "width": 37, + "x": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 39, + "width": 117, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 104, + "width": 83, + "y": 10.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 68, + "y": -4.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_1" + }, + "position": { + "height": 119, + "width": 83, + "x": 255, + "y": 8 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "GO_StartStopFailTimers" + }, + "position": { + "height": 74, + "width": 340, + "x": 1.5, + "y": 16 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigFailTimers": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_StartStopFailTimers" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_MaxJogT" + }, + "position": { + "height": 32, + "width": 340, + "x": 1.5, + "y": 90 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_MaxJogT" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "x": 2, + "y": 143 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupTimer" + }, + "position": { + "height": 394, + "width": 343, + "x": 2, + "y": 45 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 39, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasRunFdbk\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Motor has Run Feedback" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasRunFdbk\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasRunFdbk\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasRunFdbk" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": -1 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "GO_Cfg_OCmdResets" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 37 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OCmdResets" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_XCmdResets" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 74 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_HasJog" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 111 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_HasJog" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_OvrdPermIntlk" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 148 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OvrdPermIntlk" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_OperStopPrio" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 185 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_OperStopPrio" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_ExtStopPrio" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 222 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_ExtStopPrio" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_AllowLocal" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 259.002 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_AllowLocal", + "style": { + "overflow": "visible" + } + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "PageEngineering1" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label2" + }, + "position": { + "height": 16, + "width": 155, + "x": 8.51, + "y": 9 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Stop Motor:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_Cfg_ShedOnIOFault" + }, + "position": { + "height": 32, + "width": 280, + "x": 12.5, + "y": 26.002000000000002 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_ShedOnFailToStart" + }, + "position": { + "height": 32, + "width": 280, + "x": 12.5, + "y": 57.001999999999995 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFailToStart" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_ShedOnInterlockTrip" + }, + "position": { + "height": 32, + "width": 280, + "x": 12.5, + "y": 90 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnInterlockTrip" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_StartHornT_0" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 127.00200000000001 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Motor Objects/GO_Cfg_StartHornT" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_SimFdbkT" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 169 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SimFdbkT" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "PageEngineering2" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected - 1\n\t\n\tif (newTab \u003e\u003d 0):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "PrevButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 103.5 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Prev.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 0 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page1Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 131.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 1 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page2Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 157.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected + 1\n\t\n\tif (newTab \u003c\u003d maxNumberOfTabs):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "NextButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 187.5 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Next.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + } + ], + "custom": { + "maintenanceTabSelected": 0, + "maxNumberOfTabs": 2 + }, + "meta": { + "name": "PageButtons" + }, + "position": { + "height": 36, + "width": 321, + "x": 14, + "y": 393 + }, + "propConfig": { + "custom.pageTabSelected": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 18, + "width": 16, + "x": 180.005, + "y": 389 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Sim\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "custom": { + "pageTabSelected": 0 + }, + "meta": { + "name": "TabPage_Engineering" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 402, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "x": 80, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Desc_Label_Tag" + }, + "position": { + "height": 68.00000000000001, + "width": 340, + "x": 5, + "y": 3.99 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_Area" + }, + "position": { + "height": 20, + "width": 340, + "x": 5, + "y": 70.987 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityConfigSecurity": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "TextConfig" + }, + "position": { + "height": 125, + "width": 350, + "y": 47 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Cfg_HasPermObj" + }, + "position": { + "height": 32, + "width": 340, + "x": 5, + "y": 4 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasPermObj" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_HasIntlkObj" + }, + "position": { + "height": 32, + "width": 340, + "x": 5, + "y": 34 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasIntlkObj" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "HMIConfig" + }, + "position": { + "height": 206, + "width": 350, + "y": 168 + }, + "type": "ia.container.coord" + } + ], + "custom": { + "pageTabSelected": 0 + }, + "meta": { + "name": "TabPage_HMI" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 306, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_Motor_Advanced", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 346 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 369 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 392 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 415 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonEngineering" + }, + "position": { + "height": 35, + "width": 35, + "x": 42 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Eng.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHMI" + }, + "position": { + "height": 35, + "width": 35, + "x": 81 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_HMI.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "width": 32, + "x": 311 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigEng" + }, + "position": { + "height": 16, + "width": 16, + "x": 63, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Sim\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 35, + "width": 346, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0\n\tself.getChild(\"TabPage_Engineering\").custom.pageTabSelected \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE/resource.json new file mode 100644 index 0000000..e5300b5 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "4d0aeaed3f1631b3bbd829488f504c5f087c30dcaf2c9e6f15039b147fb9fe48", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..7b751a818af9efc3207134d651c49a069c4fc5f3 GIT binary patch literal 5297 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 D>q;)_ literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE/view.json new file mode 100644 index 0000000..1bc3d8c --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE/view.json @@ -0,0 +1,8532 @@ +{ + "custom": { + "cmdSrcTitle": " - ", + "popupVersion": " 1.0 " + }, + "params": { + "securityBypassFeedback": true, + "securityBypassInterlocks": true, + "securityDeviceConfigLimits": true, + "securityDeviceConfigThresholds": true, + "securityEnableSimulation": true, + "securityEnterOperSettings": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 3, + "tagPath": "[default]Test_Tags/Flow_PID", + "userHasBasic": true + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + }, + "persistent": true + }, + "custom.popupVersion": { + "persistent": true + }, + "params.securityBypassFeedback": { + "binding": { + "config": { + "expression": "\"securityBypassFeedback\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityBypassInterlocks": { + "binding": { + "config": { + "expression": "\"securityBypassInterlocks\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigLimits": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigLimits\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigThresholds": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigThresholds\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnterOperSettings": { + "binding": { + "config": { + "expression": "\"securityEnterOperSettings\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 392 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 37, + "width": 39, + "y": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab4" + }, + "position": { + "height": 37, + "width": 39, + "y": 120 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "StatusText_Ready", + "visible": false + }, + "position": { + "height": 16, + "width": 42, + "x": 6, + "y": 2 + }, + "props": { + "text": "Normal", + "textStyle": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "LoDev" + }, + "meta": { + "name": "AlarmNotify_LoDev" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "HiDev" + }, + "meta": { + "name": "AlarmNotify_HiDev" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "LoLoDev" + }, + "meta": { + "name": "AlarmNotify_LoLoDev" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "HiHiDev" + }, + "meta": { + "name": "AlarmNotify_HiHiDev" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IntlkTrip" + }, + "meta": { + "name": "AlarmNotify_IntlkTrip" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "Fail" + }, + "meta": { + "name": "AlarmNotify_Fail" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmNotices" + }, + "position": { + "height": 20, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "custom": { + "parameterName": "NRdy_Init" + }, + "meta": { + "name": "GONoticeNRdy_Init" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONoticeNRdy_Intlk" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONoticeNRdy_IOFault" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONoticeNRdy_OoS" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONoticeNRdy_CfgErr" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NRdyNotices" + }, + "position": { + "height": 21, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AbnormalSeparatorLine" + }, + "position": { + "height": 2, + "width": 352, + "y": 20 + }, + "props": { + "style": { + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content1" + }, + "position": { + "height": 45, + "width": 403, + "x": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "GO_msi_ControlState", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 20, + "width": 303 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Sts_Initializing\") || tag({view.params.tagPath}+ \"/Sts_Hand\") || tag({view.params.tagPath}+ \"/Sts_IntlkCV\") ||\r\ntag({view.params.tagPath}+ \"/Sts_Man\") || tag({view.params.tagPath}+ \"/Sts_Prog\") || tag({view.params.tagPath}+ \"/Sts_Auto\") ||\r\ntag({view.params.tagPath}+ \"/Sts_Casc\") || tag({view.params.tagPath}+ \"/Cfg_HasRatio\") || tag({view.params.tagPath}+ \"/Val_Ratio\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tstates \u003d {\n\t0: \"Output (CV) held by downstream init\",\n\t1: \"Output (CV) held by local control\",\n\t2: \"Output (CV) held by Interlock\",\n\t3: \"Output (CV) set by Program\",\n\t4: \"Output (CV) set by Operator\",\n\t5: \"Controlling to Program setpoint (SP)\",\n\t6: \"Controlling to Operator setpoint (SP)\",\n\t7: \"Controlling to Ratio of Cascade setpoint (SP)\",\n\t8: \"Controlling to Cascade setpoint (SP)\"\n\t}\n\t\n\tSts_Initializing \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Initializing\"])[0].value\n\tSts_Hand \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Hand\"])[0].value\n\tSts_IntlkCV \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_IntlkCV\"])[0].value\n\tSts_Man \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Man\"])[0].value\n\tSts_Auto \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Auto\"])[0].value\n\tSts_Prog \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Prog\"])[0].value\n\tSts_Casc \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Casc\"])[0].value\n\tCfg_HasRatio \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasRatio\"])[0].value\n\tVal_Ratio \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_Ratio\"])[0].value\n\t\n\t\n\tif (Sts_Initializing):\n\t\tindex \u003d 0\n\telif (Sts_Hand):\n\t \tindex \u003d 1\n\telif (Sts_IntlkCV):\n\t\tindex \u003d 2\n\telif (Sts_Man and Sts_Prog):\n\t\tindex \u003d 3\n\telif (Sts_Man):\n\t\tindex \u003d 4\n\telif (Sts_Auto and Sts_Prog):\n\t\tindex \u003d 5\n\telif (Sts_Auto):\n\t\tindex \u003d 6\n\telif (Sts_Casc and Cfg_HasRatio and (Val_Ratio \u003c\u003e 1.0)):\n\t\tindex \u003d 7\n\telif (Sts_Casc and Cfg_HasRatio):\n\t\tindex \u003d 8\n\telif (Sts_Casc):\n\t\tindex \u003d 8\n\telse:\n\t\tindex \u003d 9\n\t\n\tret_value \u003d states[index]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#D4D4D4", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "Left" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16, + "x": 12, + "y": 88 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/SrcQ\") \u003d 19, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 17, + "width": 50, + "x": 19, + "y": 4 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "PV" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_PID_PV" + }, + "position": { + "height": 48, + "width": 88, + "y": 24 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_PV" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 18, + "width": 16, + "x": 36, + "y": 73 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_ZCDBOn\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Good.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupPV" + }, + "position": { + "height": 98, + "width": 88, + "x": 1, + "y": 16 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ThresholdHi" + }, + "position": { + "height": 17, + "width": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_HiDev\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_TholdHiDev.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ThresholdHiHi" + }, + "position": { + "height": 17, + "width": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_HiHiDev\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_TholdHiHiDev.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ThresholdLo" + }, + "position": { + "height": 17, + "width": 16, + "y": 161 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_LoDev\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_TholdLoDev.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ThresholdLoLo" + }, + "position": { + "height": 17, + "width": 16, + "y": 161 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_LoLoDev\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_TholdLoLoDev.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupDeviations" + }, + "position": { + "height": 180, + "width": 16, + "x": 72.0139, + "y": 6.5 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "GO_SPPVBarGraph" + }, + "position": { + "height": 192, + "width": 117, + "x": 80, + "y": 0.5 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_SPPVBarGraph" + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 17, + "width": 50, + "x": 19, + "y": 4 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "SP" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_PID_SP" + }, + "position": { + "height": 48, + "width": 88, + "y": 24 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 66, + "x": 11, + "y": 73 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_SP\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxSP\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MinSP\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_SP\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupSP" + }, + "position": { + "height": 98, + "width": 88, + "x": 126, + "y": 16 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 17, + "width": 50, + "x": 19, + "y": 4 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Ratio" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 66, + "x": 11, + "y": 28 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_Ratio\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d 2#system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_Ratio\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "normal", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 18, + "width": 16, + "x": 69, + "y": 28 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_RatioClamped\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Clamped.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 41, + "x": 23.5, + "y": 73 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Ratio\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxRatio\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MinRatio\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_Ratio\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupRatio" + }, + "position": { + "height": 98, + "width": 88, + "x": 186, + "y": 16 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasCasc\") || tag({view.params.tagPath} + \"/Cfg_HasRatio\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 17, + "width": 50, + "x": 19, + "y": 4 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "CV" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_PID_SP" + }, + "position": { + "height": 48, + "width": 88, + "y": 24 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 66, + "x": 11, + "y": 73 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_CV\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_LimitManCV\"), tag({view.params.tagPath} + \"/Cfg_MaxCV\"), tag({view.params.tagPath} + \"/Cfg_CVEUMax\"))" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_LimitManCV\"), tag({view.params.tagPath} + \"/Cfg_MinCV\"), tag({view.params.tagPath} + \"/Cfg_CVEUMin\"))" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_CV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupCV" + }, + "position": { + "height": 98, + "width": 88, + "x": 246, + "y": 16 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "BarGraphBorder" + }, + "position": { + "height": 12, + "width": 180, + "x": 5.5, + "y": 14.3 + }, + "props": { + "style": { + "borderColor": "#A0A0A4", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Tick0" + }, + "position": { + "height": 5, + "width": 1, + "x": 1.0024, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick1" + }, + "position": { + "height": 5, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.25" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick2" + }, + "position": { + "height": 5, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.5" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick3" + }, + "position": { + "height": 5, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.75" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick4" + }, + "position": { + "height": 5, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick0" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.05" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick1" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick2" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.15" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick3" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.20" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick4" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.30" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick5" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.35" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick6" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.40" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick7" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.45" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick8" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.00481 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.55" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick9" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.60" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick10" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.65" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick11" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.70" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick12" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.80" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick13" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.85" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick14" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.90" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick15" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.95" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "length": 180 + }, + "meta": { + "name": "Scale" + }, + "position": { + "height": 8, + "width": 184, + "x": 4.5, + "y": 26.3 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "CVIndicator" + }, + "position": { + "height": 20, + "rotate": { + "angle": "90deg" + }, + "width": 20, + "y": -1.1 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVOut\") ||\r\ntag({view.params.tagPath} + \"/Val_CVEUMin\") ||\r\ntag({view.params.tagPath} + \"/Val_CVEUMax\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal_CVOut \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVOut\"])[0].value\n\tVal_CVEUMin \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMin\"])[0].value\n\tVal_CVEUMax \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMax\"])[0].value\n\t\n\tDisplayMin \u003d -4\n\tDisplayMax \u003d 175\n\t\n\tret_value \u003d ((DisplayMax - DisplayMin) / (Val_CVEUMax - Val_CVEUMin)) * (Val_CVOut - Val_CVEUMin) + DisplayMin\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "color": "#2A4191", + "path": "material/play_arrow" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "CVSet" + }, + "position": { + "height": 20, + "width": 3, + "y": 14.3 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVSet\") ||\r\ntag({view.params.tagPath} + \"/Val_CVEUMin\") ||\r\ntag({view.params.tagPath} + \"/Val_CVEUMax\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal_CVOut \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVSet\"])[0].value\n\tVal_CVEUMin \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMin\"])[0].value\n\tVal_CVEUMax \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMax\"])[0].value\n\t\n\tDisplayMin \u003d 5\n\tDisplayMax \u003d 183\n\t\n\tret_value \u003d ((DisplayMax - DisplayMin) / (Val_CVEUMax - Val_CVEUMin)) * (Val_CVOut - Val_CVEUMin) + DisplayMin\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "BarGraphGroup" + }, + "position": { + "height": 36, + "width": 190, + "x": 20, + "y": 2 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "ScaleMin" + }, + "position": { + "height": 14, + "width": 53, + "x": 23.5, + "y": 37 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_CVEUMin\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_CVEUMin\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "A0A0A4", + "fontSize": "8pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "ScaleMax" + }, + "position": { + "height": 14, + "width": 43, + "x": 167.5, + "y": 37 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_CVEUMax\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_CVEUMax\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "A0A0A4", + "fontSize": "8pt", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CVBarGroup" + }, + "position": { + "height": 54, + "width": 220, + "x": 117, + "y": 110 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_LoopMode", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 20, + "width": 111, + "x": 16 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Sts_Man\") || tag({view.params.tagPath}+ \"/Sts_Casc\") || tag({view.params.tagPath}+ \"/Cfg_HasCasc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tstates \u003d {\n\t0: [\"Sts_ModeMan\", \"Manual\"],\n\t1: [\"Sts_ModeAuto\", \"Auto\"],\n\t2: [\"Sts_ModeAutoCas\", \"Auto\"],\n\t3: [\"Sts_ModeCas\", \"Cascade\"]\n\t}\n\t\n\tSts_Man \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Man\"])[0].value\n\tSts_Casc \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Casc\"])[0].value\n\tCfg_HasCasc \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasCasc\"])[0].value\n\t\n\tif (Sts_Casc):\n\t\tindex \u003d 3\n\telif (Sts_Man):\n\t \tindex \u003d 0\n\telif (Cfg_HasCasc):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 1\n\t\n\tret_value \u003d states[index][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#D4D4D4", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "Left" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "msi_Exceptions" + }, + "position": { + "height": 20, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Sts_Man\") || tag({view.params.tagPath}+ \"/Sts_Casc\") || tag({view.params.tagPath}+ \"/Cfg_HasCasc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"Sts_ModeMan\", \"Manual\"],\n\t1: [\"Sts_ModeAuto\", \"Auto\"],\n\t2: [\"Sts_ModeAutoCas\", \"Auto\"],\n\t3: [\"Sts_ModeCas\", \"Cascade\"]\n\t}\n\t\n\tSts_Man \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Man\"])[0].value\n\tSts_Casc \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Casc\"])[0].value\n\tCfg_HasCasc \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasCasc\"])[0].value\n\t\n\tif (Sts_Casc):\n\t\tindex \u003d 3\n\telif (Sts_Man):\n\t \tindex \u003d 0\n\telif (Cfg_HasCasc):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(states[index][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GO_LoopMode" + }, + "position": { + "height": 20, + "width": 128, + "x": 207, + "y": 173 + }, + "props": { + "style": { + "backgroundColor": "#CCCCCC" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PrimaryDisplayValues" + }, + "position": { + "height": 205, + "width": 339, + "x": 2, + "y": 20 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InformationSection" + }, + "position": { + "height": 226, + "width": 343 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_RunFwd_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_RunFwd.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_StartFwd\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_StartFwd\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_StartFwdButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 155 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_JogFwd_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_JogFwd.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onMouseDown": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Jog\", True)" + }, + "scope": "G", + "type": "script" + }, + "onMouseUp": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_JogFwd\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_JogFwd\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_JogFwdButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 198 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasJog\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "CommandButtons", + "visible": false + }, + "position": { + "height": 40, + "width": 240, + "x": 100.988, + "y": 51 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 112, + "x": 30.5, + "y": 6.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[index][1]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CmdSrcImage" + }, + "position": { + "height": 38, + "width": 18, + "x": 8, + "y": 4 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(states[index][0])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "contain" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}_CmdSrc", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.custom.cmdSrcTitle}", + "type": "open", + "viewParams": { + "selectedTab": "0", + "tagPath": "{view.params.tagPath}/CmdSrc" + }, + "viewPath": "Plant PAX/Popups/P_CmdSrc/P_CmdSrc", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "CmdSrcNavButton" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "image": { + "style": { + "backgroundColor": "#FFFFFF00" + } + }, + "style": { + "backgroundColor": "#FFFFFF00", + "outlineStyle": "none" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "CmdSrcNotNormal" + }, + "position": { + "height": 16, + "width": 16, + "x": 127 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_CmdSrcNotNorm.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GOCmdSrcDisplayWithNav" + }, + "position": { + "height": 45, + "width": 145, + "y": 94 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InterlocksAndPermissives" + }, + "position": { + "height": 40, + "width": 41, + "x": 299, + "y": 96.5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeMan_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeMan.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Man\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Man\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_LoopModeManualButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 253, + "y": 97 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeAuto_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeAuto.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Auto\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Auto\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_LoopModeAutoButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 207.00390625, + "y": 97 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeNorm_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeNorm.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_NormLM\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_NormLM\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_NormLoopModeButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_NormLM\") \u003e 0" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupNormalLoopMode_NoCasc" + }, + "position": { + "height": 40, + "width": 40, + "x": 161.004, + "y": 97 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "!tag({view.params.tagPath} + \"/Cfg_HasCasc\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeNorm_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeNorm.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_NormLM\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_NormLM\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_NormLoopModeButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_NormLM\") \u003e 0" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeCas_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeCas.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Casc\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Casc\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_LoopModeCascadeButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 0.0078125, + "y": 50 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasCasc\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupNormalLoopMode_WithCasc" + }, + "position": { + "height": 91, + "width": 40, + "x": 161, + "y": 48.01 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasCasc\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Commands" + }, + "position": { + "height": 141, + "width": 343, + "y": 133 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content2" + }, + "position": { + "height": 276, + "width": 346, + "x": 43, + "y": 24 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_PIDE/P_PIDE_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40, + "y": 1 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupNavToAdvanced" + }, + "position": { + "height": 42, + "width": 42 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "MtceNavButtons" + }, + "position": { + "height": 42, + "width": 43, + "x": 46, + "y": 2 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Threshold" + }, + "position": { + "height": 16, + "width": 80, + "x": 5, + "y": 1 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Threshold" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Deadband" + }, + "position": { + "height": 16, + "width": 80, + "x": 83, + "y": 1 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Deadband" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Units" + }, + "position": { + "height": 14, + "width": 80, + "x": 5, + "y": 15 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"(\" + tag({view.params.tagPath} + \"/Cfg_PVEU\") + \")\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Headers" + }, + "position": { + "height": 30, + "width": 165, + "x": 178 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 20, + "width": 170 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 167 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Cfg_InpCond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Gate\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadCfg" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupGate" + }, + "position": { + "height": 20, + "width": 170, + "y": 5 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "nde_CfgLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 4, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\") || tag({view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"Lim\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"])[0].value\n\tfield_value \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_\" + self.parent.custom.gateName + \"Lim\"])[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\tif (str(field_value).find(\"e\") !\u003d -1):\n\t\tret_value \u003d \"none\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"Lim\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_CfgDB" + }, + "position": { + "height": 20, + "width": 70, + "x": 83, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"DB\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupLimitAndDB" + }, + "position": { + "height": 30, + "width": 156, + "x": 176 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "gateName": "HiHiDev" + }, + "meta": { + "name": "GoLimitConfigHiHiDev" + }, + "position": { + "height": 30, + "width": 335, + "x": 8, + "y": 26 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 20, + "width": 170 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 167 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Cfg_InpCond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Gate\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadCfg" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupGate" + }, + "position": { + "height": 20, + "width": 170, + "y": 5 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "nde_CfgLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 4, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\") || tag({view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"Lim\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"])[0].value\n\tfield_value \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_\" + self.parent.custom.gateName + \"Lim\"])[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\tif (str(field_value).find(\"e\") !\u003d -1):\n\t\tret_value \u003d \"none\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"Lim\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_CfgDB" + }, + "position": { + "height": 20, + "width": 70, + "x": 83, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"DB\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupLimitAndDB" + }, + "position": { + "height": 30, + "width": 156, + "x": 176 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "gateName": "HiDev" + }, + "meta": { + "name": "GoLimitConfigHiDev" + }, + "position": { + "height": 30, + "width": 335, + "x": 8, + "y": 55 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 20, + "width": 170 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 167 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Cfg_InpCond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Gate\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadCfg" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupGate" + }, + "position": { + "height": 20, + "width": 170, + "y": 5 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "nde_CfgLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 4, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\") || tag({view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"Lim\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"])[0].value\n\tfield_value \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_\" + self.parent.custom.gateName + \"Lim\"])[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\tif (str(field_value).find(\"e\") !\u003d -1):\n\t\tret_value \u003d \"none\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"Lim\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_CfgDB" + }, + "position": { + "height": 20, + "width": 70, + "x": 83, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"DB\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupLimitAndDB" + }, + "position": { + "height": 30, + "width": 156, + "x": 176 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "gateName": "LoDev" + }, + "meta": { + "name": "GoLimitConfigLoDev" + }, + "position": { + "height": 30, + "width": 335, + "x": 8, + "y": 84 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 20, + "width": 170 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 167 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Cfg_InpCond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Disabled" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Gate\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadCfg" + }, + "position": { + "height": 17, + "width": 16, + "x": 151, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {parent.custom.gateName} + \"Gate/Sts_Err\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupGate" + }, + "position": { + "height": 20, + "width": 170, + "y": 5 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "nde_CfgLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 4, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\") || tag({view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"Lim\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"])[0].value\n\tfield_value \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_\" + self.parent.custom.gateName + \"Lim\"])[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\tif (str(field_value).find(\"e\") !\u003d -1):\n\t\tret_value \u003d \"none\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"Lim\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_CfgDB" + }, + "position": { + "height": 20, + "width": 70, + "x": 83, + "y": 5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigThresholds} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_\" + {parent.custom.gateName} + \"DB\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupLimitAndDB" + }, + "position": { + "height": 30, + "width": 156, + "x": 176 + }, + "propConfig": { + "custom.gateName": { + "binding": { + "config": { + "path": "parent.custom.gateName" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "gateName": "LoLoDev" + }, + "meta": { + "name": "GoLimitConfigLoLoDev" + }, + "position": { + "height": 30, + "width": 335, + "x": 8, + "y": 113 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupLimits" + }, + "position": { + "height": 146, + "width": 345, + "x": 42, + "y": 26 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "y": 47 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 193, + "y": 57 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_SubstPV\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Bypass\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Check\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 2, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "start", + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Bypass\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 56, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "end", + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 133, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 101, + "y": 7 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Bypass Enabled" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "BypassEnabled" + }, + "position": { + "height": 33, + "width": 243, + "y": 66 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 182, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Interlocks and Permissives" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InterlocksAndPermissivesButtons" + }, + "position": { + "height": 40, + "width": 40, + "x": 295, + "y": 58.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "IntlkAndPerm" + }, + "position": { + "height": 105, + "width": 340, + "x": 46.5, + "y": 195 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 83 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350, + "y": 274 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 180.99999999999997 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Device Not Ready Reasons" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Reset\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Reset\") \u0026\u0026 tag({view.params.tagPath} + \"/Sts_NotRdy\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_ResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 293.019, + "y": 1 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONotRdy_OoS" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.01953125, + "y": 20.99609375 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONotRdy_CfgErr" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 40.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONotRdy_Intlk" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 60.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONotRdy_IOFault" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 80.996 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"CV Init Req and configured to Init to Manual\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Init" + }, + "meta": { + "name": "GONotRdy_Init" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 100.996 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "NotRdyHeader_0" + }, + "position": { + "height": 16, + "width": 334, + "x": 2.02, + "y": 140 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontStyle": "italic", + "fontWeight": "normal" + }, + "text": "* A reset is required to clear this condition" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NotReadyReasons" + }, + "position": { + "height": 234, + "width": 340, + "x": 6 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DiagnosticsContent" + }, + "position": { + "height": 295, + "width": 350, + "x": 40.9936, + "y": 0.00000190735 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Diagnostics" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 123 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_AlarmDisplay_Fail" + }, + "position": { + "height": 34, + "width": 291 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "Fail" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_IntlkTrip" + }, + "position": { + "height": 34, + "width": 291, + "y": 37 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "IntlkTrip" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_HiHiDev" + }, + "position": { + "height": 34, + "width": 291, + "y": 74 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "HiHiDev" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_HiDev" + }, + "position": { + "height": 34, + "width": 291, + "y": 111 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "HiDev" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_LoDev" + }, + "position": { + "height": 34, + "width": 291, + "y": 148 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "LoDev" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_LoLoDev" + }, + "position": { + "height": 34, + "width": 291, + "y": 185 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "LoLoDev" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "Alarms" + }, + "position": { + "height": 289, + "width": 291 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmContent" + }, + "position": { + "height": 290, + "width": 340, + "x": 43, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Alarm" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 3", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 253 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_PIDE", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 206 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 229 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 252 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 275 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonDiagnostics" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 80 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Diag.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 3" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonAlarm" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 120 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Alm.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\t\t\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"PID Trend\")\n\t\n\tparams \u003d {\n\t\"tagPath\": self.view.params.tagPath,\n\t}\n\t\n\tsystem.perspective.openPopup(title,\u0027Plant PAX/Popups/00_Trend_Popups/Process_PIDE\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonTrend" + }, + "position": { + "height": 32, + "width": 32, + "x": 2, + "y": 210 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Trend.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 2, + "y": 250 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_CVEU\") || tag({view.params.tagPath} + \"/Err_CVRaw\") || tag({view.params.tagPath} + \"/Err_CVLim\") || tag({view.params.tagPath} + \"/Err_ZCDB\") ||\r\ntag({view.params.tagPath} + \"/Err_PVEU\") || tag({view.params.tagPath} + \"/Err_RatioLim\") || tag({view.params.tagPath} + \"/Err_SPLim\") || tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_BadConfigAlarm" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 118 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Alarm\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_NotReady" + }, + "position": { + "height": 16, + "width": 16, + "y": "102px" + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_NotRdy\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ImageAlarmInh" + }, + "position": { + "height": 16, + "width": 16, + "y": "118px" + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_AlmInh\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Inhibit.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 287, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE_Advanced/resource.json new file mode 100644 index 0000000..dd473ae --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "1a10fd0f4f3b352101bb479c7196494c08c8f4facad4718a8fd6c55ed729deac", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..6729f80b6d3710c4d76fd2219455577c237ba092 GIT binary patch literal 14211 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 Pdnf-@S-Muz^ymKqTDcu~ literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE_Advanced/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE_Advanced/view.json new file mode 100644 index 0000000..24c78c5 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_PIDE/P_PIDE_Advanced/view.json @@ -0,0 +1,27161 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityDeviceConfigBehavior": true, + "securityDeviceConfigHMI": true, + "securityDeviceConfigLimits": true, + "securityDeviceConfigTimers": true, + "securityDeviceConfigTuning": true, + "securityEnableSimulation": true, + "securityEnterOperSettings": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/Flow_PID", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigLimits": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigLimits\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigTuning": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigTuning\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnterOperSettings": { + "binding": { + "config": { + "expression": "\"securityEnterOperSettings\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 442, + "width": 350 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 39, + "width": 37 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 39, + "width": 37, + "x": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 39, + "width": 37, + "x": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab4" + }, + "position": { + "height": 39, + "width": 37, + "x": 120 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab5" + }, + "position": { + "height": 39, + "width": 37, + "x": 161 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 39, + "width": 206, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "custom": { + "historyTags": [ + { + "aggregate": "Average", + "alias": "SP" + }, + { + "aggregate": "Average", + "alias": "PV" + }, + { + "aggregate": "Average", + "alias": "CV" + } + ] + }, + "meta": { + "name": "TimeSeriesChart" + }, + "position": { + "height": 225, + "width": 345 + }, + "propConfig": { + "custom.historyTags[0].path": { + "binding": { + "config": { + "expression": "{view.params.tagPath} + \"/Val_SPPercent\"" + }, + "type": "expr" + } + }, + "custom.historyTags[1].path": { + "binding": { + "config": { + "expression": "{view.params.tagPath} + \"/Val_PVPercent\"" + }, + "type": "expr" + } + }, + "custom.historyTags[2].path": { + "binding": { + "config": { + "expression": "{view.params.tagPath} + \"/Val_CVPercent\"" + }, + "type": "expr" + } + }, + "props.series[0].data": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "5", + "mostRecentUnits": "MIN" + }, + "enableValueCache": true, + "ignoreBadQuality": false, + "polling": { + "enabled": true, + "rate": "4" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "type": "tag-history" + } + } + }, + "props": { + "enablePanZoom": false, + "plots": [ + { + "axes": [ + { + "alignment": "left", + "label": { + "font": { + "color": "", + "size": 10 + }, + "offset": 0, + "style": { + "classes": "" + }, + "text": "", + "visible": true + }, + "max": 100, + "min": 0, + "name": "yAxis", + "style": { + "classes": "" + }, + "tick": { + "color": "", + "count": 5, + "label": { + "font": { + "color": "", + "size": 10 + }, + "format": "Auto", + "style": { + "classes": "" + } + }, + "style": { + "classes": "" + } + }, + "width": 0 + } + ], + "markers": [ + { + "axis": "yAxis", + "line": { + "color": "", + "dashArray": 0, + "label": { + "font": { + "color": "", + "size": 10 + }, + "position": "right", + "style": { + "classes": "" + }, + "text": "" + }, + "opacity": 0.5, + "style": { + "classes": "" + }, + "width": 1 + }, + "type": "line", + "value": 0, + "visible": true + }, + { + "axis": "yAxis", + "line": { + "color": "", + "dashArray": 0, + "label": { + "font": { + "color": "", + "size": 10 + }, + "position": "right", + "style": { + "classes": "" + }, + "text": "" + }, + "opacity": 0.5, + "style": { + "classes": "" + }, + "width": 1 + }, + "type": "line", + "value": 25, + "visible": true + }, + { + "axis": "yAxis", + "line": { + "color": "", + "dashArray": 0, + "label": { + "font": { + "color": "", + "size": 10 + }, + "position": "right", + "style": { + "classes": "" + }, + "text": "" + }, + "opacity": 0.5, + "style": { + "classes": "" + }, + "width": 1 + }, + "type": "line", + "value": 50, + "visible": true + }, + { + "axis": "yAxis", + "line": { + "color": "", + "dashArray": 0, + "label": { + "font": { + "color": "", + "size": 10 + }, + "position": "right", + "style": { + "classes": "" + }, + "text": "" + }, + "opacity": 0.5, + "style": { + "classes": "" + }, + "width": 1 + }, + "type": "line", + "value": 75, + "visible": true + }, + { + "axis": "yAxis", + "line": { + "color": "", + "dashArray": 0, + "label": { + "font": { + "color": "", + "size": 10 + }, + "position": "right", + "style": { + "classes": "" + }, + "text": "" + }, + "opacity": 0.5, + "style": { + "classes": "" + }, + "width": 1 + }, + "type": "line", + "value": 100, + "visible": true + } + ], + "trends": [ + { + "axis": "yAxis", + "baselines": [], + "breakLine": true, + "columns": [ + { + "color": "", + "key": "t_stamp", + "styles": { + "highlighted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "muted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "normal": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "selected": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + } + } + }, + { + "color": "#93C2E4", + "key": "SP", + "styles": { + "highlighted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "muted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "normal": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": 2 + } + }, + "selected": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + } + } + }, + { + "color": "#475CA7", + "key": "PV", + "styles": { + "highlighted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "muted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "normal": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": 2 + } + }, + "selected": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + } + } + }, + { + "color": "#55555A", + "key": "CV", + "styles": { + "highlighted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "muted": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + }, + "normal": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": 2 + } + }, + "selected": { + "fill": { + "color": "", + "opacity": null + }, + "stroke": { + "color": "", + "dashArray": null, + "opacity": null, + "width": null + } + } + } + } + ], + "interpolation": "curveLinear", + "radius": 2, + "series": "Trend", + "stack": true, + "type": "line", + "visible": true + } + ] + } + ], + "series": [ + { + "name": "Trend" + } + ], + "timeAxis": { + "height": 15 + }, + "timeRange": { + "visible": false + }, + "xTrace": { + "visible": false + } + }, + "type": "ia.chart.timeseries" + } + ], + "meta": { + "name": "TrendGroup" + }, + "position": { + "height": 225, + "width": 345, + "x": 2.5, + "y": 46 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "PVLegendPolygon" + }, + "position": { + "height": 8, + "width": 16, + "x": 4, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#2A4191" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 29, + "x": 19 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "PV" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 66 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_PV\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_PV\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#475CA7", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 66, + "x": 66 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_PVEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "normal", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "ndd_Val_PV" + }, + "position": { + "height": 16, + "width": 132, + "x": 46 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 66 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_PVPercent\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d 2#system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_PVPercent\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#475CA7", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 66, + "x": 66 + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "normal", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "text": "% of span", + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "ndd_Val_PVPercent" + }, + "position": { + "height": 16, + "width": 132, + "x": 197 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupPV" + }, + "position": { + "height": 16, + "width": 330, + "y": 2 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SPLegendPolygon" + }, + "position": { + "height": 8, + "width": 16, + "x": 4, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#93C2E4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 29, + "x": 19 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "SP" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 66 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_SP\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_SP\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#475CA7", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 66, + "x": 66 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_PVEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "normal", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "ndd_Val_SP" + }, + "position": { + "height": 16, + "width": 132, + "x": 46 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 66 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_SPPercent\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d 2#system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_SPPercent\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#475CA7", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 66, + "x": 66 + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "normal", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "text": "%", + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "ndd_Val_SPPercent" + }, + "position": { + "height": 16, + "width": 132, + "x": 197 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 66, + "x": 151, + "y": -2 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_SP\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxSP\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MinSP\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_SP\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupSP" + }, + "position": { + "height": 16, + "width": 330, + "y": 24 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "CVLegendPolygon" + }, + "position": { + "height": 8, + "width": 16, + "x": 4, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#55555A" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 29, + "x": 19 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "CV" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 66 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_CVOut\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#475CA7", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 66, + "x": 66 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_CVEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "normal", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "ndd_Val_CVOut" + }, + "position": { + "height": 16, + "width": 132, + "x": 46 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "godsData_Value", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 66 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_CVPercent\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d 2#system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_CVPercent\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#475CA7", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 66, + "x": 66 + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "normal", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "text": "%", + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "ndd_Val_SPPercent" + }, + "position": { + "height": 16, + "width": 132, + "x": 197 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 66, + "x": 151, + "y": -2 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_CV\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_LimitManCV\"), tag({view.params.tagPath} + \"/Cfg_MaxCV\"), tag({view.params.tagPath} + \"/Cfg_CVEUMax\"))" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_LimitManCV\"), tag({view.params.tagPath} + \"/Cfg_MinCV\"), tag({view.params.tagPath} + \"/Cfg_CVEUMin\"))" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_CV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupCV" + }, + "position": { + "height": 16, + "width": 330, + "y": 46 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Group_PV_SP_CV" + }, + "position": { + "height": 68, + "width": 343, + "y": 268 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 280, + "y": 8 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 43, + "x": 3 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "left" + }, + "text": "Gains" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 70, + "width": 24 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_PID.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 69, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Proportional" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 66, + "x": 75 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigTuning} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "4//tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_PGain\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "nde_Cfg_PGain" + }, + "position": { + "height": 20, + "width": 230, + "x": 26, + "y": 3.01 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 69, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Integral" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 66, + "x": 75 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigTuning} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "4//tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_IGain\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Units" + }, + "position": { + "height": 16, + "width": 69, + "x": 145.00852584838867, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_Depend\"), \"Mins./Repeat\", \"1/Minutes \")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "nde_Cfg_IGain" + }, + "position": { + "height": 20, + "width": 230, + "x": 26, + "y": 25 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 69, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Derivative" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 66, + "x": 75 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigTuning} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "4//tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_DGain\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Units" + }, + "position": { + "height": 16, + "width": 69, + "x": 145.00852584838867, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Minutes" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "nde_Cfg_DGain" + }, + "position": { + "height": 20, + "width": 230, + "x": 26, + "y": 47 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GainEntries" + }, + "position": { + "height": 70, + "width": 260, + "x": 3, + "y": 18.0029 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupGains" + }, + "position": { + "height": 90, + "width": 280, + "y": 343 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeCas_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeCas.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Casc\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Casc\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_LoopModeCascadeButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasCasc\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeAuto_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeAuto.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Auto\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Auto\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_LoopModeAutoButton" + }, + "position": { + "height": 40, + "width": 40, + "y": 45 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeMan_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ModeMan.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Man\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Man\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_LoopModeManualButton" + }, + "position": { + "height": 40, + "width": 40, + "y": 90 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupLoopModeButtons" + }, + "position": { + "height": 140, + "width": 40, + "x": 303.003, + "y": 298 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Tunning" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 39, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "LineHor15" + }, + "position": { + "height": 1, + "width": 17.060000000000002, + "x": 249.5, + "y": 61.51 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer6" + }, + "position": { + "height": 70, + "width": -1, + "x": 277.01, + "y": 15.51 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor16" + }, + "position": { + "height": 1, + "width": 28, + "x": 249.74, + "y": 14.51 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor2" + }, + "position": { + "height": -6, + "width": 35.999999999999986, + "x": 102.01, + "y": 152.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor0" + }, + "position": { + "height": 1, + "width": 14, + "x": 291.01, + "y": 50.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer0" + }, + "position": { + "height": 256, + "width": 0, + "x": 304.01, + "y": 51.5 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer1" + }, + "position": { + "height": 30, + "width": 0, + "x": 102.01, + "y": 138 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor3" + }, + "position": { + "height": 1, + "width": 36, + "x": 67.0104, + "y": 137.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor4" + }, + "position": { + "height": 1, + "width": 36, + "x": 67.0104, + "y": 167.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer2" + }, + "position": { + "height": 170, + "width": -1, + "x": 137.01, + "y": 49.5 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor5" + }, + "position": { + "height": 1, + "width": 18, + "x": 119.01, + "y": 49.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor8" + }, + "position": { + "height": -9, + "width": 210, + "x": 90.01, + "y": 223.51 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor10" + }, + "position": { + "height": 1, + "width": 70, + "x": 227.01, + "y": 277.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 18, + "width": 16, + "x": 160, + "y": 7.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "!(tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Maint\") || (!tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") \u0026\u0026 !tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\"))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOper.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_0" + }, + "position": { + "height": 17, + "width": 16, + "x": 160, + "y": 7.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "(tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Maint\") || (!tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") \u0026\u0026 !tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\"))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcMaint.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_1" + }, + "position": { + "height": 18, + "width": 16, + "x": 159.01, + "y": 30.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcExt.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_2" + }, + "position": { + "height": 18, + "width": 16, + "x": 159.01, + "y": 54.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcProgram.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_3" + }, + "position": { + "height": 18, + "width": 16, + "x": 159.01, + "y": 78.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOvrd.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_8" + }, + "position": { + "height": 21, + "width": 21, + "x": 127.00999999999999, + "y": 212.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Multiplier.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_10" + }, + "position": { + "height": 21, + "width": 33, + "x": 121.01, + "y": 143.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_HiLoLimiter.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_12" + }, + "position": { + "height": 18, + "width": 16, + "x": 6, + "y": 7.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "!(tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Maint\") || (!tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") \u0026\u0026 !tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\"))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOper.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_13" + }, + "position": { + "height": 17, + "width": 16, + "x": 5.00567626953125, + "y": 31.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcExt.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_14" + }, + "position": { + "height": 18, + "width": 16, + "x": 5.00567626953125, + "y": 55.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcProgram.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_15" + }, + "position": { + "height": 18, + "width": 16, + "x": 5.00567626953125, + "y": 78.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOvrd.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor17" + }, + "position": { + "height": 1, + "width": 28, + "x": 249.5, + "y": 84.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor18" + }, + "position": { + "height": 0, + "width": 17.060000000000002, + "x": 249.5, + "y": 37.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor19" + }, + "position": { + "height": 1, + "rotate": { + "angle": "45deg" + }, + "width": 15, + "x": 263.5, + "y": 42.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor20" + }, + "position": { + "height": 1, + "rotate": { + "angle": "-45deg" + }, + "width": 15, + "x": 263.5, + "y": 56.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_6" + }, + "position": { + "height": 27, + "width": 27, + "x": 264.01, + "y": 36.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor21" + }, + "position": { + "height": 1, + "width": 22, + "x": 93.5, + "y": 84.51 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor22" + }, + "position": { + "height": 1, + "width": 10, + "x": 93.5, + "y": 61.51 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor23" + }, + "position": { + "height": 1, + "rotate": { + "angle": "-45deg" + }, + "width": 15, + "x": 101.5, + "y": 56.5078 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor24" + }, + "position": { + "height": 1, + "width": 10, + "x": 93.5, + "y": 37.51 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor25" + }, + "position": { + "height": 1, + "rotate": { + "angle": "45deg" + }, + "width": 15, + "x": 101.5, + "y": 42.5078 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer9" + }, + "position": { + "height": 70, + "width": 1, + "x": 114.5, + "y": 15.5078 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor26" + }, + "position": { + "height": 0, + "width": 21, + "x": 94.5, + "y": 14.51 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_16" + }, + "position": { + "height": 27, + "width": 27, + "x": 101.5, + "y": 36.5078 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_17" + }, + "position": { + "height": 27, + "width": 27, + "x": 290.5, + "y": 210.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_18" + }, + "position": { + "height": 21, + "width": 21, + "x": 293.5, + "y": 267.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_ProgramTransfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_19" + }, + "position": { + "height": 18, + "width": 15, + "x": 289.512, + "y": 27.5024 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Oper\") ||\r\ntag({view.params.tagPath} + \"/Sts_Ext\") ||\r\ntag({view.params.tagPath} + \"/Sts_Prog\") ||\r\ntag({view.params.tagPath} + \"/Sts_Ovrd\") ||\r\ntag({view.params.tagPath} + \"/Sts_Maint\") ||\r\ntag({view.params.tagPath} + \"/Cfg_ExtKeep\") ||\r\ntag({view.params.tagPath} + \"/Cfg_ProgKeep\") ||\r\ntag({view.params.tagPath} + \"/Cfg_OperKeep\")\r\n" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d -1\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_CmdSrcOper\",\n\t1: \"Sts_CmdSrcProgram\",\n\t2: \"Sts_CmdSrcOvrd\",\n\t3: \"Sts_CmdSrcMaint\",\n\t4: \"Sts_CmdSrcExt\",\n\t}\n\t\n\tSts_Oper \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Oper\"])[0].value\n\tSts_Ext \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Ext\"])[0].value\n\tSts_Prog \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Prog\"])[0].value\n\tSts_Ovrd \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Ovrd\"])[0].value\n\tSts_Maint \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Maint\"])[0].value\n\tCfg_ExtKeep1 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_ExtKeep\"])[0].value \u0026 2**1) \u003d\u003d 2**1\n\tCfg_ProgKeep1 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_ProgKeep\"])[0].value \u0026 2**1) \u003d\u003d 2**1\n\tCfg_OperKeep1 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_OperKeep\"])[0].value \u0026 2**1) \u003d\u003d 2**1\n\t\n\tif (Sts_Ovrd): \n\t\tindex \u003d 2\n\telif (Sts_Maint):\n\t\tindex \u003d 3\n\telif (Cfg_ExtKeep1 and (Sts_Prog or Sts_Oper)) or (Sts_Ext and not(Cfg_ProgKeep1) and not(Cfg_OperKeep1)):\n\t\tindex \u003d 4\n\telif (Cfg_ProgKeep1 and (Sts_Oper or Sts_Ext)) or (Sts_Prog and not(Cfg_ExtKeep1) and not(Cfg_OperKeep1)):\n\t\tindex \u003d 1\n\telse: \n\t\tindex \u003d 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_4" + }, + "position": { + "height": 17, + "width": 16, + "x": 6, + "y": 7.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "(tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Maint\") || (!tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") \u0026\u0026 !tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\"))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcMaint.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "LinesAndImages" + }, + "position": { + "height": 329, + "width": 341, + "x": 1, + "y": 2.5 + }, + "type": "ia.container.coord" + }, + { + "custom": { + "parameter": "Inp_OvrdRatio" + }, + "meta": { + "name": "OvrdCV" + }, + "position": { + "height": 20, + "width": 70, + "x": 25.009, + "y": 79 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d 2#system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "PSet_Ratio" + }, + "meta": { + "name": "PSet_Ratio" + }, + "position": { + "height": 20, + "width": 70, + "x": 25.009, + "y": 55 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d 2#system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "XSet_Ratio" + }, + "meta": { + "name": "XSet_Ratio" + }, + "position": { + "height": 20, + "width": 70, + "x": 25, + "y": 31 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d 2#system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_OSet_Ratio" + }, + "position": { + "height": 20, + "width": 70, + "x": 25, + "y": 8 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2//tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxRatio\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MinRatio\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_Ratio\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "10pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Ratio" + }, + "position": { + "height": 15.000000000000002, + "width": 62.999999999999986, + "x": 99.51, + "y": 10.01 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "Ratio" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "RatioLimits" + }, + "position": { + "height": 16, + "width": 89, + "x": 15.5, + "y": 114 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "Ratio Limits" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 55, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_1" + }, + "position": { + "height": 61, + "width": 89, + "x": 23, + "y": 125 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_RatioLim\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "nde_RatioHiLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 25, + "y": 132 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2//tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MinRatio\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxRatio\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_RatioLoLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 25, + "y": 158 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2//tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxRatio\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MinRatio\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "custom": { + "parameter": "Inp_CascSP" + }, + "meta": { + "name": "ndd_Inp_CascSP" + }, + "position": { + "height": 20, + "width": 70, + "x": 25, + "y": 217 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "SPCascade" + }, + "position": { + "height": 16, + "width": 89, + "x": 15.508523941040039, + "y": 197.00568389892578 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "SP Cascade" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "RatioClamped" + }, + "position": { + "height": 17, + "width": 17, + "x": 158, + "y": 148 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_RatioClamped\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Clamped.png" + }, + "type": "ia.display.image" + }, + { + "custom": { + "parameter": "Val_Ratio" + }, + "meta": { + "name": "ndd_Ratio" + }, + "position": { + "height": 20, + "width": 70, + "x": 103.50852394104004, + "y": 182.00568389892578 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d 2#system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_Ratio" + }, + "meta": { + "name": "ndd_CascSPxRatio" + }, + "position": { + "height": 20, + "width": 70, + "x": 181, + "y": 217 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_Ratio\") * tag({view.params.tagPath}+ \"/Inp_CascSP\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_Ratio\") * tag({view.params.tagPath}+ \"/Inp_CascSP\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Inp_OvrdSP" + }, + "meta": { + "name": "Inp_OvrdSP" + }, + "position": { + "height": 20, + "width": 70, + "x": 180.99999809265137, + "y": 78.99716186523438 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "PSet_SP" + }, + "meta": { + "name": "PSet_SP" + }, + "position": { + "height": 20, + "width": 70, + "x": 180.99999809265137, + "y": 54.997161865234375 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "XSet_SP" + }, + "meta": { + "name": "XSet_SP" + }, + "position": { + "height": 20, + "width": 70, + "x": 180.99999809265137, + "y": 30.997161865234375 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_OSet_SP" + }, + "position": { + "height": 20, + "width": 70, + "x": 180.99999809265137, + "y": 7.997161865234375 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_SP\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxSP\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MinSP\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_SP\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "10pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "SP" + }, + "position": { + "height": 15, + "width": 64, + "x": 254.99999809265137, + "y": 9.997161865234375 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "SP" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "PV" + }, + "position": { + "height": 15, + "width": 89, + "x": 171.5, + "y": 251.003 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "PV" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_PV" + }, + "meta": { + "name": "ndd_Val_PV" + }, + "position": { + "height": 20, + "width": 70, + "x": 181, + "y": 271.003 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "PV_0" + }, + "position": { + "height": 15, + "width": 180, + "x": 86.49, + "y": 307.99 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "text": "SP before ramping and clamping" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_SPSet" + }, + "meta": { + "name": "ndd_Val_PV_0" + }, + "position": { + "height": 20, + "width": 70, + "x": 267.486, + "y": 307.994 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GroupDiagram" + }, + "position": { + "height": 334, + "width": 343, + "x": 1 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageMaintenance1" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "LineHor15" + }, + "position": { + "height": 1, + "width": 25, + "x": 169.5, + "y": 262.51 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer6" + }, + "position": { + "height": 70, + "width": -1, + "x": 206.01, + "y": 215.51 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor16" + }, + "position": { + "height": 1, + "width": 38, + "x": 169.01, + "y": 215.51 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor2" + }, + "position": { + "height": -6, + "width": 35.999999999999986, + "x": 262.01, + "y": 72.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer0" + }, + "position": { + "height": 262, + "width": 1, + "x": 295.01, + "y": 21.5 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer1" + }, + "position": { + "height": 30, + "width": 0, + "x": 262.01, + "y": 58 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor3" + }, + "position": { + "height": 1, + "width": 36, + "x": 226.01, + "y": 57.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor4" + }, + "position": { + "height": 1, + "width": 36, + "x": 226.01, + "y": 87.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_0" + }, + "position": { + "height": 17, + "width": 16, + "x": 299, + "y": 12.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "(tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Maint\") || (!tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") \u0026\u0026 !tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\"))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcMaint.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_10" + }, + "position": { + "height": 21, + "width": 33, + "x": 278, + "y": 62.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_HiLoLimiter.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_12" + }, + "position": { + "height": 18, + "width": 16, + "x": 6, + "y": 207.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "!(tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Maint\") || (!tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") \u0026\u0026 !tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\"))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOper.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_13" + }, + "position": { + "height": 17, + "width": 16, + "x": 6, + "y": 231.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcExt.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_14" + }, + "position": { + "height": 18, + "width": 16, + "x": 6, + "y": 255.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcProgram.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_15" + }, + "position": { + "height": 18, + "width": 16, + "x": 6, + "y": 278.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOvrd.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor17" + }, + "position": { + "height": 1, + "width": 37, + "x": 169.5, + "y": 285.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor18" + }, + "position": { + "height": 0, + "width": 25, + "x": 169.5, + "y": 238.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor19" + }, + "position": { + "height": 1, + "rotate": { + "angle": "45deg" + }, + "width": 15, + "x": 192.5, + "y": 243.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor20" + }, + "position": { + "height": 1, + "rotate": { + "angle": "-45deg" + }, + "width": 15, + "x": 192.5, + "y": 257.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor27" + }, + "position": { + "height": 1, + "width": 39, + "x": 219.498, + "y": 158.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor28" + }, + "position": { + "height": -1, + "width": 85, + "x": 219.5, + "y": 135.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor30" + }, + "position": { + "height": 1, + "width": 39, + "x": 219.5, + "y": 111.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer3" + }, + "position": { + "height": 47.999999999999986, + "width": 0, + "x": 257.52, + "y": 111.51 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_7" + }, + "position": { + "height": 26, + "width": 27, + "x": 243.498, + "y": 122.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_9" + }, + "position": { + "height": 26, + "width": 27, + "x": 281, + "y": 122.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor9" + }, + "position": { + "height": 0, + "width": 83, + "x": 218.51, + "y": 251.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_6" + }, + "position": { + "height": 27, + "width": 27, + "x": 193.01, + "y": 237.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_19" + }, + "position": { + "height": 21, + "width": 21, + "x": 234.50679206848145, + "y": 240.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_HighLimiter.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_11" + }, + "position": { + "height": 21, + "width": 33, + "x": 278.50679206848145, + "y": 240.50135803222656 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_RateLimiter.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "LinesAndImages" + }, + "position": { + "height": 329, + "width": 341, + "x": 1, + "y": 2.5 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SPSet" + }, + "position": { + "height": 15, + "width": 180, + "x": 77.49, + "y": 7.5 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "text": "SP before ramping and clamping" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_SPSet" + }, + "meta": { + "name": "ndd_Val_SPSet" + }, + "position": { + "height": 20, + "width": 70, + "x": 258.5, + "y": 5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "SPLimits" + }, + "position": { + "height": 16, + "width": 89, + "x": 165.5, + "y": 34 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "SP Limits" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 55, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_1" + }, + "position": { + "height": 61, + "width": 89, + "x": 173, + "y": 45 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_SPLim\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "nde_Cfg_MaxSP" + }, + "position": { + "height": 20, + "width": 70, + "x": 175, + "y": 52 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVEUMax\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MinSP\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxSP\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_RatioLoLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 175, + "y": 78 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxSP\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVEUMin\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MinSP\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "PV" + }, + "position": { + "height": 15, + "width": 89, + "x": 56.5, + "y": 107.5 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "text": "PV" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_PV" + }, + "meta": { + "name": "ndd_Val_PV" + }, + "position": { + "height": 20, + "width": 70, + "x": 151, + "y": 105 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "IntlkSP" + }, + "position": { + "height": 15, + "width": 89, + "x": 56.5, + "y": 130.00669860839844 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "text": "Interlock SP" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "nde_Cfg_IntlkSP" + }, + "position": { + "height": 20, + "width": 70, + "x": 151, + "y": 128.00669860839844 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVEUMax\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVEUMin\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_IntlkSP\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "LastGoodSP" + }, + "position": { + "height": 15, + "width": 89, + "x": 56.49553680419922, + "y": 155 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "text": "Last Good SP" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_SP" + }, + "meta": { + "name": "ndd_Val_PV_0" + }, + "position": { + "height": 20, + "width": 70, + "x": 151.49553680419922, + "y": 152 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "RateOfIncrease" + }, + "position": { + "height": 15, + "width": 70, + "x": 101, + "y": 186.007 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "Rate of Increase" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "RateOfDecrease" + }, + "position": { + "height": 15, + "width": 70, + "x": 25, + "y": 186.01 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "Rate of Decrease" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Inp_OvrdSPRoCLimDec" + }, + "meta": { + "name": "Inp_OvrdSPRoCLimInc" + }, + "position": { + "height": 20, + "width": 70, + "x": 25.009, + "y": 279 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "PSet_SPRoCLimDec" + }, + "meta": { + "name": "PSet_SPRoCLimDec" + }, + "position": { + "height": 20, + "width": 70, + "x": 25.009, + "y": 255 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "XSet_SPRoCLimDec" + }, + "meta": { + "name": "XSet_SPRoCLimDec" + }, + "position": { + "height": 20, + "width": 70, + "x": 25, + "y": 231 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "nde_OSet_SPRoCLimDec" + }, + "position": { + "height": 20, + "width": 70, + "x": 25, + "y": 208 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\")" + }, + "type": "expr" + } + }, + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_SPRoCLimDec\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxSPRoCDec\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_SPRoCLimDec\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "10pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "custom": { + "parameter": "Inp_OvrdSPRoCLimInc" + }, + "meta": { + "name": "Inp_OvrdSPRoCLimDec" + }, + "position": { + "height": 20, + "width": 70, + "x": 101, + "y": 278.997 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "PSet_SPRoCLimInc" + }, + "meta": { + "name": "PSet_SPRoCLimInc" + }, + "position": { + "height": 20, + "width": 70, + "x": 101, + "y": 254.997 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "XSet_SPRoCLimInc" + }, + "meta": { + "name": "XSet_SPRoCLimInc" + }, + "position": { + "height": 20, + "width": 70, + "x": 101, + "y": 230.997 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "nde_OSet_SPRoCLimInc" + }, + "position": { + "height": 20, + "width": 70, + "x": 101, + "y": 207.997 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\")" + }, + "type": "expr" + } + }, + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_SPRoCLimInc\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxSPRoCInc\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_SPRoCLimInc\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "10pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_Cfg_MaxSPRoCDec" + }, + "position": { + "height": 20, + "width": 70, + "x": 25, + "y": 302.991 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxSPRoCDec\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "10pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_Cfg_MaxSPRoCInc" + }, + "position": { + "height": 20, + "width": 70, + "x": 101, + "y": 302.991 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxSPRoCInc\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "10pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "GO_PID_SP" + }, + "position": { + "height": 48, + "width": 88, + "x": 249.5, + "y": 284.007 + }, + "props": { + "params": { + "tagPath": "[default]Test_Tags/Flow_PID" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_SP" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "GroupDiagram" + }, + "position": { + "height": 334, + "width": 343, + "x": 1 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageMaintenance2" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "LineVer0" + }, + "position": { + "height": 160, + "width": 1, + "x": 297.01, + "y": 41.5 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer1" + }, + "position": { + "height": 34, + "width": 1, + "x": 170.01, + "y": 41 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor3" + }, + "position": { + "height": -2, + "width": 173, + "x": 85.01, + "y": 31.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_0" + }, + "position": { + "height": 17, + "width": 16, + "x": 299, + "y": 12.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "(tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Maint\") || (!tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") \u0026\u0026 !tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\"))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcMaint.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_12" + }, + "position": { + "height": 18, + "width": 16, + "x": 6, + "y": 207.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "!(tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Maint\") || (!tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") \u0026\u0026 !tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\"))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOper.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_13" + }, + "position": { + "height": 17, + "width": 16, + "x": 6, + "y": 231.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcExt.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_14" + }, + "position": { + "height": 18, + "width": 16, + "x": 6, + "y": 255.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcProgram.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_15" + }, + "position": { + "height": 18, + "width": 16, + "x": 6, + "y": 278.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOvrd.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor28" + }, + "position": { + "height": 1, + "width": 22, + "x": 201.5, + "y": 154.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor30" + }, + "position": { + "height": 0, + "width": 79, + "x": 201.5, + "y": 128.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer3" + }, + "position": { + "height": 25, + "width": 0, + "x": 222.52, + "y": 129.51 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_16" + }, + "position": { + "height": 21, + "width": 21, + "x": 160, + "y": 21.5067 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Difference.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor31" + }, + "position": { + "height": 2.000000000000014, + "width": 66, + "x": 65.5, + "y": 128.49 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer4" + }, + "position": { + "height": 25, + "width": 1, + "x": 109.496, + "y": 128.493 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor29" + }, + "position": { + "height": 1, + "width": 22, + "x": 110.496, + "y": 153.493 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_20" + }, + "position": { + "height": 21, + "width": 33, + "x": 280.5223217010498, + "y": 119.50669860839844 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Function.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineVer2" + }, + "position": { + "height": 159, + "width": -1, + "x": 51.52, + "y": 41.51 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_17" + }, + "position": { + "height": 21, + "width": 33, + "x": 32.5223, + "y": 119.494 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Function.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor4" + }, + "position": { + "height": -4, + "width": 246, + "x": 51.52, + "y": 200.51 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_21" + }, + "position": { + "height": 21, + "width": 21, + "x": 160.5, + "y": 190.507 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Difference.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor5" + }, + "position": { + "height": 0, + "width": 114.00000000000001, + "x": 114.52, + "y": 305.51 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_18" + }, + "position": { + "height": 21, + "width": 21, + "x": 160.5, + "y": 294.507 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Sum.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineVer5" + }, + "position": { + "height": 83, + "width": 1, + "x": 170.52, + "y": 211.51 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor6" + }, + "position": { + "height": 1, + "rotate": { + "angle": "-20deg" + }, + "width": 60, + "x": 182.522, + "y": 249.507 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "dashed", + "borderTopWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_19" + }, + "position": { + "height": 21, + "width": 33, + "x": 154.522, + "y": 259.507 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Function.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "LinesAndImages" + }, + "position": { + "height": 329, + "width": 341, + "x": 1, + "y": 2.5 + }, + "type": "ia.container.coord" + }, + { + "custom": { + "parameter": "Val_SP" + }, + "meta": { + "name": "ndd_Val_SPSet" + }, + "position": { + "height": 20, + "width": 70, + "x": 258.5, + "y": 25 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "PV" + }, + "position": { + "height": 15, + "width": 89, + "x": 6.5, + "y": 7.5 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "PV" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_PV" + }, + "meta": { + "name": "ndd_Val_PV" + }, + "position": { + "height": 20, + "width": 70, + "x": 16, + "y": 25 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "PVComm" + }, + "position": { + "height": 17, + "width": 17, + "x": 88, + "y": 27 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_PVBad\") || tag({view.params.tagPath} + \"/Sts_PVUncertain\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_CommBad\",\n\t2: \"Sts_CommUncertain\"\n\t}\n\t\n\tSts_PVBad \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_PVBad\"])[0].value\n\tSts_PVUncertain \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_PVUncertain\"])[0].value\n\t\n\tif (Sts_PVBad):\n\t\tindex \u003d 1;\n\telif (Sts_PVUncertain and not(Sts_PVBad)):\n\t\tindex \u003d 2;\n\t\t\n\tif (index \u003e 0):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_PVBad\") || tag({view.params.tagPath} + \"/Sts_PVUncertain\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"\",\n\t1: \"Sts_CommBad\",\n\t2: \"Sts_CommUncertain\"\n\t}\n\t\n\tSts_PVBad \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_PVBad\"])[0].value\n\tSts_PVUncertain \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_PVUncertain\"])[0].value\n\t\n\tif (Sts_PVBad):\n\t\tindex \u003d 1;\n\telif (Sts_PVUncertain and not(Sts_PVBad)):\n\t\tindex \u003d 2;\n\t\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "SP" + }, + "position": { + "height": 15, + "width": 64, + "x": 185, + "y": 19.9972 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "SP" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "SPSet" + }, + "position": { + "height": 15, + "width": 73, + "x": 257, + "y": 7.5 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "SP" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Error" + }, + "position": { + "height": 15.000000000000007, + "width": 40.000000000000014, + "x": 94.52, + "y": 57.01 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "text": "Error" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_E" + }, + "meta": { + "name": "ndd_Val_E" + }, + "position": { + "height": 20, + "width": 70, + "x": 137, + "y": 55.0067 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Error_0" + }, + "position": { + "height": 15, + "width": 40, + "x": 209.515625, + "y": 57.00669860839844 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Deadband" + }, + "position": { + "height": 16, + "width": 60.000000000000014, + "x": 74.51999999999998, + "y": 79 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "text": "Deadband" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 25, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_2" + }, + "position": { + "height": 30, + "width": 89, + "x": 135.49, + "y": 72 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_ZCDB\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "nde_Cfg_ZCDB" + }, + "position": { + "height": 20, + "width": 70, + "x": 137, + "y": 76.9955 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_ZCDB\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 2147483, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "PVEUMinMax" + }, + "position": { + "height": 16, + "width": 89, + "x": 123.8, + "y": 104 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "PV EU Min/Max" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 55, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_1" + }, + "position": { + "height": 61, + "width": 89, + "x": 131.3, + "y": 115 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_PVEU\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "nde_Cfg_PVEUMax" + }, + "position": { + "height": 20, + "width": 70, + "x": 133.3, + "y": 122 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2,32)//tag({view.params.tagPath} + \"/Cfg_PVEUMax\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVEUMin\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_PVEUMax\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_RatioLoLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 133.3, + "y": 148 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVEUMax\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2,32)//tag({view.params.tagPath} + \"/Cfg_PVEUMin\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_PVEUMin\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "custom": { + "parameter": "Val_PVPercent" + }, + "meta": { + "name": "ndd_Val_PVPercent" + }, + "position": { + "height": 20, + "width": 70, + "x": 16, + "y": 169.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d 2#system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_SPPercent" + }, + "meta": { + "name": "ndd_Val_PVPercent_0" + }, + "position": { + "height": 20, + "width": 70, + "x": 258.5, + "y": 169.00669860839844 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d 2#system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_EPercent" + }, + "meta": { + "name": "ndd_Val_EPercent" + }, + "position": { + "height": 20, + "width": 70, + "x": 137, + "y": 224.007 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d 2#system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "nde_Cfg_IGain" + }, + "position": { + "height": 20, + "width": 66, + "x": 267, + "y": 233 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigTuning} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "4//tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_IGain\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_Cfg_DGain" + }, + "position": { + "height": 20, + "width": 66, + "x": 267, + "y": 256 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigTuning} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "4//tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_DGain\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_Cfg_PGain" + }, + "position": { + "height": 20, + "width": 66, + "x": 267, + "y": 210 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigTuning} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "4//tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_PGain\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 70, + "width": 24, + "x": 240, + "y": 208 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_PID.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "FeedForward" + }, + "position": { + "height": 15, + "width": 89, + "x": 36.4955, + "y": 284.5 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "Feed Forward" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Inp_FF" + }, + "meta": { + "name": "ndd_Inp_FF" + }, + "position": { + "height": 20, + "width": 70, + "x": 46.4955, + "y": 301.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CalculatedCV" + }, + "position": { + "height": 15, + "width": 89, + "x": 219, + "y": 284.498 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "Calculated CV" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_CVSet" + }, + "meta": { + "name": "ndd_Inp_FF_0" + }, + "position": { + "height": 20, + "width": 70, + "x": 228.5, + "y": 301.498 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "FFBad" + }, + "position": { + "height": 17, + "width": 17, + "x": 116.515625, + "y": 302.00669860839844 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_FFBad\") || tag({view.params.tagPath} + \"/Sts_FFPrevBad\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CommBad.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "PV_0" + }, + "position": { + "height": 15, + "width": 89, + "x": 45.51999999999999, + "y": 226 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "right" + }, + "text": "Error" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Error_1" + }, + "position": { + "height": 15, + "width": 28, + "x": 208.509614944458, + "y": 227 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "%" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Image_0" + }, + "position": { + "height": 18, + "width": 16, + "x": 211, + "y": 78 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_ZCDBOn\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Good.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupDiagram" + }, + "position": { + "height": 334, + "width": 343, + "x": 1 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageMaintenance3" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 2)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "LineHor2" + }, + "position": { + "height": -6, + "width": 35.999999999999986, + "x": 156.01, + "y": 206.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer1" + }, + "position": { + "height": 30, + "width": 0, + "x": 156.01, + "y": 192 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor3" + }, + "position": { + "height": 1, + "width": 36, + "x": 120.01, + "y": 191.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor4" + }, + "position": { + "height": 1, + "width": 36, + "x": 120.01, + "y": 221.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer2" + }, + "position": { + "height": 233, + "width": 0, + "x": 189.01, + "y": 49.5 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor5" + }, + "position": { + "height": 1, + "width": 19, + "x": 170.01, + "y": 49.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_0" + }, + "position": { + "height": 17, + "width": 16, + "x": 32, + "y": 7.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "(tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Maint\") || (!tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") \u0026\u0026 !tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\"))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcMaint.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_10" + }, + "position": { + "height": 21, + "width": 33, + "x": 173.01, + "y": 197.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_HiLoLimiter.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_12" + }, + "position": { + "height": 18, + "width": 16, + "x": 32, + "y": 7.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "!(tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") \u0026\u0026 (tag({view.params.tagPath} + \"/Sts_Maint\") || (!tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") \u0026\u0026 !tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\"))))" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOper.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_13" + }, + "position": { + "height": 17, + "width": 16, + "x": 31.0057, + "y": 31.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcExt.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_14" + }, + "position": { + "height": 18, + "width": 16, + "x": 31.0057, + "y": 55.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcProgram.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_15" + }, + "position": { + "height": 18, + "width": 16, + "x": 31.0057, + "y": 78.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CmdSrcOvrd.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor21" + }, + "position": { + "height": 1, + "width": 47, + "x": 119.5, + "y": 84.5078 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor22" + }, + "position": { + "height": 1, + "width": 36, + "x": 119.5, + "y": 61.5078 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor23" + }, + "position": { + "height": 1, + "rotate": { + "angle": "-45deg" + }, + "width": 15, + "x": 152.5, + "y": 56.5078 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor24" + }, + "position": { + "height": 1, + "width": 36, + "x": 119.5, + "y": 37.5078 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor25" + }, + "position": { + "height": 1, + "rotate": { + "angle": "45deg" + }, + "width": 15, + "x": 152.5, + "y": 42.5078 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer9" + }, + "position": { + "height": 70, + "width": 1, + "x": 165.5, + "y": 15.5078 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor26" + }, + "position": { + "height": 1, + "width": 47, + "x": 119.5, + "y": 14.5078 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_16" + }, + "position": { + "height": 27, + "width": 27, + "x": 152.5, + "y": 36.5078 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_11" + }, + "position": { + "height": 21, + "width": 33, + "x": 172.51201820373535, + "y": 234.50240325927734 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_RateLimiter.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_19" + }, + "position": { + "height": 28, + "width": 27, + "x": 174.512, + "y": 130.502 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor27" + }, + "position": { + "height": 1, + "width": 57.999999999999986, + "x": 119.51, + "y": 144.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor6" + }, + "position": { + "height": 2, + "width": 53.999999999999986, + "x": 119.51, + "y": 244.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor28" + }, + "position": { + "height": 1, + "width": 47, + "x": 189.512, + "y": 281.502 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_20" + }, + "position": { + "height": 21, + "width": 40, + "x": 233.51, + "y": 270.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_ContinueA.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_17" + }, + "position": { + "height": 18, + "width": 15, + "x": 179.51201820373535, + "y": 27.502403259277344 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Oper\") ||\r\ntag({view.params.tagPath} + \"/Sts_Ext\") ||\r\ntag({view.params.tagPath} + \"/Sts_Prog\") ||\r\ntag({view.params.tagPath} + \"/Sts_Ovrd\") ||\r\ntag({view.params.tagPath} + \"/Sts_Maint\") ||\r\ntag({view.params.tagPath} + \"/Cfg_ExtKeep\") ||\r\ntag({view.params.tagPath} + \"/Cfg_ProgKeep\") ||\r\ntag({view.params.tagPath} + \"/Cfg_OperKeep\")\r\n" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d -1\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_CmdSrcOper\",\n\t1: \"Sts_CmdSrcProgram\",\n\t2: \"Sts_CmdSrcOvrd\",\n\t3: \"Sts_CmdSrcMaint\",\n\t4: \"Sts_CmdSrcExt\",\n\t}\n\t\n\tSts_Oper \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Oper\"])[0].value\n\tSts_Ext \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Ext\"])[0].value\n\tSts_Prog \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Prog\"])[0].value\n\tSts_Ovrd \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Ovrd\"])[0].value\n\tSts_Maint \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Maint\"])[0].value\n\tCfg_ExtKeep1 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_ExtKeep\"])[0].value \u0026 2**1) \u003d\u003d 2**1\n\tCfg_ProgKeep1 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_ProgKeep\"])[0].value \u0026 2**1) \u003d\u003d 2**1\n\tCfg_OperKeep1 \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_OperKeep\"])[0].value \u0026 2**1) \u003d\u003d 2**1\n\t\n\tif (Sts_Ovrd): \n\t\tindex \u003d 2\n\telif (Sts_Maint):\n\t\tindex \u003d 3\n\telif (Cfg_ExtKeep1 and (Sts_Prog or Sts_Oper)) or (Sts_Ext and not(Cfg_ProgKeep1) and not(Cfg_OperKeep1)):\n\t\tindex \u003d 4\n\telif (Cfg_ProgKeep1 and (Sts_Oper or Sts_Ext)) or (Sts_Prog and not(Cfg_ExtKeep1) and not(Cfg_OperKeep1)):\n\t\tindex \u003d 1\n\telse: \n\t\tindex \u003d 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_18" + }, + "position": { + "height": 18, + "width": 15, + "x": 198.51201820373535, + "y": 117.50240325927734 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Casc\") ||\r\ntag({view.params.tagPath} + \"/Sts_Man\")\r\n" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d -1\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_ModeMan\",\n\t1: \"Sts_ModeAuto\",\n\t2: \"Sts_ModeCas\"\n\t}\n\t\n\tSts_Casc \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Casc\"])[0].value\n\tSts_Man \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Man\"])[0].value\n\t\n\tif (Sts_Casc): \n\t\tindex \u003d 2\n\telif (Sts_Man):\n\t\tindex \u003d 0\n\telse: \n\t\tindex \u003d 1\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "LinesAndImages" + }, + "position": { + "height": 329, + "width": 341, + "x": 1, + "y": 2.5 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "RatioClamped" + }, + "position": { + "height": 17, + "width": 17, + "x": 158, + "y": 148 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_RatioClamped\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Clamped.png" + }, + "type": "ia.display.image" + }, + { + "custom": { + "parameter": "Inp_OvrdCV" + }, + "meta": { + "name": "Inp_OvrdCV" + }, + "position": { + "height": 20, + "width": 70, + "x": 51, + "y": 78.9972 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "PSet_CV" + }, + "meta": { + "name": "PSet_CV" + }, + "position": { + "height": 20, + "width": 70, + "x": 51, + "y": 54.9972 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\") \u0026\u0026 !(tag({view.params.tagPath} + \"/Cfg_ExtKeep\")) \u0026\u0026 !(tag({view.params.tagPath} + \"/Cfg_OperKeep\"))" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "XSet_CV" + }, + "meta": { + "name": "XSet_SP" + }, + "position": { + "height": 20, + "width": 70, + "x": 51, + "y": 30.9972 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\") \u0026\u0026 !(tag({view.params.tagPath} + \"/Cfg_ProgKeep\")) \u0026\u0026 !(tag({view.params.tagPath} + \"/Cfg_OperKeep\"))" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_OSet_SP" + }, + "position": { + "height": 20, + "width": 70, + "x": 51, + "y": 7.99716 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") ||\r\n((tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\")) \u0026\u0026 !(tag({view.params.tagPath} + \"/Cfg_ProgKeep\")) \u0026\u0026 !(tag({view.params.tagPath} + \"/Cfg_ExtKeep\")))\r\n" + }, + "type": "expr" + } + }, + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_CV\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_LimitManCV\"), tag({view.params.tagPath} + \"/Cfg_MaxCV\"), tag({view.params.tagPath} + \"/Cfg_CVEUMax\"))" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_LimitManCV\"), tag({view.params.tagPath} + \"/Cfg_MinCV\"), tag({view.params.tagPath} + \"/Cfg_CVEUMin\"))" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_CV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "10pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "CV" + }, + "position": { + "height": 15, + "width": 64, + "x": 148, + "y": 9.99716 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "CV" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Calculated CV" + }, + "position": { + "height": 16, + "width": 89, + "x": 40.5085, + "y": 117.006 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "SP Cascade" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_CVSet" + }, + "meta": { + "name": "ndd_Val_CVSet" + }, + "position": { + "height": 20, + "width": 70, + "x": 50, + "y": 137 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CV Limits" + }, + "position": { + "height": 16, + "width": 89, + "x": 41.5, + "y": 168 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "CV Limits" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 55, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_1" + }, + "position": { + "height": 61, + "width": 89, + "x": 49, + "y": 179 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_CVLim\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "nde_Cfg_MaxCV" + }, + "position": { + "height": 20, + "width": 70, + "x": 51, + "y": 186 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVEUMax\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MinCV\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxCV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_Cfg_MinCV" + }, + "position": { + "height": 20, + "width": 70, + "x": 51, + "y": 212 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxCV\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVEUMin\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MinCV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "CV Limits_0" + }, + "position": { + "height": 16, + "width": 89, + "x": 41.50961494445801, + "y": 257.00240325927734 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#919191", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "nde_Cfg_CVRoCLim" + }, + "position": { + "height": 20, + "width": 70, + "x": 50.5096, + "y": 238.002 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2,32)//tag({view.params.tagPath} + \"/Cfg_MaxCV\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "0//tag({view.params.tagPath} + \"/Val_CVEUMin\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVRoCLim\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GroupDiagram" + }, + "position": { + "height": 334, + "width": 343, + "x": 1 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageMaintenance4" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 3)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "LineHor2" + }, + "position": { + "height": 1, + "width": 126, + "x": 106.01, + "y": 254.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer1" + }, + "position": { + "height": 30, + "width": 0, + "x": 105.01, + "y": 241 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor3" + }, + "position": { + "height": 1, + "width": 10, + "x": 96.01, + "y": 240.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor4" + }, + "position": { + "height": 1, + "width": 10, + "x": 96.01, + "y": 270.5 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer2" + }, + "position": { + "height": 184, + "width": 1, + "x": 171, + "y": 14.5 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor26" + }, + "position": { + "height": 1, + "width": 47, + "x": 124.5, + "y": 14.5078 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_19" + }, + "position": { + "height": 28, + "width": 27, + "x": 157.512, + "y": 100.502 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor27" + }, + "position": { + "height": 2, + "width": 63.999999999999986, + "x": 95.51, + "y": 113.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_20" + }, + "position": { + "height": 21, + "width": 40, + "x": 108.51, + "y": 3.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_ContinueA.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor29" + }, + "position": { + "height": 1, + "width": 130, + "x": 95.5184, + "y": 53.5074 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor30" + }, + "position": { + "height": 2, + "width": 65, + "x": 95.5184, + "y": 169.507 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_12" + }, + "position": { + "height": 21, + "width": 33, + "x": 113.518, + "y": 159.507 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Function.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_21" + }, + "position": { + "height": 21, + "width": 21, + "x": 160.518, + "y": 159.507 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_ProgramTransfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineVer3" + }, + "position": { + "height": 56, + "width": 1, + "x": 171, + "y": 242.51 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer4" + }, + "position": { + "height": 31, + "width": 1, + "x": 231.002, + "y": 240.496 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor5" + }, + "position": { + "height": 1, + "width": 10, + "x": 231.002, + "y": 270.496 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor6" + }, + "position": { + "height": 1, + "width": 10, + "x": 231.002, + "y": 240.496 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer5" + }, + "position": { + "height": 75, + "width": 1, + "x": 131.518, + "y": 180.507 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineVer6" + }, + "position": { + "height": 150, + "width": 1, + "x": 224.518, + "y": 54.5074 + }, + "props": { + "style": { + "borderBottomStyle": "none", + "borderLeftColor": "#6A6A6A", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px", + "borderRightStyle": "none", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image_16" + }, + "position": { + "height": 27, + "width": 27, + "x": 157, + "y": 39.508 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProg\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasProgLocked\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/SAMA_Transfer.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "LineHor28" + }, + "position": { + "height": 2, + "width": 19, + "x": 205.52, + "y": 203.51 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasExt\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "LinesAndImages" + }, + "position": { + "height": 329, + "width": 341, + "x": 1, + "y": 2.5 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "HandFdbkBad" + }, + "position": { + "height": 17, + "width": 17, + "x": 123, + "y": 108 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_HandFdbkBad\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CommBad.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "InterlockCV" + }, + "position": { + "height": 16, + "width": 89, + "x": 17.5, + "y": 30.0074 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "Interlock CV" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "nde_Cfg_IntlkCV" + }, + "position": { + "height": 20, + "width": 70, + "x": 27, + "y": 47.9972 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasMaint\") ||\r\n((tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOper\") || tag({view.params.tagPath} + \"/CmdSrc/Cfg_HasOperLocked\")) \u0026\u0026 !(tag({view.params.tagPath} + \"/Cfg_ProgKeep\")) \u0026\u0026 !(tag({view.params.tagPath} + \"/Cfg_ExtKeep\")))\r\n" + }, + "type": "expr" + } + }, + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVEUMax\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVEUMin\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_IntlkCV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "10pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "HandFeedback" + }, + "position": { + "height": 16, + "width": 89, + "x": 17.5, + "y": 89.006 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "Hand Feedback" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Inp_HandFdbk" + }, + "meta": { + "name": "ndd_Inp_HandFdbk" + }, + "position": { + "height": 20, + "width": 70, + "x": 27, + "y": 107 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CVInitValue" + }, + "position": { + "height": 16, + "width": 89, + "x": 17.5, + "y": 144.998 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "CV Init Value" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Inp_CVInitVal" + }, + "meta": { + "name": "ndd_Inp_CVInitVal" + }, + "position": { + "height": 20, + "width": 70, + "x": 27, + "y": 162.998 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_PID_CV" + }, + "position": { + "height": 48, + "width": 88, + "x": 127.5, + "y": 202.007 + }, + "props": { + "params": { + "tagPath": "[default]Test_Tags/Flow_PID" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Analog Objects/GO_PID_CV" + }, + "type": "ia.display.view" + }, + { + "custom": { + "parameter": "Out_CV" + }, + "meta": { + "name": "ndd_Out_CV" + }, + "position": { + "height": 20, + "width": 70, + "x": 136.5, + "y": 300.007 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVDecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CVRawMinMax" + }, + "position": { + "height": 16, + "width": 89, + "x": 17.5, + "y": 217 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "CV Raw Min/Max" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 55, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_1" + }, + "position": { + "height": 61, + "width": 89, + "x": 25, + "y": 228 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_CVRaw\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "nde_Cfg_CVRawMax" + }, + "position": { + "height": 20, + "width": 70, + "x": 27, + "y": 235 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVRawMax\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_Cfg_CVRawMin" + }, + "position": { + "height": 20, + "width": 70, + "x": 27, + "y": 261 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVRawMin\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "CVEUMinMax" + }, + "position": { + "height": 16, + "width": 89, + "x": 231.5, + "y": 216.994 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "center" + }, + "text": "CV EU Min/Max" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 55, + "width": 73, + "x": 1, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 71, + "y": 1.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_2" + }, + "position": { + "height": 61, + "width": 89, + "x": 238.5, + "y": 227.994 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_CVEU\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "nde_Cfg_CVEUMax" + }, + "position": { + "height": 20, + "width": 70, + "x": 240.5, + "y": 234.994 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVEUMax\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_Cfg_CVEUMin" + }, + "position": { + "height": 20, + "width": 70, + "x": 240.5, + "y": 260.994 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "-pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVEUMin\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "CVEUMinMax_0" + }, + "position": { + "height": 16, + "width": 22, + "x": 142.51, + "y": 184.01 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "CV" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CVFrame" + }, + "position": { + "height": 45, + "width": 68, + "x": 139, + "y": 200.01 + }, + "props": { + "style": { + "borderColor": "#91919141", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupDiagram" + }, + "position": { + "height": 334, + "width": 343, + "x": 1 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageMaintenance5" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 4)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 231, + "x": 11, + "y": 8 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "When scaled CV Out is greater than this\nvalue, the device is \"Active\"" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVEUMax\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVEUMin\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxInactiveCV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "nde_Cfg_MaxInactiveCV" + }, + "position": { + "height": 32, + "width": 340 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageMaintenance6" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 5)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected - 1\n\t\n\tif (newTab \u003e\u003d 0):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "PrevButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 53.5 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Prev.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 0 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page1Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 81.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 1 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page2Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 108.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 2 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page3Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 135.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 3 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page4Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 161.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 4 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page5Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 187.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 5 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page6Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 214.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected + 1\n\t\n\tif (newTab \u003c\u003d maxNumberOfTabs):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "NextButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 237.5 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Next.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + } + ], + "custom": { + "maintenanceTabSelected": 0, + "maxNumberOfTabs": 5 + }, + "meta": { + "name": "PageButtons" + }, + "position": { + "height": 36, + "width": 321, + "x": 14, + "y": 393 + }, + "propConfig": { + "custom.pageTabSelected": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "pageTabSelected": 0 + }, + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 1)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 79, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 270, + "x": 11, + "y": 1 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Execution interval for PID algorithm (sec)" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Configured" + }, + "position": { + "height": 16, + "width": 84, + "x": 20.5, + "y": 26.01 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Configured" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 105, + "y": 24 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "2" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_ExecT\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967296, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Actual" + }, + "position": { + "height": 16, + "width": 59, + "x": 208.5, + "y": 26.01 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Actual" + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameter": "Val_ActExecT" + }, + "meta": { + "name": "ProgCV" + }, + "position": { + "height": 20, + "width": 70, + "x": 265.009, + "y": 24 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/\" + {this.custom.parameter})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tDecPlcs \u003d 2#system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (DecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * DecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/\" + {this.custom.parameter}), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderColor": "#C0C0C0", + "borderStyle": "solid", + "borderWidth": "1px", + "color": "#475CA7", + "fontSize": "10pt", + "paddingRight": "3px", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GroupExecTime" + }, + "position": { + "height": 49, + "width": 340 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "GO_Cfg_SetTrack" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 49.007 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrack" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_SetTrackOvrdHand" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 84.007 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SetTrackOvrdHand", + "style": { + "overflow": "visible" + } + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_OvrdIntlk" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 125.007 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OvrdIntlk", + "style": { + "overflow": "visible" + } + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Cfg_ProgNormal" + }, + "position": { + "height": 73, + "width": 340, + "x": 2, + "y": 187 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 316, + "x": 12 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Proportional Action on SP Change:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_PropSPAct\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "None (PV only)" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PropSPAct\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_PropSPAct_1" + }, + "position": { + "height": 35, + "width": 161, + "x": 5, + "y": 15 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_PropSPAct\"), false, true)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Full (Loop Error)" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PropSPAct\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_PropSPAct_0" + }, + "position": { + "height": 35.00000000000001, + "width": 161, + "x": 5, + "y": 47 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_PropSPAct" + }, + "position": { + "height": 83, + "width": 340, + "x": 2.5, + "y": 165.01 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 316, + "x": 12 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Derivative Action on SP Change:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_DerivSPAct\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "None (PV only)" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_DerivSPAct\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_DerivSPAct_1" + }, + "position": { + "height": 35, + "width": 161, + "x": 5, + "y": 15 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 0 + }, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_DerivSPAct\"), false, true)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 126, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Full (Loop Error)" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_DerivSPAct\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 155, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_DerivSPAct_0" + }, + "position": { + "height": 35.00000000000001, + "width": 161, + "x": 5, + "y": 47 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_DerivSPAct" + }, + "position": { + "height": 83, + "width": 340, + "x": 1.50368, + "y": 251.007 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageEngineering1" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasAuto\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Allow Auto Loop Mode" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasAuto\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasAuto\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasAuto" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": -1 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasMan\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Allow Manual Loop Mode" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasMan\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasMan\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasMan" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 33 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasCasc\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Allow Cascade Loop Mode" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasCasc\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasCasc\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasCasc" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 67 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasRatio\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Apply Ratio multiplier in Cascade Loop Mode" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasRatio\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasRatio\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasRatio" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 101 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasCasc\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "x": 2.5, + "y": 137 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 316, + "x": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Normal Loop Mode:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_NormLM\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 180, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Disable Normal Selection" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_NormLM\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 200, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_NormLM_0" + }, + "position": { + "height": 35, + "width": 210, + "x": 25, + "y": 15 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_NormLM\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 180, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Manual" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_NormLM\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 200, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_NormLM_1" + }, + "position": { + "height": 35, + "width": 210, + "x": 25, + "y": 50 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_NormLM\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 180, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Auto" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_NormLM\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 200, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_NormLM_2" + }, + "position": { + "height": 35, + "width": 210, + "x": 25, + "y": 85 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_NormLM\") \u003d 3" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 180, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Cascade" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_NormLM\", 3)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 200, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_NormLM_3" + }, + "position": { + "height": 35, + "width": 210, + "x": 25, + "y": 120 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_NormLM" + }, + "position": { + "height": 156, + "width": 340, + "x": 2.5, + "y": 140.01 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_LockLM\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Operator cannot exit \u0027Normal\u0027 Loop Mode" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_LockLM\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_LockLM\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_LockLM" + }, + "position": { + "height": 33, + "width": 340, + "x": 1.5036773681640625, + "y": 299.0073547363281 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "!(tag({view.params.tagPath} + \"/Cfg_NormLM\") \u003d 0)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageEngineering2" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "x": 2, + "y": 39 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_InitToMan\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Go to Manual Loop Mode when an init request is seen" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_InitToMan\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_InitToMan\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_InitToMan" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 6 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 316, + "x": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Powerup Loop Mode:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PwrupLM\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 270, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "No Change (use last mode)" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PwrupLM\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 290, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_PwrupLM_0" + }, + "position": { + "height": 35, + "width": 300, + "x": 25, + "y": 15 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PwrupLM\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 270, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Manual" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PwrupLM\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 290, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_PwrupLM_1" + }, + "position": { + "height": 35, + "width": 300, + "x": 25, + "y": 50 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PwrupLM\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 270, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Auto" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PwrupLM\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 290, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_PwrupLM_2" + }, + "position": { + "height": 35, + "width": 300, + "x": 25, + "y": 85 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PwrupLM\") \u003d 3" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 270, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Cascade" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PwrupLM\", 3)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 290, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_PwrupLM_3" + }, + "position": { + "height": 35, + "width": 300, + "x": 25, + "y": 120 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PwrupLM\") \u003d 4" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 270, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Use \u0027Normal\u0027 Loop Mode configuration" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PwrupLM\", 4)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 290, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_PwrupLM_4" + }, + "position": { + "height": 35, + "width": 300, + "x": 25, + "y": 155 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_NormLM\") \u003e 0" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_PwrupLM" + }, + "position": { + "height": 193, + "width": 340, + "x": 2.5, + "y": 52.01 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_PwrupCV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 100, + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 231, + "x": 11, + "y": 8 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Loop CV on powerup" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "nde_Cfg_PwrupCV" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 247 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PwrupLM\") !\u003d 0" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxSP\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MinSP\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_PwrupSP\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 231, + "x": 11, + "y": 8 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Loop SP on powerup" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "nde_Cfg_PwrupSP" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 283.007 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "(tag({view.params.tagPath} + \"/Cfg_PwrupLM\") \u003d 1) || (tag({view.params.tagPath} + \"/Cfg_PwrupLM\") \u003d 2)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageEngineering3" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 2)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_PVTrack\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "SP tracks PV in Manual Loop Mode" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVTrack\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PVTrack\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_PVTrack" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 6 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_SkipSPRoCLim\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "overflow": "visible", + "textAlign": "left" + }, + "text": "Skip Setpoint Rate of Change limiting in Interlock Trip, Maintenance or Override" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_SkipSPRoCLim\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SkipSPRoCLim\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_SkipSPRoCLim" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 41 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasSPRamp\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "overflow": "visible", + "textAlign": "left" + }, + "text": "Enable the Setpoint Ramp \u0027Wizard\u0027 function" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasSPRamp\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_HasSPRamp\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_HasSPRamp" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 76 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NumericInput" + }, + "position": { + "height": 20, + "width": 70, + "x": 259, + "y": 7 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MaxSP\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_MinSP\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_SPRampMaxDev\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 241, + "x": 11, + "y": 8 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "If deviation exceeds this value, pause SP ramp (0.0\u003dnever pause))" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "nde_Cfg_SPRampMaxDev" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PwrupLM\") !\u003d 0" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 316, + "x": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Proportional Action on SP Change:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CtrlAction\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 236, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Reverse acting (E \u003d SP - PV)" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CtrlAction\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 262, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_CtrlAction_0" + }, + "position": { + "height": 35, + "width": 267, + "x": 25, + "y": 15 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CtrlAction\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 236, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Direct acting (E \u003d PV - SP)" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CtrlAction\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 262, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_CtrlAction_1" + }, + "position": { + "height": 35, + "width": 266, + "x": 25, + "y": 50 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_CtrlAction" + }, + "position": { + "height": 85, + "width": 340, + "x": 2.5, + "y": 161.01 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 316, + "x": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Proportional Action on SP Change:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Depend\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 236, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Independent" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_Depend\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 262, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_Depend_0" + }, + "position": { + "height": 35, + "width": 267, + "x": 25, + "y": 15 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Depend\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 9.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 236, + "x": 25, + "y": 1.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Dependent" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_Depend\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 262, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Cfg_Depend_1" + }, + "position": { + "height": 35, + "width": 266, + "x": 25, + "y": 50 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_Depend" + }, + "position": { + "height": 85, + "width": 340, + "x": 1.50368, + "y": 247.007 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageEngineering4" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 3)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_ZCOff\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Error does not need to cross zero to be in deadband" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_ZCOff\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_ZCOff\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_ZCOff" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 33 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_DerivSmooth\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Use Derivative Smoothing" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DerivSmooth\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_DerivSmooth\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_DerivSmooth" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_LimitManCV\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 306, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "CV limits enforced in Manual Loop Mode" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_LimitManCV\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_LimitManCV\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_LimitManCV" + }, + "position": { + "height": 33, + "width": 340, + "x": 2.5, + "y": 66 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label2" + }, + "position": { + "height": 31, + "width": 271, + "x": 4.5, + "y": 126.5 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "These controls can be configured to not follow the Command Source Selection" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "x": 2, + "y": 104 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label0" + }, + "position": { + "height": 19, + "width": 165, + "x": 4.5, + "y": 102 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "left" + }, + "text": "Command Source Exceptions" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "FollowSource" + }, + "position": { + "height": 34, + "width": 56, + "x": 149, + "y": 157 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Follow Source" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "LineHor0" + }, + "position": { + "height": 1, + "width": 30, + "x": 162, + "y": 191 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "On_1" + }, + "position": { + "height": 34, + "width": 51, + "x": 196, + "y": 157 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Only Oper" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "LineHor1" + }, + "position": { + "height": 1, + "width": 30, + "x": 206.5, + "y": 191 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LineHor2" + }, + "position": { + "height": 1, + "width": 30, + "x": 251.5, + "y": 191 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "On_2" + }, + "position": { + "height": 34, + "width": 51, + "x": 241, + "y": 157 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Only Prog" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "LineHor3" + }, + "position": { + "height": 1, + "width": 30, + "x": 297, + "y": 191 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "On_3" + }, + "position": { + "height": 34, + "width": 44, + "x": 289, + "y": 157 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Only Ext" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label3" + }, + "position": { + "height": 16, + "width": 119, + "x": 3.5, + "y": 200 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Loop Mode" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label4" + }, + "position": { + "height": 16, + "width": 134, + "x": 3.5, + "y": 235 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "CV" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label5" + }, + "position": { + "height": 16, + "width": 134, + "x": 3.50521, + "y": 270 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "SP" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_ProgOperKeep" + }, + "position": { + "height": 35, + "width": 195, + "x": 147.5, + "y": 190.5 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "bitNumber": 0, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_ProgOperKeep" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_ProgOperKeep_0" + }, + "position": { + "height": 35, + "width": 195, + "x": 147.5, + "y": 225.5 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "bitNumber": 1, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_ProgOperKeep" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_ProgOperKeep_1" + }, + "position": { + "height": 35, + "width": 195, + "x": 147.5, + "y": 260.5 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "bitNumber": 2, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_ProgOperKeep" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_ProgOperKeep_2" + }, + "position": { + "height": 35, + "width": 195, + "x": 147.5, + "y": 295.5 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "bitNumber": 3, + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_ProgOperKeep" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Label6" + }, + "position": { + "height": 16, + "width": 134, + "x": 4.501953125, + "y": 305 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Ratio" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "PageEngineering5" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 4)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "LineHor0" + }, + "position": { + "height": 1, + "width": 181, + "x": 155, + "y": 36 + }, + "props": { + "style": { + "borderTopColor": "#6A6A6A", + "borderTopStyle": "solid", + "borderTopWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "InterlockTrip" + }, + "position": { + "height": 34, + "width": 56, + "x": 153, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Interlock Trip" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CVFail" + }, + "position": { + "height": 34, + "width": 33, + "x": 208.5, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "CV Fail" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "PVFail" + }, + "position": { + "height": 34, + "width": 32, + "x": 253, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "PV Fail" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "SPFail" + }, + "position": { + "height": 34, + "width": 30, + "x": 298, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "SP Fail" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label3" + }, + "position": { + "height": 16, + "width": 139, + "x": 3.5, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Latch shed action until reset" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label4" + }, + "position": { + "height": 16, + "width": 139, + "x": 3.5, + "y": 73.0039 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "CV Action" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label5" + }, + "position": { + "height": 16, + "width": 139, + "x": 13.5, + "y": 89 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "None" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label6" + }, + "position": { + "height": 16, + "width": 139, + "x": 13.5, + "y": 108 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Hold CV" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label7" + }, + "position": { + "height": 16, + "width": 139, + "x": 13.5, + "y": 127 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Use" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label8" + }, + "position": { + "height": 16, + "width": 139, + "x": 3.49609, + "y": 150.998 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "SP Action" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label9" + }, + "position": { + "height": 16, + "width": 139, + "x": 13.5, + "y": 166.998 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "None" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label10" + }, + "position": { + "height": 16, + "width": 139, + "x": 13.5, + "y": 186 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Hold SP" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label11" + }, + "position": { + "height": 16, + "width": 139, + "x": 13.5, + "y": 205 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Use" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label12" + }, + "position": { + "height": 16, + "width": 139, + "x": 13.5, + "y": 224 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Set SP to current PV" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label13" + }, + "position": { + "height": 16, + "width": 139, + "x": 3.5, + "y": 250.998 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Loop Mode Action" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label14" + }, + "position": { + "height": 16, + "width": 139, + "x": 13.5, + "y": 266.998 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "None" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label15" + }, + "position": { + "height": 16, + "width": 139, + "x": 13.5, + "y": 286 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Manual Only" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label16" + }, + "position": { + "height": 16, + "width": 139, + "x": 13.5, + "y": 305 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Auto or Manual Only" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_IntlkTripLatch\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 3.5, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_IntlkTripLatch\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_IntlkTripLatch\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 22, + "width": 21, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_IntlkTripLatch" + }, + "position": { + "height": 24, + "width": 24, + "x": 169, + "y": 38 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_CVFailLatch\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 3.5, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CVFailLatch\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CVFailLatch\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 22, + "width": 21, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_CVFailLatch" + }, + "position": { + "height": 24, + "width": 24, + "x": 213, + "y": 38 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_PVFailLatch\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 3.5, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_PVFailLatch\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PVFailLatch\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 22, + "width": 21, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_PVFailLatch" + }, + "position": { + "height": 24, + "width": 24, + "x": 257, + "y": 38 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_SPFailLatch\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 3.5, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_SPFailLatch\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SPFailLatch\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 22, + "width": 21, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_SPFailLatch" + }, + "position": { + "height": 24, + "width": 24, + "x": 301, + "y": 38 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "nde_Cfg_IntlkCV" + }, + "position": { + "height": 20, + "width": 70, + "x": 75, + "y": 125 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVEUMax\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVEUMin\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_IntlkCV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "meta": { + "name": "nde_Cfg_IntlkSP" + }, + "position": { + "height": 20, + "width": 70, + "x": 75.5028, + "y": 203.006 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVEUMax\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVEUMin\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_IntlkSP\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_IntlkTripCVAct\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_IntlkTripCVAct\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_0" + }, + "position": { + "height": 21, + "width": 19 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_IntlkTripCVAct\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_IntlkTripCVAct\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_1" + }, + "position": { + "height": 21, + "width": 19, + "y": 21 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_IntlkTripCVAct\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_IntlkTripCVAct\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_2" + }, + "position": { + "height": 21, + "width": 19, + "y": 42 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_IntlkTripCVAct" + }, + "position": { + "height": 68, + "width": 19, + "x": 170.5, + "y": 84.01 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_IntlkTripSPAct\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_IntlkTripSPAct\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_0" + }, + "position": { + "height": 21, + "width": 19 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_IntlkTripSPAct\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_IntlkTripSPAct\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_1" + }, + "position": { + "height": 21, + "width": 19, + "y": 21 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_IntlkTripSPAct\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_IntlkTripSPAct\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_2" + }, + "position": { + "height": 21, + "width": 19, + "y": 42 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_IntlkTripSPAct\") \u003d 3" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_IntlkTripSPAct\", 3)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_3" + }, + "position": { + "height": 21, + "width": 19, + "y": 63 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_IntlkTripSPAct" + }, + "position": { + "height": 84, + "width": 19, + "x": 170.5, + "y": 163.01 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_IntlkTripLMAct\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_IntlkTripLMAct\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_0" + }, + "position": { + "height": 21, + "width": 19 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_IntlkTripLMAct\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_IntlkTripLMAct\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_1" + }, + "position": { + "height": 21, + "width": 19, + "y": 21 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_IntlkTripLMAct\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_IntlkTripLMAct\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_2" + }, + "position": { + "height": 21, + "width": 19, + "y": 42 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_IntlkTripLMAct" + }, + "position": { + "height": 68, + "width": 19, + "x": 170.503, + "y": 263.006 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVFailCVAct\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CVFailCVAct\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_1" + }, + "position": { + "height": 21, + "width": 19, + "y": 21 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVFailCVAct\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CVFailCVAct\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_2" + }, + "position": { + "height": 21, + "width": 19, + "y": 42 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_CVFailCVAct" + }, + "position": { + "height": 68, + "width": 19, + "x": 215.5, + "y": 84 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVFailSPAct\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CVFailSPAct\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_0" + }, + "position": { + "height": 21, + "width": 19 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVFailSPAct\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CVFailSPAct\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_1" + }, + "position": { + "height": 21, + "width": 19, + "y": 21 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVFailSPAct\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CVFailSPAct\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_2" + }, + "position": { + "height": 21, + "width": 19, + "y": 42 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVFailSPAct\") \u003d 3" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CVFailSPAct\", 3)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_3" + }, + "position": { + "height": 21, + "width": 19, + "y": 63 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_CVFailSPAct" + }, + "position": { + "height": 84, + "width": 19, + "x": 215.5, + "y": 163.00568389892578 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVFailLMAct\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CVFailLMAct\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_0" + }, + "position": { + "height": 21, + "width": 19 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVFailLMAct\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CVFailLMAct\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_1" + }, + "position": { + "height": 21, + "width": 19, + "y": 21 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CVFailLMAct\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_CVFailLMAct\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_2" + }, + "position": { + "height": 21, + "width": 19, + "y": 42 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_CVFailLMAct" + }, + "position": { + "height": 68, + "width": 19, + "x": 215.5, + "y": 263.0056838989258 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVFailCVAct\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PVFailCVAct\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_1" + }, + "position": { + "height": 21, + "width": 19, + "y": 21 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVFailCVAct\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PVFailCVAct\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_2" + }, + "position": { + "height": 21, + "width": 19, + "y": 42 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_PVFailCVAct" + }, + "position": { + "height": 68, + "width": 19, + "x": 259.5, + "y": 84 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVFailSPAct\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PVFailSPAct\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_0" + }, + "position": { + "height": 21, + "width": 19 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVFailSPAct\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PVFailSPAct\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_1" + }, + "position": { + "height": 21, + "width": 19, + "y": 21 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVFailSPAct\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PVFailSPAct\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_2" + }, + "position": { + "height": 21, + "width": 19, + "y": 42 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_PVFailSPAct" + }, + "position": { + "height": 84, + "width": 19, + "x": 259.5, + "y": 163.00568389892578 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVFailLMAct\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PVFailLMAct\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_0" + }, + "position": { + "height": 21, + "width": 19 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVFailLMAct\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PVFailLMAct\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_1" + }, + "position": { + "height": 21, + "width": 19, + "y": 21 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_PVFailLMAct\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_PVFailLMAct\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_2" + }, + "position": { + "height": 21, + "width": 19, + "y": 42 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_PVFailLMAct" + }, + "position": { + "height": 68, + "width": 19, + "x": 259.5, + "y": 263.0056838989258 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_SPFailCVAct\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SPFailCVAct\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_0" + }, + "position": { + "height": 21, + "width": 19 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_SPFailCVAct\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SPFailCVAct\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_1" + }, + "position": { + "height": 21, + "width": 19, + "y": 21 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_SPFailCVAct\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SPFailCVAct\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_2" + }, + "position": { + "height": 21, + "width": 19, + "y": 42 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_SPFailCVAct" + }, + "position": { + "height": 68, + "width": 19, + "x": 303.5, + "y": 84.00568389892578 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_SPFailSPAct\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SPFailSPAct\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_1" + }, + "position": { + "height": 21, + "width": 19, + "y": 21 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_SPFailSPAct\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SPFailSPAct\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_2" + }, + "position": { + "height": 21, + "width": 19, + "y": 42 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_SPFailSPAct\") \u003d 3" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SPFailSPAct\", 3)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_3" + }, + "position": { + "height": 21, + "width": 19, + "y": 63 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_SPFailSPAct" + }, + "position": { + "height": 84, + "width": 19, + "x": 303.5, + "y": 163.00568389892578 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_SPFailLMAct\") \u003d 0" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SPFailLMAct\", 0)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_0" + }, + "position": { + "height": 21, + "width": 19 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_SPFailLMAct\") \u003d 1" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SPFailLMAct\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_1" + }, + "position": { + "height": 21, + "width": 19, + "y": 21 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "width": 10, + "x": 2, + "y": 2 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_SPFailLMAct\") \u003d 2" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "RadioButton" + }, + "position": { + "height": 16, + "width": 16, + "x": 2, + "y": 2.5 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#000000", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_SPFailLMAct\", 2)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 16, + "width": 18, + "x": 1, + "y": 2.5 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "_2" + }, + "position": { + "height": 21, + "width": 19, + "y": 42 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "rb_Cfg_SPFailLMAct" + }, + "position": { + "height": 68, + "width": 19, + "x": 303.5, + "y": 263.0056838989258 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageEngineering6" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 5)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected - 1\n\t\n\tif (newTab \u003e\u003d 0):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "PrevButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 53.5 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Prev.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 0 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page1Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 81.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 1 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page2Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 108.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 2 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page3Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 135.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 3 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page4Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 161.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 4 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page5Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 187.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 5 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page6Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 214.5 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected + 1\n\t\n\tif (newTab \u003c\u003d maxNumberOfTabs):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "NextButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 237.5 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Next.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + } + ], + "custom": { + "maintenanceTabSelected": 0, + "maxNumberOfTabs": 5 + }, + "meta": { + "name": "PageButtons" + }, + "position": { + "height": 36, + "width": 321, + "x": 14, + "y": 393 + }, + "propConfig": { + "custom.pageTabSelected": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "pageTabSelected": 0 + }, + "meta": { + "name": "TabPage_Engineering" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 402, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "x": 120, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Desc_Label_Tag" + }, + "position": { + "height": 68.00000000000001, + "width": 340, + "x": 5, + "y": 3.99 + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "tagPath": "[default]Test_Tags/P_Ain", + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_Area" + }, + "position": { + "height": 20, + "width": 340, + "x": 5, + "y": 70.987 + }, + "props": { + "params": { + "securityConfigSecurity": true, + "tagPath": "[default]Test_Tags/P_Ain", + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area" + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 214, + "x": 16.1, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "PV Units:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "height": 20, + "width": 76, + "x": 257 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_PVEU\"" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "sde_Cfg_PVEU" + }, + "position": { + "height": 20, + "width": 350, + "y": 94 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 214, + "x": 16.1, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "CV Units:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "height": 20, + "width": 76, + "x": 257 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigHMI} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVEU\"" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": "1px", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "sde_Cfg_CVEU" + }, + "position": { + "height": 20, + "width": 350, + "y": 118 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TextConfig" + }, + "position": { + "height": 200, + "width": 350, + "y": 47 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_PVDecimalPlaces" + }, + "position": { + "height": 32, + "width": 340, + "x": 5, + "y": 32.0029 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "parameterName": "Cfg_PVDecPlcs", + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_PVDecimalPlaces" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_CVDecimalPlaces" + }, + "position": { + "height": 32, + "width": 340, + "x": 5, + "y": 62.0029 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "parameterName": "Cfg_CVDecPlcs", + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_CVDecimalPlaces" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_HasIntlkObj" + }, + "position": { + "height": 32, + "width": 340, + "x": 5, + "y": 116.457 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasIntlkObj" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "HMIConfig" + }, + "position": { + "height": 246, + "width": 350, + "y": 193 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_HMI" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 3", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 161, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 180.99999999999997 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textDecoration": "underline" + }, + "text": "PID Instruction Faults" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 1, + "caption": "Process variable (PV) health bad", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_1" + }, + "position": { + "height": 32, + "width": 340, + "x": -0.02, + "y": 17 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 2, + "caption": "Control variable (CV) health bad", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_2" + }, + "position": { + "height": 32, + "width": 340, + "y": 54 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 3, + "caption": "Hand Feedback value health bad", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_3" + }, + "position": { + "height": 32, + "width": 340, + "y": 91 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 7, + "caption": "Cascade SP is outside of the High and Low SP Limits", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_7" + }, + "position": { + "height": 32, + "width": 340, + "y": 128 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 15, + "caption": "CV Previous is outside the range of 0 - 100% of CV scaled range", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_15" + }, + "position": { + "height": 32, + "width": 340, + "y": 165 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 19, + "caption": "Feed Forward is outside the range of -100 to +100 % of CV scaled range", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_19" + }, + "position": { + "height": 32, + "width": 340, + "y": 202 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 20, + "caption": "Feed Forward Previous is outside the range of -100 to +100 % of CV scaled range", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_20" + }, + "position": { + "height": 32, + "width": 340, + "y": 239 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 21, + "caption": "Hand Feedback is outside the range 0 - 100 % of CV scaled range", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_21" + }, + "position": { + "height": 32, + "width": 340, + "y": 276 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 28, + "caption": "Deviation threshold limits are not valid", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_28" + }, + "position": { + "height": 32, + "width": 340, + "y": 313 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageFaults1" + }, + "position": { + "height": 347, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 290 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textDecoration": "underline" + }, + "text": "PID Instruction Configuration Faults" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 4, + "caption": "Invalid PV Limits (Min must be less than Max)", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_4" + }, + "position": { + "height": 32, + "width": 340, + "x": -0.02, + "y": 17 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 8, + "caption": "Invalid SP Limits (Range set by PV Limits)", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_8" + }, + "position": { + "height": 32, + "width": 340, + "y": 54 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 11, + "caption": "Invalid Ratio Limits (Min must be less than Max)", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_11" + }, + "position": { + "height": 32, + "width": 340, + "y": 91 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 16, + "caption": "Invalid CV EU Span (The Min and Max cannot be equal)", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_16" + }, + "position": { + "height": 32, + "width": 340, + "y": 128 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tbit_check \u003d 2**self.parent.custom.bitNumber\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.caption}" + }, + "type": "expr" + } + } + }, + "props": { + "alignVertical": "top", + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "bitNumber": 17, + "caption": "Invalid CV Limits (Range is 0 - 100 and Min must be less tan Max)", + "parameterName": "Sts_InstrFaults1" + }, + "meta": { + "name": "bid_Sts_InstrFaults1_17" + }, + "position": { + "height": 32, + "width": 340, + "y": 165 + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageFaults2" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected - 1\n\t\n\tif (newTab \u003e\u003d 0):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "PrevButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 106 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Prev.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 0 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page1Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 134 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 1 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page2Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 161 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected + 1\n\t\n\tif (newTab \u003c\u003d maxNumberOfTabs):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "NextButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 185 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Next.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + } + ], + "custom": { + "maintenanceTabSelected": 0, + "maxNumberOfTabs": 2 + }, + "meta": { + "name": "PageButtons" + }, + "position": { + "height": 36, + "width": 321, + "x": 14, + "y": 393 + }, + "propConfig": { + "custom.pageTabSelected": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "pageTabSelected": 0 + }, + "meta": { + "name": "TabPage_Faults" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 4)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 306, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_PIDE_Advanced", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 346 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 369 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 392 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 415 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonTunning" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Tuning.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 42 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonEngineering" + }, + "position": { + "height": 35, + "width": 35, + "x": 81 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Eng.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 3" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHMI" + }, + "position": { + "height": 35, + "width": 35, + "x": 122 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_HMI.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 4" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonFaults" + }, + "position": { + "height": 35, + "width": 35, + "x": 163 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 311 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 63, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_CVEU\") || tag({view.params.tagPath} + \"/Err_CVRaw\") || tag({view.params.tagPath} + \"/Err_CVLim\") ||\r\ntag({view.params.tagPath} + \"/Err_PVEU\") || tag({view.params.tagPath} + \"/Err_RatioLim\") || tag({view.params.tagPath} + \"/Err_SPLim\") ||\r\ntag({view.params.tagPath} + \"/Err_Timer\") || tag({view.params.tagPath} + \"/Err_ZCDB\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image_Information" + }, + "position": { + "height": 16, + "width": 16, + "x": 181, + "y": 18 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_InstrFaults1\") \u003e 0" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_Info.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 35, + "width": 346, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0\n\tself.getChild(\"TabPage_Maintenance\").custom.pageTabSelected \u003d 0\n\tself.getChild(\"TabPage_Engineering\").custom.pageTabSelected \u003d 0\n\tself.getChild(\"TabPage_Faults\").custom.pageTabSelected \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm/resource.json new file mode 100644 index 0000000..d970a0a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "355a7e9b2a5b9f4c8e681b3223cd7f90643a658c255278a235995d24513c5c63", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..1817907c9c5c1353a3e17f7f7c6cd7398136847f GIT binary patch literal 7614 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 HOhf+{)q}># literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm/view.json new file mode 100644 index 0000000..52803a5 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm/view.json @@ -0,0 +1,6678 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityBypassInterlocks": true, + "securityEnableSimulation": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/P_DOut_Perm", + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityBypassInterlocks": { + "binding": { + "config": { + "expression": "\"securityBypassInterlocks\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 392 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 3 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tSts_BypActive \u003d value\n\t\n\tif (Sts_BypActive):\n\t\tret_value \u003d \"Bypassed\"\n\telse:\n\t\tret_value \u003d \"Enabled\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GOBypassDisplay" + }, + "position": { + "height": 20, + "width": 350 + }, + "props": { + "style": { + "backgroundColor": "#c0c0c0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AbnormalSeparatorLine" + }, + "position": { + "height": 2, + "width": 352, + "y": 20 + }, + "props": { + "style": { + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupAbbieNormals" + }, + "position": { + "height": 45, + "width": 403, + "x": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 0 + }, + "meta": { + "name": "GOPermissive0" + }, + "position": { + "height": 20, + "width": 165, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 1 + }, + "meta": { + "name": "GOPermissive1" + }, + "position": { + "height": 20, + "width": 165, + "y": 26 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 2 + }, + "meta": { + "name": "GOPermissive2" + }, + "position": { + "height": 20, + "width": 165, + "y": 47 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 3 + }, + "meta": { + "name": "GOPermissive3" + }, + "position": { + "height": 20, + "width": 165, + "y": 68 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 4 + }, + "meta": { + "name": "GOPermissive4" + }, + "position": { + "height": 20, + "width": 165, + "y": 89 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 5 + }, + "meta": { + "name": "GOPermissive5" + }, + "position": { + "height": 20, + "width": 165, + "y": 110 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 6 + }, + "meta": { + "name": "GOPermissive6" + }, + "position": { + "height": 20, + "width": 165, + "y": 131 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 7 + }, + "meta": { + "name": "GOPermissive7" + }, + "position": { + "height": 20, + "width": 165, + "y": 152 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DisplayLeft" + }, + "position": { + "height": 172, + "width": 165 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 8 + }, + "meta": { + "name": "GOPermissive8" + }, + "position": { + "height": 20, + "width": 165, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 9 + }, + "meta": { + "name": "GOPermissive9" + }, + "position": { + "height": 20, + "width": 165, + "y": 26 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 10 + }, + "meta": { + "name": "GOPermissive10" + }, + "position": { + "height": 20, + "width": 165, + "y": 47 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 11 + }, + "meta": { + "name": "GOPermissive11" + }, + "position": { + "height": 20, + "width": 165, + "y": 68 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 12 + }, + "meta": { + "name": "GOPermissive12" + }, + "position": { + "height": 20, + "width": 165, + "y": 89 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 13 + }, + "meta": { + "name": "GOPermissive13" + }, + "position": { + "height": 20, + "width": 165, + "y": 110 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 14 + }, + "meta": { + "name": "GOPermissive14" + }, + "position": { + "height": 20, + "width": 165, + "y": 131 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 17, + "width": 16, + "x": 1.5, + "y": 1.5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d (system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\tSts_Perm \u003d (value \u0026 bit_check_value) \u003d\u003d bit_check_value\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm\n\t\n\tif (index \u003d\u003d 1):\n\t\tret_value \u003d False\n\telse:\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Sts_NotOK\",\n\t1: \"\",\n\t2: \"Sts_NotOK_Bypassed\",\n\t3: \"Sts_NotOK\",\n\t}\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tindex \u003d Sts_Perm + 2 \n\telse:\n\t\tindex \u003d Sts_Perm + 0\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 137, + "x": 24, + "y": 2 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\") || tag({view.params.tagPath} + \"/Sts_Perm\") || tag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#3F3F3F\"\n\tindex \u003d 0\n\t\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\n\tbit_check_value \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check_value) \u003d\u003d bit_check_value)\n\n\tif (Sts_BypActive) and (MSet_Bypass):\n\t\tret_value \u003d \"#A0A0A4\" \n\telse:\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "permissiveIndex": 15 + }, + "meta": { + "name": "GOPermissive15" + }, + "position": { + "height": 20, + "width": 165, + "y": 152 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DisplayRight" + }, + "position": { + "height": 172, + "width": 165, + "x": 174.01785278320312 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GroupPermissiveDisplay" + }, + "position": { + "height": 181, + "width": 340, + "x": 43, + "y": 35 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 0", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_Perm/P_Perm_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupNavToAdvanced" + }, + "position": { + "height": 42, + "width": 42, + "x": 50, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "HeaderText" + }, + "position": { + "height": 16, + "width": 320 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textDecoration": "underline" + }, + "text": "Enable Bypass" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 0 + }, + "meta": { + "name": "GOMSetBypass0" + }, + "position": { + "height": 20, + "width": 174 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 1 + }, + "meta": { + "name": "GOMSetBypass1" + }, + "position": { + "height": 20, + "width": 174, + "y": 23 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 2 + }, + "meta": { + "name": "GOMSetBypass2" + }, + "position": { + "height": 20, + "width": 174, + "y": 46 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 3 + }, + "meta": { + "name": "GOMSetBypass3" + }, + "position": { + "height": 20, + "width": 174, + "y": 69 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 4 + }, + "meta": { + "name": "GOMSetBypass4" + }, + "position": { + "height": 20, + "width": 174, + "y": 92 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 5 + }, + "meta": { + "name": "GOMSetBypass5" + }, + "position": { + "height": 20, + "width": 174, + "y": 115 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 6 + }, + "meta": { + "name": "GOMSetBypass6" + }, + "position": { + "height": 20, + "width": 174, + "y": 138 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 7 + }, + "meta": { + "name": "GOMSetBypass7" + }, + "position": { + "height": 20, + "width": 174, + "y": 161 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "EnableLeft" + }, + "position": { + "height": 181, + "width": 174 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 8 + }, + "meta": { + "name": "GOMSetBypass8" + }, + "position": { + "height": 20, + "width": 174 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 9 + }, + "meta": { + "name": "GOMSetBypass9" + }, + "position": { + "height": 20, + "width": 174, + "y": 23 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 10 + }, + "meta": { + "name": "GOMSetBypass10" + }, + "position": { + "height": 20, + "width": 174, + "y": 46 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 11 + }, + "meta": { + "name": "GOMSetBypass11" + }, + "position": { + "height": 20, + "width": 174, + "y": 69 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 12 + }, + "meta": { + "name": "GOMSetBypass12" + }, + "position": { + "height": 20, + "width": 174, + "y": 92 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 13 + }, + "meta": { + "name": "GOMSetBypass13" + }, + "position": { + "height": 20, + "width": 174, + "y": 115 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 14 + }, + "meta": { + "name": "GOMSetBypass14" + }, + "position": { + "height": 20, + "width": 174, + "y": 138 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/MSet_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tMSet_Bypass \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (MSet_Bypass):\n\t\tret_value \u003d True\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 2 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "custom.permissiveIndex": { + "binding": { + "config": { + "path": "parent.custom.permissiveIndex" + }, + "type": "property" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 135, + "x": 25 + }, + "propConfig": { + "props.style.color": { + "binding": { + "config": { + "path": "parent.custom.overrideColor" + }, + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {parent.custom.permissiveIndex})" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/MSet_Bypass\"])[0].value\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex \n\twrite_value \u003d False\n\t\n\tif ((value \u0026 bit_check) \u003d\u003d bit_check):\n\t\tvalue \u003d value - bit_check\n\t\twrite_value \u003d True\n\telif ((value \u0026 bit_check) !\u003d bit_check):\n\t\tvalue \u003d value + bit_check\n\t\twrite_value \u003d True\n\t\t\n\tif (write_value):\n\t\tsystem.tag.write(self.view.params.tagPath + \"/MSet_Bypass\", value)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 18, + "width": 160, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.parent.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "custom": { + "permissiveIndex": 15 + }, + "meta": { + "name": "GOMSetBypass15" + }, + "position": { + "height": 20, + "width": 174, + "y": 161 + }, + "propConfig": { + "custom.overrideColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_Bypassable\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#B0B0B0\"\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tCfg_Bypassable \u003d ((value \u0026 bit_check) \u003d\u003d bit_check)\n\t\n\tif (self.view.params.securityBypassInterlocks) and (self.view.params.userHasBasic) and (Cfg_Bypassable):\n\t\tret_value \u003d \"#3F3F3F\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Perm\") || (tag({view.params.tagPath} + \"/Cfg_CondTxt/\" + {this.custom.permissiveIndex}) !\u003d null) " + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tbit_check \u003d 2**self.custom.permissiveIndex\n\tSts_Perm \u003d ((system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Perm\"])[0].value \u0026 bit_check) \u003d\u003d bit_check)\n\tCfg_CondTxt \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_CondTxt/\" + str(self.custom.permissiveIndex)])[0].value\n\t\n\tif (Sts_Perm \u003d\u003d 0) or (Cfg_CondTxt !\u003d None):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "EnableRight" + }, + "position": { + "height": 181, + "width": 174, + "x": 169.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Group" + }, + "position": { + "height": 200, + "width": 345, + "y": 19 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Group" + }, + "position": { + "height": 223, + "width": 345, + "x": 41.5, + "y": 55 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 253 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_Perm", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 206 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 229 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 252 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 275 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 2, + "y": 250 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 287, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm_Advanced/resource.json new file mode 100644 index 0000000..c1cd4d7 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "95f12ae4041b37d5f17795764835f540dcfbf5c70633adbc596845216cae1834", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_Perm/P_Perm_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..7f2184d0f1faffb50bf5fd26fcfab4ae735de16a GIT binary patch literal 17049 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 UGn@u|G+w+9UwfxJTtzWV2K g*)ISxsRbI^84V9JFrJ<76a_NU)78&qol`;+0GGHFDF6Tf literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD/view.json new file mode 100644 index 0000000..0fdecdc --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD/view.json @@ -0,0 +1,8382 @@ +{ + "custom": { + "cmdSrcTitle": "F_11 - F_11", + "popupVersion": " 1.0 " + }, + "params": { + "securityBypassFeedback": true, + "securityBypassInterlocks": true, + "securityDeviceConfigLimits": true, + "securityEnableSimulation": true, + "securityEnterOperSettings": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 3, + "tagPath": "[DH1]Block 1/Process/Motor/F_11", + "userHasBasic": true + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + }, + "persistent": true + }, + "custom.popupVersion": { + "persistent": true + }, + "params.securityBypassFeedback": { + "binding": { + "config": { + "expression": "\"securityBypassFeedback\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityBypassInterlocks": { + "binding": { + "config": { + "expression": "\"securityBypassInterlocks\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigLimits": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigLimits\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnterOperSettings": { + "binding": { + "config": { + "expression": "\"securityEnterOperSettings\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 392 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 37, + "width": 39, + "y": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab4" + }, + "position": { + "height": 37, + "width": 39, + "y": 120 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "StatusText_Ready" + }, + "position": { + "height": 16, + "width": 42, + "x": 6, + "y": 2 + }, + "props": { + "text": "Ready", + "textStyle": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "custom": { + "parameterName": "NRdy_PrioStop" + }, + "meta": { + "name": "GONoticeNRdy_PrioStop" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Trip" + }, + "meta": { + "name": "GONoticeNRdy_Trip" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Fail" + }, + "meta": { + "name": "GONoticeNRdy_Fail" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_DriveNR" + }, + "meta": { + "name": "GONoticeNRdy_DriveNR" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Perm" + }, + "meta": { + "name": "GONoticeNRdy_Perm" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONoticeNRdy_Intlk" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONoticeNRdy_IOFault" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONoticeNRdy_OoS" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONoticeNRdy_CfgErr" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NRdyNotices" + }, + "position": { + "height": 21, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "FailToStop" + }, + "meta": { + "name": "AlarmNotify_FailToStop" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "FailToStart" + }, + "meta": { + "name": "AlarmNotify_FailToStart" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IntlkTrip" + }, + "meta": { + "name": "AlarmNotify_IntlkTrip" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "DriveFault" + }, + "meta": { + "name": "AlarmNotify_DriveFault" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IOFault" + }, + "meta": { + "name": "AlarmNotify_IOFault" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmNotices" + }, + "position": { + "height": 20, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AbnormalSeparatorLine" + }, + "position": { + "height": 2, + "width": 352, + "y": 20 + }, + "props": { + "style": { + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content1" + }, + "position": { + "height": 45, + "width": 403, + "x": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "GOValStsVSD", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 20, + "width": 190 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tCfg_FwdText \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_FwdText\"])[0].value\n\tCfg_RevText \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_RevText\"])[0].value\n\t\n\tstates \u003d {\n\t0: \"Powerup\",\n\t1: \"Stopped\",\n\t2: \"Running \" + Cfg_FwdText,\n\t3: \"Running \" + Cfg_RevText,\n\t4: \"Running Slow\",\n\t5: \"Starting \" + Cfg_FwdText,\n\t6: \"Starting \" + Cfg_RevText,\n\t7: \"Starting Slow\",\n\t8: \"Jogging \" + Cfg_FwdText,\n\t9: \"Jogging \" + Cfg_RevText,\n\t10: \"Stopping\",\n\t14: \"Horn\"\n\t}\n\t\n\tVal_Sts \u003d value\n\tindex \u003d Val_Sts\n\t\n\tret_value \u003d states[index]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#D4D4D4", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "bold", + "outlineStyle": "none", + "textAlign": "Left" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "CommBad" + }, + "position": { + "height": 17, + "width": 17, + "x": 100, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_IOFault\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CommBad.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AccelDecel" + }, + "position": { + "height": 17, + "width": 17 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_IOFault\"), true, false)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Accel\") || tag({view.params.tagPath} + \"/Sts_Decel\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d -1\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/Sts_CommBad.png\"\n\timages \u003d {\n\t0: \"Sts_Accel\",\n\t1: \"Sts_Decel\"\n\t}\n\t\n\tSts_Accel \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Accel\"])[0].value\n\tSts_Decel \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Decel\"])[0].value\n\t\n\tif (Sts_Accel):\n\t\tindex \u003d 0\n\telif (Sts_Decel):\n\t\tindex \u003d 1 \n\t\n\tif (index \u003e\u003d 0):\n\t\tret_val \u003d image_path.format(images[index])\n\telse:\n\t\tret_val \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 32, + "x": 28 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt" + }, + "text": "Speed" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 88, + "y": 13 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_SpeedFdbk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_SpeedFdbk\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 22, + "x": 88, + "y": 15 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_SpeedFdbkEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "pnddValSpeedFdbk" + }, + "position": { + "height": 33, + "width": 115, + "x": 2.5, + "y": 0.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ValSpeedFdbk" + }, + "position": { + "height": 36, + "width": 120 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tick0" + }, + "position": { + "height": 5, + "width": 1, + "x": 1.0024, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick1" + }, + "position": { + "height": 5, + "width": 1, + "x": 26, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick2" + }, + "position": { + "height": 5, + "width": 1, + "x": 51, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick3" + }, + "position": { + "height": 5, + "width": 1, + "x": 76, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick4" + }, + "position": { + "height": 5, + "width": 1, + "x": 101, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick0" + }, + "position": { + "height": 2, + "width": 1, + "x": 5, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick1" + }, + "position": { + "height": 2, + "width": 1, + "x": 10, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick2" + }, + "position": { + "height": 2, + "width": 1, + "x": 15, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick3" + }, + "position": { + "height": 2, + "width": 1, + "x": 20, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick4" + }, + "position": { + "height": 2, + "width": 1, + "x": 30, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick5" + }, + "position": { + "height": 2, + "width": 1, + "x": 35, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick6" + }, + "position": { + "height": 2, + "width": 1, + "x": 40, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick7" + }, + "position": { + "height": 2, + "width": 1, + "x": 45, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick8" + }, + "position": { + "height": 2, + "width": 1, + "x": 55, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick9" + }, + "position": { + "height": 2, + "width": 1, + "x": 60, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick10" + }, + "position": { + "height": 2, + "width": 1, + "x": 65, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick11" + }, + "position": { + "height": 2, + "width": 1, + "x": 70, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick12" + }, + "position": { + "height": 2, + "width": 1, + "x": 80, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick13" + }, + "position": { + "height": 2, + "width": 1, + "x": 85, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick14" + }, + "position": { + "height": 2, + "width": 1, + "x": 90, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick15" + }, + "position": { + "height": 2, + "width": 1, + "x": 95, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Scale" + }, + "position": { + "height": 8, + "width": 103, + "x": 5, + "y": 15.0048 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "ActualSpeedIndicator" + }, + "position": { + "height": 12, + "rotate": { + "angle": "90deg" + }, + "width": 13, + "y": -3 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_SpeedFdbk\") ||\r\ntag({view.params.tagPath} + \"/Cfg_MinSpdRef\") ||\r\ntag({view.params.tagPath} + \"/Cfg_MaxSpdRef\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal_SpeedFdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_SpeedFdbk\"])[0].value\n\tCfg_MinSpdRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_MinSpdRef\"])[0].value\n\tCfg_MaxSpdRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_MaxSpdRef\"])[0].value\n\t\n\tDisplayMin \u003d 0\n\tDisplayMax \u003d 100\n\t\n\tret_value \u003d ((DisplayMax - DisplayMin) / (Cfg_MaxSpdRef - Cfg_MinSpdRef)) * (Val_SpeedFdbk - Cfg_MinSpdRef) + DisplayMin\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "color": "#2A4191", + "path": "material/play_arrow" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "SetpointSpeedIndicator" + }, + "position": { + "height": 12, + "rotate": { + "angle": -90 + }, + "width": 13, + "y": 13 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_SpeedRefEU\") \u003d tag({view.params.tagPath} + \"/Cfg_SpeedFdbkEU\"), true, false)" + }, + "type": "expr" + } + }, + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_SpeedRef\") ||\r\ntag({view.params.tagPath} + \"/Cfg_MinSpdRef\") ||\r\ntag({view.params.tagPath} + \"/Cfg_MaxSpdRef\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal_SpeedRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_SpeedRef\"])[0].value\n\tCfg_MinSpdRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_MinSpdRef\"])[0].value\n\tCfg_MaxSpdRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_MaxSpdRef\"])[0].value\n\t\n\tDisplayMin \u003d 0\n\tDisplayMax \u003d 100\n\t\n\tret_value \u003d ((DisplayMax - DisplayMin) / (Cfg_MaxSpdRef - Cfg_MinSpdRef)) * (Val_SpeedRef - Cfg_MinSpdRef) + DisplayMin\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "color": "#3F3F3F", + "path": "material/play_arrow" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "BarGraphBorder" + }, + "position": { + "height": 8, + "width": 101, + "x": 6, + "y": 7.0048 + }, + "props": { + "style": { + "borderColor": "#A0A0A4", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "BarGraphGroup" + }, + "position": { + "height": 27, + "width": 119, + "y": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 49, + "x": 22 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt" + }, + "text": "Setpoint" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 72, + "x": 9, + "y": 13 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_SpeedRef\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_SpeedRef\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "normal", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 22, + "x": 81, + "y": 15 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_SpeedFdbkEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "pnddValSpeedRef" + }, + "position": { + "height": 32, + "width": 107 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Clamped" + }, + "position": { + "height": 16, + "width": 16, + "x": 86.0036, + "y": 13.0036 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_SpeedLimited\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Clamped.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "Setpoint" + }, + "position": { + "height": 32, + "width": 110 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NumericEntryField" + }, + "position": { + "height": 20, + "width": 76 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_SpeedRef\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxSpdRef\"" + }, + "type": "tag" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MinSpdRef\"" + }, + "type": "tag" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_SpeedRef\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "ndeOSet_SpeedRef" + }, + "position": { + "height": 24, + "width": 101, + "x": 4, + "y": 33 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "SpeedSetpoint" + }, + "position": { + "height": 57, + "width": 115, + "x": 8, + "y": 72 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOSpeedFdbkAndSetpoint" + }, + "position": { + "height": 131, + "width": 123, + "y": 27 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PrimaryDisplayValues" + }, + "position": { + "height": 161, + "width": 190 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 49, + "x": 22 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_InpDatalinkLabel\")" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"s...s\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 72, + "y": 13 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_InpDatalink\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_InpDLDecPlcs\"])[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_InpDatalink\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "normal", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 22, + "x": 70, + "y": 15 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_InpDatalinkEU\")" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"s..s\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "nddValInpDatalink" + }, + "position": { + "height": 32, + "width": 99 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasInpDatalink\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 49, + "x": 22 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_OutDatalinkLabel\")" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"s...s\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 72, + "y": 13 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_OutDatalink\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_OutDLDecPlcs\"])[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_OutDatalink\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "normal", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 22, + "x": 70, + "y": 15 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_OutDatalinkEU\")" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"s..s\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "nddValOutDatalink" + }, + "position": { + "height": 32, + "width": 98 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasInpDatalink\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NumericEntryField" + }, + "position": { + "height": 20, + "width": 76 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_OSet\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_OutDLDecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_OutDLDecPlcs \u003d value\n\t\n\tif (Cfg_OutDLDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_OutDLDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_OutDatalinkMax\"" + }, + "type": "tag" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_OutDatalinkMin\"" + }, + "type": "tag" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_OutDatalink\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "ndeOSet_OutDatalink" + }, + "position": { + "height": 27, + "width": 110, + "x": 4, + "y": 33 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "OutputDataLink" + }, + "position": { + "height": 62.00000000000001, + "width": 126, + "y": 38.01 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasInpDatalink\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DisplayValues" + }, + "position": { + "height": 100, + "width": 127, + "x": 190, + "y": 21 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InformationSection" + }, + "position": { + "height": 161, + "width": 319 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_JogRev_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_JogRev.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onMouseDown": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_JogRev\", True)" + }, + "scope": "G", + "type": "script" + }, + "onMouseUp": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_JogRev\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_JogRev\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_JogRevButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 25.9952 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasJog\") \u0026\u0026 tag({view.params.tagPath} + \"/Cfg_HasReverse\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_RunRev_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_RunRev.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_StartRev\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_StartRev\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_StartRevButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 69 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasReverse\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Stop_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Stop.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Stop\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Stop\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_StopButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 112 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_RunFwd_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_RunFwd.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_StartFwd\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_StartFwd\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_StartFwdButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 155 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_JogFwd_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_JogFwd.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onMouseDown": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Jog\", True)" + }, + "scope": "G", + "type": "script" + }, + "onMouseUp": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_JogFwd\", False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_JogFwd\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_JogFwdButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 198 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasJog\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "CommandButtons" + }, + "position": { + "height": 40, + "width": 240, + "x": 100.988, + "y": 1 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 112, + "x": 30.5, + "y": 6.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[index][1]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CmdSrcImage" + }, + "position": { + "height": 38, + "width": 18, + "x": 8, + "y": 4 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(states[index][0])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "contain" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}_CmdSrc", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.custom.cmdSrcTitle}", + "type": "open", + "viewParams": { + "selectedTab": "0", + "tagPath": "{view.params.tagPath}/CmdSrc" + }, + "viewPath": "Plant PAX/Popups/P_CmdSrc/P_CmdSrc", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "CmdSrcNavButton" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "image": { + "style": { + "backgroundColor": "#FFFFFF00" + } + }, + "style": { + "backgroundColor": "#FFFFFF00", + "outlineStyle": "none" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "CmdSrcNotNormal" + }, + "position": { + "height": 16, + "width": 16, + "x": 127 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_CmdSrcNotNorm.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GOCmdSrcDisplayWithNav" + }, + "position": { + "height": 45, + "width": 145, + "y": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasRevPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_RevPermOK\") || \r\ntag({view.params.tagPath} + \"/Inp_RevNBPermOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_PermOK\",\n\t1: \"Nav_PermOKBypassed\",\n\t2: \"Nav_PermNonBypOK\",\n\t3: \"Nav_PermNotOK\"\n\t}\n\t\n\tInp_PermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_RevPermOK\"])[0].value \t\t\t#102\n\tInp_NBPermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_RevNBPermOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBPermOK)) or (not (Inp_PermOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_PermOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Perm", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Perm", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_RevPerm" + }, + "viewPath": "Plant PAX/Popups/P_Perm/P_Perm", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasRevPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOPermissivesButtonRev" + }, + "position": { + "height": 40, + "width": 40, + "x": 6.02403 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasReverse\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 49 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasFwdPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_FwdPermOK\") || \r\ntag({view.params.tagPath} + \"/Inp_FwdNBPermOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_PermOK\",\n\t1: \"Nav_PermOKBypassed\",\n\t2: \"Nav_PermNonBypOK\",\n\t3: \"Nav_PermNotOK\"\n\t}\n\t\n\tInp_PermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_FwdPermOK\"])[0].value \t\t\t#102\n\tInp_NBPermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_FwdNBPermOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBPermOK)) or (not (Inp_PermOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_PermOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Perm", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Perm", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_FwdPerm" + }, + "viewPath": "Plant PAX/Popups/P_Perm/P_Perm", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasFwdPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOPermissivesButtonFwd" + }, + "position": { + "height": 40, + "width": 40, + "x": 92 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InterlocksAndPermissives" + }, + "position": { + "height": 40, + "width": 140, + "x": 164, + "y": 46.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Commands" + }, + "position": { + "height": 90, + "width": 343, + "y": 172 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content2" + }, + "position": { + "height": 265, + "width": 346, + "x": 43, + "y": 35 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_VSD/P_VSD_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40, + "y": 1 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupNavToAdvanced" + }, + "position": { + "height": 42, + "width": 42 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Accum.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GORuntimeButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 47, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasRunTimeObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px", + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_ResInh.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GORestartInhibitButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 92, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasResInhObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px", + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "MtceNavButtons" + }, + "position": { + "height": 42, + "width": 190, + "x": 45.9974, + "y": 2 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "y": 7 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 193, + "y": 17 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_SubstPV\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 182 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Speed Setpoint Limits" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 58, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Maximum" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericEntryField" + }, + "position": { + "height": 20, + "width": 76, + "x": 103 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MinSpdRef\"" + }, + "type": "tag" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxSpdRef\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "maximum": 4294967295 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "ndeCfgMaxSpdRef" + }, + "position": { + "height": 26, + "width": 195, + "x": 2, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 58, + "y": 2 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Minimum" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericEntryField" + }, + "position": { + "height": 20, + "width": 76, + "x": 103 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxSpdRef\"" + }, + "type": "tag" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MinSpdRef\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "minimum": -4294967295 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "ndeCfgMinSpdRef" + }, + "position": { + "height": 26, + "width": 195, + "x": 2.00961, + "y": 30.0096 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 53, + "width": 189 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderRadius": "5px", + "borderStyle": "solid", + "borderWidth": 3 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 183.01 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeError" + }, + "position": { + "height": 53, + "width": 200 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_RefLim\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Group" + }, + "position": { + "height": 61, + "width": 200, + "y": 30 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "SpeedReference" + }, + "position": { + "height": 105, + "width": 340, + "x": 46.007211685180664, + "y": 89 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_UseRunFdbk\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 319, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Use Run Feedback" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": -1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "!!(tag({view.params.tagPath} + \"/Cfg_UseRunFdbk\") xor tag({view.params.tagPath} + \"/Cfg_HasRunFdbk\"))" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseRunFdbk\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_UseRunFdbk\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 343, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassFeedback} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "GOCfgUseRunFdbk" + }, + "position": { + "height": 32, + "width": 345, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasRunFdbk\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Configuration" + }, + "position": { + "height": 76, + "width": 345, + "x": 41.5, + "y": 55 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasRevPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_RevPermOK\") || \r\ntag({view.params.tagPath} + \"/Inp_RevNBPermOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_PermOK\",\n\t1: \"Nav_PermOKBypassed\",\n\t2: \"Nav_PermNonBypOK\",\n\t3: \"Nav_PermNotOK\"\n\t}\n\t\n\tInp_PermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_RevPermOK\"])[0].value \t\t\t#102\n\tInp_NBPermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_RevNBPermOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBPermOK)) or (not (Inp_PermOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_PermOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Perm", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Perm", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_RevPerm" + }, + "viewPath": "Plant PAX/Popups/P_Perm/P_Perm", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasRevPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOPermissivesButtonRev" + }, + "position": { + "height": 40, + "width": 40, + "x": 6.02403 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasReverse\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 49 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasFwdPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_FwdPermOK\") || \r\ntag({view.params.tagPath} + \"/Inp_FwdNBPermOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_PermOK\",\n\t1: \"Nav_PermOKBypassed\",\n\t2: \"Nav_PermNonBypOK\",\n\t3: \"Nav_PermNotOK\"\n\t}\n\t\n\tInp_PermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_FwdPermOK\"])[0].value \t\t\t#102\n\tInp_NBPermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_FwdNBPermOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBPermOK)) or (not (Inp_PermOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_PermOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Perm", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Perm", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_FwdPerm" + }, + "viewPath": "Plant PAX/Popups/P_Perm/P_Perm", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasFwdPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOPermissivesButtonFwd" + }, + "position": { + "height": 40, + "width": 40, + "x": 92 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InterlocksAndPermissivesButtons" + }, + "position": { + "height": 40, + "width": 140, + "x": 160, + "y": 58.5 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "y": 7 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 193, + "y": 17 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_SubstPV\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Bypass\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Check\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 2, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "start", + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Bypass\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 56, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "end", + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 133, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 101, + "y": 7 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Bypass Enabled" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "BypassEnabled" + }, + "position": { + "height": 33, + "width": 243, + "y": 26 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 182 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Interlocks and Permissives" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "IntlkAndPerm" + }, + "position": { + "height": 105, + "width": 340, + "x": 46.5, + "y": 195 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 83 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350, + "y": 275 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 180.99999999999997 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Device Not Ready Reasons" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Reset\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Reset\") \u0026\u0026 tag({view.params.tagPath} + \"/Sts_NotRdy\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_ResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 293.019, + "y": 1 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONotRdy_OoS" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.01953125, + "y": 20.99609375 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONotRdy_CfgErr" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 40.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONotRdy_Intlk" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 60.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Perm" + }, + "meta": { + "name": "GONotRdy_Perm" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 80.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONotRdy_IOFault" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 100.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_DriveNR" + }, + "meta": { + "name": "GONotRdy_DriveNR" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 120.996 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Fail" + }, + "meta": { + "name": "GONotRdy_Fail" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 140.996 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Trip" + }, + "meta": { + "name": "GONotRdy_Trip" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 160.996 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_PrioStop" + }, + "meta": { + "name": "GONotRdy_PrioStop" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 180.996 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "NotRdyHeader_0" + }, + "position": { + "height": 16, + "width": 334, + "x": 2.02, + "y": 200 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontStyle": "italic", + "fontWeight": "normal" + }, + "text": "* A reset is required to clear this condition" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NotReadyReasons" + }, + "position": { + "height": 234, + "width": 340, + "x": 6 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "FaultCodeInfo" + }, + "position": { + "height": 14, + "width": 344 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_FaultDesc\") ||\r\ntag({view.params.tagPath} + \"/Sts_DriveFault\") ||\r\ntag({view.params.tagPath} + \"/Val_LastFaultCode\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tVal_FaultDesc \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_FaultDesc\"])[0].value\t\t\t\t#101\n\tSts_DriveFault \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_DriveFault\"])[0].value\t\t\t#102\n\tVal_LastFaultCode \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_LastFaultCode\"])[0].value\t\t#103\n\t\n\tstates \u003d {\n\t0: \"Most Recent Fault Code: {0}\".format(\"%d\" % Val_LastFaultCode),\n\t1: \"Active Fault Code: {0}\".format(\"%d\" % Val_LastFaultCode),\n\t}\n\t\n\tif (Sts_DriveFault):\n\t\tindex \u003d 1\n\t\n\treturn states[index]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "FaultDescription" + }, + "position": { + "height": 14, + "width": 344, + "x": 0.015625, + "y": 17 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_FaultDesc\")" + }, + "transforms": [ + { + "code": "\treturn value if (value !\u003d None) else \"s..s\"", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GOFaultInfo" + }, + "position": { + "height": 35, + "width": 344, + "y": 239 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_LastFaultCode\") \u003e 0" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DiagnosticsContent" + }, + "position": { + "height": 295, + "width": 350, + "x": 40.9936, + "y": 0.00000190735 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Diagnostics" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 123 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_AlarmDisplay_DriveFault" + }, + "position": { + "height": 34, + "width": 291 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "DriveFault" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_IOFault" + }, + "position": { + "height": 34, + "width": 291, + "y": 37 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "IOFault" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_IntlkTrip" + }, + "position": { + "height": 34, + "width": 291, + "y": 74 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "IntlkTrip" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_FailToStart" + }, + "position": { + "height": 34, + "width": 291, + "y": 111 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "FailToStart" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_FailToStop" + }, + "position": { + "height": 34, + "width": 291, + "y": 148 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "FailToStop" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "Alarms" + }, + "position": { + "height": 187, + "width": 291 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmContent" + }, + "position": { + "height": 290, + "width": 340, + "x": 43, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Alarm" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 3", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 253 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_VSD", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 206 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 229 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 252 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 275 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonDiagnostics" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 80 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Diag.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 3" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonAlarm" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 120 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Alm.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\t\t\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"PVwSP Trend\")\n\t\n\tparams \u003d {\n\t\"tagPath\": self.view.params.tagPath,\n\t\"maximumParameterName\": \"Val_SpeedFdbkEUMax\",\n\t\"minimumParameterName\": \"Val_SpeedFdbkEUMin\",\n\t\"euParameterName\": \"Cfg_SpeedFdbkEU\",\n\t\"pvParameterName\": \"Val_SpeedFdbk\",\n\t\"spParameterName\": \"Val_SpeedRef\",\n\t}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/00_Trend_Popups/Process_PVwSP\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonTrend" + }, + "position": { + "height": 32, + "width": 32, + "x": 2, + "y": 210 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Trend.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 2, + "y": 250 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasRunFdbk\") ||\r\ntag({view.params.tagPath} + \"/Cfg_UseRunFdbk\") ||\r\ntag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tCfg_HasRunFdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasRunFdbk\"])[0].value\n\tCfg_UseRunFdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseRunFdbk\"])[0].value\n\tSts_Bypass \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Bypass\"])[0].value\n\t\n\tif ((Cfg_HasRunFdbk) and not (Cfg_UseRunFdbk)) or (Sts_Bypass):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmInh" + }, + "position": { + "height": 16, + "width": 16, + "y": 116.99519348144531 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_AlmInh\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Inhibit.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\") || tag({view.params.tagPath} + \"/Err_RefLim\") || tag({view.params.tagPath} + \"/Err_OutDLLim\") || \r\ntag({view.params.tagPath} + \"/Err_FdbkEU\") || tag({view.params.tagPath} + \"/Err_FdbkRaw\") || tag({view.params.tagPath} + \"/Err_RefEU\") || \r\ntag({view.params.tagPath} + \"/Err_RefRaw\") || tag({view.params.tagPath} + \"/Err_InpDLEU\") || tag({view.params.tagPath} + \"/Err_InpDLRaw\") || \r\ntag({view.params.tagPath} + \"/Err_OutDLEU\") || tag({view.params.tagPath} + \"/Err_OutDLRaw\") || tag({view.params.tagPath} + \"/Err_Sim\") " + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigAlarm" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 118 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Alarm\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "y": 99 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 287, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD_Advanced/resource.json new file mode 100644 index 0000000..a778463 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "f2dbf7432033ff97222f67c9ca8ff9116fb3660bc68617f231f5a9d75abcb3bd", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_VSD/P_VSD_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..f935f90a22f207d345da59e1d8fc9f444ddfb838 GIT binary patch literal 14367 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

8;Ut^kz@=P;b{|6Z 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC/view.json new file mode 100644 index 0000000..e405e69 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC/view.json @@ -0,0 +1,7453 @@ +{ + "custom": { + "cmdSrcTitle": " - ", + "popupVersion": " 1.0 " + }, + "params": { + "securityBypassFeedback": true, + "securityBypassInterlocks": true, + "securityDeviceConfigLimits": true, + "securityEnableSimulation": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 3, + "tagPath": "[default]Test_Tags/P_Valve_C", + "userHasBasic": true + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + }, + "persistent": true + }, + "custom.popupVersion": { + "persistent": true + }, + "params.securityBypassFeedback": { + "binding": { + "config": { + "expression": "\"securityBypassFeedback\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityBypassInterlocks": { + "binding": { + "config": { + "expression": "\"securityBypassInterlocks\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigLimits": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigLimits\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 392 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 37, + "width": 39, + "y": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab4" + }, + "position": { + "height": 37, + "width": 39, + "y": 120 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "StatusText_Ready" + }, + "position": { + "height": 16, + "width": 42, + "x": 6, + "y": 2 + }, + "props": { + "text": "Ready", + "textStyle": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONoticeNRdy_Intlk" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONoticeNRdy_IOFault" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONoticeNRdy_OoS" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONoticeNRdy_CfgErr" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NRdyNotices" + }, + "position": { + "height": 21, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "ActuatorFault" + }, + "meta": { + "name": "AlarmNotify_ActuatorFault" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IntlkTrip" + }, + "meta": { + "name": "AlarmNotify_IntlkTrip" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IOFault" + }, + "meta": { + "name": "AlarmNotify_IOFault" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmNotices" + }, + "position": { + "height": 20, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AbnormalSeparatorLine" + }, + "position": { + "height": 2, + "width": 352, + "y": 20 + }, + "props": { + "style": { + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 350 + }, + "props": { + "text": "Limit Switch Failure", + "textStyle": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GOLSFail" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_LSFail\")" + }, + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content1" + }, + "position": { + "height": 45, + "width": 403, + "x": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "GOValStsAOut", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 20, + "width": 190 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tstates \u003d {\n\t0: \"At Target\",\n\t1: \"Ramping Down\",\n\t2: \"Ramping Up\",\n\t3: \"Clamped at Min\",\n\t4: \"Clamped at Max\",\n\t5: \"Bumping Close\",\n\t6: \"Bumping Open\",\n\t}\n\t\n\tVal_Sts \u003d value\n\tindex \u003d Val_Sts\n\t\n\tret_value \u003d states[index]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#D4D4D4", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "Left" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "CommBad" + }, + "position": { + "height": 17, + "width": 17, + "x": 100, + "y": 14 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_IOFault\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_CommBad.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AccelDecel" + }, + "position": { + "height": 17, + "width": 17 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_IOFault\"), true, false)" + }, + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Accel\") || tag({view.params.tagPath} + \"/Sts_Decel\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d -1\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/Sts_CommBad.png\"\n\timages \u003d {\n\t0: \"Sts_Accel\",\n\t1: \"Sts_Decel\"\n\t}\n\t\n\tSts_Accel \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Accel\"])[0].value\n\tSts_Decel \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Decel\"])[0].value\n\t\n\tif (Sts_Accel):\n\t\tindex \u003d 0\n\telif (Sts_Decel):\n\t\tindex \u003d 1 \n\t\n\tif (index \u003e\u003d 0):\n\t\tret_val \u003d image_path.format(images[index])\n\telse:\n\t\tret_val \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 32, + "x": 28 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt" + }, + "text": "Speed" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 18, + "width": 88, + "y": 13 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_SpeedFdbk\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_SpeedFdbk\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 22, + "x": 88, + "y": 15 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_SpeedFdbkEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "pnddValSpeedFdbk" + }, + "position": { + "height": 33, + "width": 115, + "x": 2.5, + "y": 0.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ValSpeedFdbk" + }, + "position": { + "height": 36, + "width": 120 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tick0" + }, + "position": { + "height": 5, + "width": 1, + "x": 1.0024, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick1" + }, + "position": { + "height": 5, + "width": 1, + "x": 26, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick2" + }, + "position": { + "height": 5, + "width": 1, + "x": 51, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick3" + }, + "position": { + "height": 5, + "width": 1, + "x": 76, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick4" + }, + "position": { + "height": 5, + "width": 1, + "x": 101, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick0" + }, + "position": { + "height": 2, + "width": 1, + "x": 5, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick1" + }, + "position": { + "height": 2, + "width": 1, + "x": 10, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick2" + }, + "position": { + "height": 2, + "width": 1, + "x": 15, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick3" + }, + "position": { + "height": 2, + "width": 1, + "x": 20, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick4" + }, + "position": { + "height": 2, + "width": 1, + "x": 30, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick5" + }, + "position": { + "height": 2, + "width": 1, + "x": 35, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick6" + }, + "position": { + "height": 2, + "width": 1, + "x": 40, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick7" + }, + "position": { + "height": 2, + "width": 1, + "x": 45, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick8" + }, + "position": { + "height": 2, + "width": 1, + "x": 55, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick9" + }, + "position": { + "height": 2, + "width": 1, + "x": 60, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick10" + }, + "position": { + "height": 2, + "width": 1, + "x": 65, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick11" + }, + "position": { + "height": 2, + "width": 1, + "x": 70, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick12" + }, + "position": { + "height": 2, + "width": 1, + "x": 80, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick13" + }, + "position": { + "height": 2, + "width": 1, + "x": 85, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick14" + }, + "position": { + "height": 2, + "width": 1, + "x": 90, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick15" + }, + "position": { + "height": 2, + "width": 1, + "x": 95, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Scale" + }, + "position": { + "height": 8, + "width": 103, + "x": 5, + "y": 15.0048 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "ActualSpeedIndicator" + }, + "position": { + "height": 12, + "rotate": { + "angle": "90deg" + }, + "width": 13, + "y": -3 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_SpeedFdbk\") ||\r\ntag({view.params.tagPath} + \"/Cfg_MinSpdRef\") ||\r\ntag({view.params.tagPath} + \"/Cfg_MaxSpdRef\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal_SpeedFdbk \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_SpeedFdbk\"])[0].value\n\tCfg_MinSpdRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_MinSpdRef\"])[0].value\n\tCfg_MaxSpdRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_MaxSpdRef\"])[0].value\n\t\n\tDisplayMin \u003d 0\n\tDisplayMax \u003d 100\n\t\n\tret_value \u003d ((DisplayMax - DisplayMin) / (Cfg_MaxSpdRef - Cfg_MinSpdRef)) * (Val_SpeedFdbk - Cfg_MinSpdRef) + DisplayMin\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "color": "#2A4191", + "path": "material/play_arrow" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "SetpointSpeedIndicator" + }, + "position": { + "height": 12, + "rotate": { + "angle": -90 + }, + "width": 13, + "y": 13 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_SpeedRefEU\") \u003d tag({view.params.tagPath} + \"/Cfg_SpeedFdbkEU\"), true, false)" + }, + "type": "expr" + } + }, + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_SpeedRef\") ||\r\ntag({view.params.tagPath} + \"/Cfg_MinSpdRef\") ||\r\ntag({view.params.tagPath} + \"/Cfg_MaxSpdRef\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal_SpeedRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_SpeedRef\"])[0].value\n\tCfg_MinSpdRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_MinSpdRef\"])[0].value\n\tCfg_MaxSpdRef \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_MaxSpdRef\"])[0].value\n\t\n\tDisplayMin \u003d 0\n\tDisplayMax \u003d 100\n\t\n\tret_value \u003d ((DisplayMax - DisplayMin) / (Cfg_MaxSpdRef - Cfg_MinSpdRef)) * (Val_SpeedRef - Cfg_MinSpdRef) + DisplayMin\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "color": "#3F3F3F", + "path": "material/play_arrow" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "BarGraphBorder" + }, + "position": { + "height": 8, + "width": 101, + "x": 6, + "y": 7.0048 + }, + "props": { + "style": { + "borderColor": "#A0A0A4", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "BarGraphGroup" + }, + "position": { + "height": 27, + "width": 119, + "y": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 49, + "x": 22 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt" + }, + "text": "Setpoint" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 72, + "x": 9, + "y": 13 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_SpeedRef\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_SpeedRef\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "normal", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "godsData_EU", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 14, + "width": 22, + "x": 81, + "y": 15 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Cfg_SpeedFdbkEU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontWeight": "bold", + "outlineStyle": "none", + "paddingLeft": 5, + "textAlign": "left" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "pnddValSpeedRef" + }, + "position": { + "height": 32, + "width": 107 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Clamped" + }, + "position": { + "height": 16, + "width": 16, + "x": 86.0036, + "y": 13.0036 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_SpeedLimited\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Clamped.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "Setpoint" + }, + "position": { + "height": 32, + "width": 110 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NumericEntryField" + }, + "position": { + "height": 20, + "width": 76 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityEnterOperSettings} \u0026\u0026 {view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_SpeedRef\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxSpdRef\"" + }, + "type": "tag" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MinSpdRef\"" + }, + "type": "tag" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_SpeedRef\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "ndeOSet_SpeedRef" + }, + "position": { + "height": 24, + "width": 101, + "x": 4, + "y": 33 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "SpeedSetpoint" + }, + "position": { + "height": 57, + "width": 115, + "x": 8, + "y": 72 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOSpeedFdbkAndSetpoint", + "visible": false + }, + "position": { + "height": 131, + "width": 123, + "y": 27 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "BarGraphBorder" + }, + "position": { + "height": 12, + "width": 180, + "x": 5.5, + "y": 14.3 + }, + "props": { + "style": { + "borderColor": "#A0A0A4", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Tick0" + }, + "position": { + "height": 5, + "width": 1, + "x": 1.0024, + "y": 0.004809999999999981 + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick1" + }, + "position": { + "height": 5, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.25" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick2" + }, + "position": { + "height": 5, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.5" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick3" + }, + "position": { + "height": 5, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.75" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tick4" + }, + "position": { + "height": 5, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick0" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.05" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick1" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick2" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.15" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick3" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.20" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick4" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.30" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick5" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.35" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick6" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.40" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick7" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.45" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick8" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.00481 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.55" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick9" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.60" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick10" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.65" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick11" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.70" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick12" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.80" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick13" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.85" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick14" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.90" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "SmallTick15" + }, + "position": { + "height": 2, + "width": 1, + "y": 0.004809999999999981 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "{parent.custom.length} * 0.95" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderLeftColor": "#A0A0A4", + "borderLeftStyle": "solid", + "borderLeftWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "length": 180 + }, + "meta": { + "name": "Scale" + }, + "position": { + "height": 8, + "width": 184, + "x": 4.5, + "y": 26.3 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "CVIndicator" + }, + "position": { + "height": 20, + "rotate": { + "angle": "90deg" + }, + "width": 20, + "y": -1.1 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVOut\") ||\r\ntag({view.params.tagPath} + \"/Val_CVEUMin\") ||\r\ntag({view.params.tagPath} + \"/Val_CVEUMax\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal_CVOut \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVOut\"])[0].value\n\tVal_CVEUMin \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMin\"])[0].value\n\tVal_CVEUMax \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMax\"])[0].value\n\t\n\tDisplayMin \u003d -4\n\tDisplayMax \u003d 175\n\t\n\tret_value \u003d ((DisplayMax - DisplayMin) / (Val_CVEUMax - Val_CVEUMin)) * (Val_CVOut - Val_CVEUMin) + DisplayMin\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "color": "#2A4191", + "path": "material/play_arrow" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "CVSet" + }, + "position": { + "height": 20, + "width": 3, + "y": 14.3 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVSet\") ||\r\ntag({view.params.tagPath} + \"/Val_CVEUMin\") ||\r\ntag({view.params.tagPath} + \"/Val_CVEUMax\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tVal_CVOut \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVOut\"])[0].value\n\tVal_CVEUMin \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMin\"])[0].value\n\tVal_CVEUMax \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_CVEUMax\"])[0].value\n\t\n\tDisplayMin \u003d 5\n\tDisplayMax \u003d 183\n\t\n\tret_value \u003d ((DisplayMax - DisplayMin) / (Val_CVEUMax - Val_CVEUMin)) * (Val_CVOut - Val_CVEUMin) + DisplayMin\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "BarGraphGroup" + }, + "position": { + "height": 36, + "width": 190, + "x": 20, + "y": 2 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOCVBarGraph" + }, + "position": { + "height": 41, + "width": 228, + "y": 36 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 72, + "x": 17.5, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_CVOut\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_CVOut\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "bold", + "textAlign": "center" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Units" + }, + "position": { + "height": 14, + "width": 49, + "x": 29, + "y": 17 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_EU\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#919191", + "fontSize": "8pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "pnddValSpeedRef" + }, + "position": { + "height": 32, + "width": 107 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Clamped" + }, + "position": { + "height": 16, + "width": 16, + "x": 86.0036, + "y": 2.0036 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Clamped\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_Clamped.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ControlVariable" + }, + "position": { + "height": 32, + "width": 110, + "x": 60, + "y": 73 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 14, + "width": 49, + "x": 11.5 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "8pt" + }, + "text": "Position" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericDisplay", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 16, + "width": 64, + "x": 4, + "y": 13 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_Pos\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\n\tVal \u003d value\n\tCfg_PVDecPlcs \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_DecPlcs\"] )[0].value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + }, + { + "expression": "numberFormat(tag({view.params.tagPath}+ \"/Val_Pos\"), {value})", + "type": "expression" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#2A4191", + "fontWeight": "normal", + "textAlign": "right" + }, + "textStyle": { + "classes": "States/DigitalInput/on", + "fontSize": "11pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "pnddValPos" + }, + "position": { + "height": 32, + "width": 107, + "y": 110 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasPosFdbk\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NumericEntryField" + }, + "position": { + "height": 20, + "width": 76 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_CV\")" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVEUMax\"" + }, + "type": "tag" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVEUMin\"" + }, + "type": "tag" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/OSet_CV\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "GOOSetCV" + }, + "position": { + "height": 24, + "width": 101, + "x": 75, + "y": 120 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InformationSection" + }, + "position": { + "height": 171, + "width": 252 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_BumpOpen_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_BumpOpen.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_BumpOpen\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_BumpOpen\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_BumpOpenButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 46.039, + "y": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_IOFault\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_BumpClose_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_BumpClose.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_BumpClose\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_BumpClose\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_BumpCloseButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 2.038, + "y": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_IOFault\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 91, + "y": 3 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "CommandButtons" + }, + "position": { + "height": 44, + "width": 140, + "x": 197.99, + "y": 57 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 112, + "x": 30.5, + "y": 6.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[index][1]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CmdSrcImage" + }, + "position": { + "height": 38, + "width": 18, + "x": 8, + "y": 4 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(states[index][0])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "contain" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}_CmdSrc", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.custom.cmdSrcTitle}", + "type": "open", + "viewParams": { + "selectedTab": "0", + "tagPath": "{view.params.tagPath}/CmdSrc" + }, + "viewPath": "Plant PAX/Popups/P_CmdSrc/P_CmdSrc", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "CmdSrcNavButton" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "image": { + "style": { + "backgroundColor": "#FFFFFF00" + } + }, + "style": { + "backgroundColor": "#FFFFFF00", + "outlineStyle": "none" + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "CmdSrcNotNormal" + }, + "position": { + "height": 16, + "width": 16, + "x": 127 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_CmdSrcNotNorm.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GOCmdSrcDisplayWithNav" + }, + "position": { + "height": 45, + "width": 145, + "y": 59 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Commands" + }, + "position": { + "height": 108, + "width": 340, + "y": 157 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content2" + }, + "position": { + "height": 265, + "width": 340, + "x": 43, + "y": 35 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_ValveC/P_ValveC_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "NavButtons" + }, + "position": { + "height": 42, + "width": 127, + "x": 50, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "y": 7 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 229, + "y": 56 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_Bypass\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Bypass\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Check\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 2, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "start", + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Bypass\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 56, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "end", + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 133, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 101, + "y": 7 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Bypass Enabled" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "BypassEnabled" + }, + "position": { + "height": 33, + "width": 243, + "y": 59 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 182, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Interlocks" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 3 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InterlocksAndPermissives" + }, + "position": { + "height": 40, + "width": 47, + "x": 282, + "y": 56.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "IntlkAndPerm" + }, + "position": { + "height": 105, + "width": 340, + "x": 46.5, + "y": 195 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_UseClosedLS\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 319, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Use Valve Closed limit switch for failure checking" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": -1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Cfg_UseClosedLS\") \u003d 1, false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseClosedLS\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_UseClosedLS\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 343, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": " {view.params.securityBypassFeedback} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "UseClosedLS" + }, + "position": { + "height": 32, + "width": 345, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasClosedLS\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_UseOpenLS\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 319, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Use Valve Open limit switch for failure checking" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": -1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Cfg_UseOpenLS\") \u003d 1, false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseOpenLS\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_UseOpenLS\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 343, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassFeedback} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "UseOpenLS" + }, + "position": { + "height": 32, + "width": 345, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOpenLS\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Configuration" + }, + "position": { + "height": 76, + "width": 345, + "x": -0.5, + "y": 29 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 257, + "y": 4 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Position above which valve is assumed open if limit switches not used" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericEntry" + }, + "position": { + "height": 20, + "width": 70, + "x": 258, + "y": 10 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVEUMax\")" + }, + "type": "expr" + } + }, + "props.inputBounds.minimum": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_CVEUMin\")" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_MaxClosedPos\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": {}, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "ndeCfgMaxClosedPos" + }, + "position": { + "height": 40, + "width": 340, + "x": 3, + "y": 119 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageMaintenance1" + }, + "position": { + "height": 195, + "width": 345, + "x": 42, + "y": 26 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.maintenanceTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0) or (value !\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 257, + "y": 24 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "CV Rate of Change Limits" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 267, + "y": 4 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Maximum Rate of Increase (\" + tag({view.params.tagPath} + \"/Cfg_EU\") + \"/sec)\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericEntry" + }, + "position": { + "height": 20, + "width": 70, + "x": 266, + "y": 10 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVRoCLimInc\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "ndeCfgCVRoCLimInc" + }, + "position": { + "height": 40, + "width": 340, + "x": 3, + "y": 69 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 267, + "y": 4 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Maximum Rate of Decrease (\" + tag({view.params.tagPath} + \"/Cfg_EU\") + \"/sec)\"" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "NumericEntry" + }, + "position": { + "height": 20, + "width": 70, + "x": 266, + "y": 10 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigLimits} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + }, + "props.format": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_DecPlcs\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"0\"\n\t\t\n\tCfg_PVDecPlcs \u003d value\n\t\n\tif (Cfg_PVDecPlcs \u003e 0):\n\t\tret_value \u003d \"0.{0}\".format(\"0\" * Cfg_PVDecPlcs)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.inputBounds.maximum": { + "binding": { + "config": { + "expression": "pow(2, 32)" + }, + "type": "expr" + } + }, + "props.value": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "expression", + "tagPath": "{view.params.tagPath} + \"/Cfg_CVRoCLimDec\"" + }, + "type": "tag" + } + } + }, + "props": { + "inputBounds": { + "minimum": 0 + }, + "mode": "protected", + "spinner": { + "enabled": false + }, + "style": { + "fontSize": "8pt" + } + }, + "type": "ia.input.numeric-entry-field" + } + ], + "meta": { + "name": "ndeCfgCVRoCLimDec" + }, + "position": { + "height": 40, + "width": 340, + "x": 3, + "y": 116 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "PageMaintenance2" + }, + "position": { + "height": 195, + "width": 345, + "x": 42, + "y": 26 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.maintenanceTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tmaintenanceTabSelected \u003d self.parent.custom.maintenanceTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d maintenanceTabSelected - 1\n\t\n\tif (newTab \u003e\u003d 0):\n\t\tself.parent.custom.maintenanceTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "PrevButton" + }, + "position": { + "height": 36, + "width": 30 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Prev.png", + "style": { + "curor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 0 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page1Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 28 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.maintenanceTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 1 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page2Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 58 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.maintenanceTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tmaintenanceTabSelected \u003d self.parent.custom.maintenanceTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d maintenanceTabSelected + 1\n\t\n\tif (newTab \u003c\u003d maxNumberOfTabs):\n\t\tself.parent.custom.maintenanceTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "NextButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 82 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Next.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 24 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasOpenLS\") ||\r\ntag({view.params.tagPath} + \"/Cfg_UseOpenLS\") ||\r\ntag({view.params.tagPath} + \"/Cfg_HasClosedLS\") ||\r\ntag({view.params.tagPath} + \"/Cfg_UseClosedLS\") ||\r\ntag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tCfg_HasOpenLS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasOpenLS\"])[0].value\n\tCfg_UseOpenLS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseOpenLS\"])[0].value\n\tCfg_HasClosedLS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasClosedLS\"])[0].value\n\tCfg_UseClosedLS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseClosedLS\"])[0].value\n\tSts_Bypass \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Bypass\"])[0].value\n\t\n\tif ((Cfg_HasOpenLS) and not (Cfg_UseOpenLS)) or ((Cfg_HasClosedLS) and not (Cfg_UseClosedLS)) or (Sts_Bypass):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + } + ], + "custom": { + "maxNumberOfTabs": 2 + }, + "meta": { + "name": "MaintenancePageButtons" + }, + "position": { + "height": 36, + "width": 112, + "x": 152, + "y": 213 + }, + "propConfig": { + "custom.maintenanceTabSelected": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.maintenanceTabSelected" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "custom": { + "maintenanceTabSelected": 0 + }, + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 83 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350, + "y": 275 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 180.99999999999997 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Device Not Ready Reasons" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Reset\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Reset\") \u0026\u0026 tag({view.params.tagPath} + \"/Sts_NotRdy\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_ResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 293.019, + "y": 1 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONotRdy_OoS" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.01953125, + "y": 20.99609375 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONotRdy_CfgErr" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 40.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONotRdy_Intlk" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 60.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONotRdy_IOFault" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 80.996 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "NotRdyHeader_0" + }, + "position": { + "height": 16, + "width": 334, + "x": 2.02, + "y": 100 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontStyle": "italic", + "fontWeight": "normal" + }, + "text": "* A reset is required to clear this condition" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NotReadyReasons" + }, + "position": { + "height": 178, + "width": 340, + "x": 6 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DiagnosticsContent" + }, + "position": { + "height": 295, + "width": 350, + "x": 40.9936, + "y": 0.00000190735 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Diagnostics" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 123 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_AlarmDisplay_IOFault" + }, + "position": { + "height": 34, + "width": 291 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "IOFault" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_IntlkTrip" + }, + "position": { + "height": 34, + "width": 291, + "y": 37 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "IntlkTrip" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_ActuatorFault" + }, + "position": { + "height": 34, + "width": 291, + "y": 74 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "ActuatorFault" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "Alarms" + }, + "position": { + "height": 145, + "width": 291 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmContent" + }, + "position": { + "height": 145, + "width": 340, + "x": 43, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Alarm" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 3", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 253 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_ValveC", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 206 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 229 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 252 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 275 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonDiagnostics" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 80 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Diag.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 3" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonAlarm" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 120 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Alm.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 2, + "y": 250 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasOpenLS\") ||\r\ntag({view.params.tagPath} + \"/Cfg_UseOpenLS\") ||\r\ntag({view.params.tagPath} + \"/Cfg_HasClosedLS\") ||\r\ntag({view.params.tagPath} + \"/Cfg_UseClosedLS\") ||\r\ntag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tCfg_HasOpenLS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasOpenLS\"])[0].value\n\tCfg_UseOpenLS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseOpenLS\"])[0].value\n\tCfg_HasClosedLS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasClosedLS\"])[0].value\n\tCfg_UseClosedLS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseClosedLS\"])[0].value\n\tSts_Bypass \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Bypass\"])[0].value\n\t\n\tif ((Cfg_HasOpenLS) and not (Cfg_UseOpenLS)) or ((Cfg_HasClosedLS) and not (Cfg_UseClosedLS)) or (Sts_Bypass):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmInh" + }, + "position": { + "height": 16, + "width": 16, + "y": 116.99519348144531 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_AlmInh\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Inhibit.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Limit\") || tag({view.params.tagPath} + \"/Err_EU\") || tag({view.params.tagPath} + \"/Err_Raw\") || tag({view.params.tagPath} + \"/Err_Fdbk\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigAlarm" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 118 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Alarm\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "y": 99 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 287, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC_Advanced/resource.json new file mode 100644 index 0000000..f1802c7 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "03d6582739b1f45d18145d2ae07c3465bc20f598cec066e266f496b3da538cb5", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveC/P_ValveC_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..536ed1c2eef7b8119a64b89266515954fca578de GIT binary patch literal 14403 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

lGl+S*($ezKR@pA2) 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�IK|_nf_ZVCIV2cC( zXqheY*Fl!aI<|(h;7ig6C8ifj3UkFEyGLV?imLo+YK{&L#Qnt)18NNa^*d;Z>4Lg| zws%v(+gTg43RCw$S*y4VHcX)%rFfR=RK;*&+J7;XGpj(cayjFWt)YyewgWkxNTfwY z;Tv>>xoys?;IC^ve=>LZ@zEnb_D%zq=Y!YP7F%a?Ork8sy}}a&A|D949358*djSCT`DaMIf3Yb!4DqK3K2hNR{Y!6iPP+V};vWW%2KEIV_qm0-SebWl|*{t((w;dp>6QCe1%3^Z>@b?_nrn@`I zlQ!+cm<&#|pXH&)Gx9P-3ISNH&6uaCNiW7v`Z|;R{QLv}75%SXuCCMrCPxQsN*+^- zi!w4YIZs_dnR3NHwZj4_cn5W)Qn+GV!*t^E2@Q6zR1?UX18^V}<~P-R!ZJ{;Y*O$l z3QbX@M_6O`Di_A>6p^M@vODGMU73N|)!%XN3(Rl2CGH$L;t0%QTfSBe`D;Ee?{n`4 zvy5k(2Sc{UZVK#O*=)CLF33D^1#G;$yx?%MT*_~=;HB=n8?K1b&CSjC?}>`^sFPld zr#3Vo=}4mAjOKrA;cqcBGbp8cv4sT^}gYJ>PRyg`qQHiBwOezo}0!z} zV4LN5Bvz`=^VJal>OKbU4m4xHh-RiTLa?MA%x7zVR<7ug{sRvSIRV_vo^Qe8G)2I%T7F$riE+bMtW9W zz6^W))l5(sD)LB#e@PSqwe~m>OiN$`tCb{NkLXjPgYc2{AgvMPKR^kQf>0Bt|Fb6B zQb@h3co*X+g#UB{4OCRSO#iDY+pDEow#4DeQf&mTk!{`Q7sXgVS;e0*;`r+)6>s0b z!XoX2cTP!-UN5H&+SR5YP-b%^nUXFRY9AWrT|>G;>yHWlpP>OvQISaTp*?_j@KvUb zQ0h!D;j3Fb!2Df95xUrjz{2nZc^@P;DQQwb2kv@A^uqzz+1Z0SyR8LnVYR9Gk>Hg6 kex&tg^#2a<_C1a<-(DmGjW6<{v4^AnTt~G=**fBX0N&e{#sB~S literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO/view.json new file mode 100644 index 0000000..df0b8de --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO/view.json @@ -0,0 +1,5447 @@ +{ + "custom": { + "cmdSrcTitle": "FV_13 - FV_13", + "popupVersion": " 1.0 " + }, + "params": { + "securityBypassFeedback": true, + "securityBypassInterlocks": true, + "securityEnableSimulation": true, + "securityOperateEquipment": true, + "securityOverrideInputs": true, + "selectedTab": 3, + "tagPath": "[DH1]Block 1/Process/Valve/FV_13", + "userHasBasic": true + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + }, + "persistent": true + }, + "custom.popupVersion": { + "persistent": true + }, + "params.securityBypassFeedback": { + "binding": { + "config": { + "expression": "\"securityBypassFeedback\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityBypassInterlocks": { + "binding": { + "config": { + "expression": "\"securityBypassInterlocks\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOperateEquipment": { + "binding": { + "config": { + "expression": "\"securityOperateEquipment\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 392 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 37, + "width": 39 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 37, + "width": 39, + "y": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 37, + "width": 39, + "y": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab4" + }, + "position": { + "height": 37, + "width": 39, + "y": 120 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 157, + "width": 40, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "StatusText_Ready" + }, + "position": { + "height": 16, + "width": 42, + "x": 6, + "y": 2 + }, + "props": { + "text": "Ready", + "textStyle": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "custom": { + "parameterName": "NRdy_Perm" + }, + "meta": { + "name": "GONoticeNRdy_Perm" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONoticeNRdy_Intlk" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_Fail" + }, + "meta": { + "name": "GONoticeNRdy_Fail" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONoticeNRdy_IOFault" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONoticeNRdy_CfgErr" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + }, + { + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONoticeNRdy_OoS" + }, + "position": { + "height": 21, + "width": 398 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/\" + {this.custom.parameterName}), true, false)" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{this.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NRdyNotices" + }, + "position": { + "height": 21, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "TransitStall" + }, + "meta": { + "name": "AlarmNotify_TransitStall" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "FullStall" + }, + "meta": { + "name": "AlarmNotify_FullStall" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IntlkTrip" + }, + "meta": { + "name": "AlarmNotify_IntlkTrip" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmSeverityIndicator" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\timages_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\"\", \n\t\"Alm_AckReqd\", \n\t\"Alm_PriorityLo\", \n\t\"Alm_PriorityLo\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityMed\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityHi\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_PriorityUrg\",\n\t\"Alm_Inhibit\",\n\t\"Error\"]\n\t\n\tVal_NotifyAll \u003d value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003d\u003d 0) and (Sts_AlmInh):\n\t\tVal_NotifyAll \u003d 10\n\t\n\tif (Val_NotifyAll \u003e\u003d 1) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d images_path.format(images[Val_NotifyAll])\n\telse:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmText" + }, + "position": { + "height": 16, + "width": 367, + "x": 22, + "y": 2 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.alarmParameterName} + \"/Cfg_Cond\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "alarmParameterName": "IOFault" + }, + "meta": { + "name": "AlarmNotify_IOFault" + }, + "position": { + "height": 20, + "width": 402 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {this.custom.alarmParameterName} + \"/Val_Notify\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tVal_Notify \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (Val_Notify \u003e 0) and ((Val_UnackAlmC \u003d\u003d 0) or ((Val_Notify \u0026 1) \u003d\u003d 1)):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#000000" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmNotices" + }, + "position": { + "height": 20, + "width": 402 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AbnormalSeparatorLine" + }, + "position": { + "height": 2, + "width": 352, + "y": 20 + }, + "props": { + "style": { + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 302, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 350 + }, + "props": { + "text": "Limit Switch Failure", + "textStyle": { + "backgroundColor": "#3F3F3F", + "color": "#FFFFFF", + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "GOLSFail" + }, + "position": { + "height": 20, + "width": 350 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_LSFail\")" + }, + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content1" + }, + "position": { + "height": 45, + "width": 403, + "x": 44 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "GOValStsValve", + "tooltip": { + "location": "bottom" + } + }, + "position": { + "height": 20, + "width": 190 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+ \"/Val_Sts\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\tstates \u003d {\n\t0: \"Unknown\",\n\t1: \"Closed\",\n\t2: \"Open\",\n\t3: \"Command to Close\",\n\t4: \"Command to Open\",\n\t5: \"Closing\",\n\t6: \"Opening\",\n\t7: \"Stopped\",\n\t8: \"Moving\",\n\t9: \"Tripping\",\n\t10: \"Horn\",\n\t}\n\t\n\tVal_Sts \u003d value\n\tindex \u003d Val_Sts\n\t\n\tret_value \u003d states[index]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#D4D4D4", + "color": "#2A4191", + "fontSize": "11pt", + "fontWeight": "normal", + "outlineStyle": "none", + "textAlign": "Left" + }, + "textStyle": { + "classes": "States/DigitalInput/on" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "InformationSection" + }, + "position": { + "height": 77, + "width": 210 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ValveOpen_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ValveOpen.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Open\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Open\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_OpenButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 145.039, + "y": 17 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ValveClose_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_ValveClose.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Close\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Close\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_CloseButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 101.038, + "y": 17.0048 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "CommandButtons" + }, + "position": { + "height": 58, + "width": 240, + "x": 99.987556519 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "CmdSrcNotNormal" + }, + "position": { + "height": 16, + "width": 16, + "x": 127 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/CmdSrc/Sts_Normal\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_CmdSrcNotNorm.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "style": { + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 112, + "x": 30.5, + "y": 6.5 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d states[index][1]\n\texcept:\n\t\tret_value \u003d \"\"\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "CmdSrcImage" + }, + "position": { + "height": 38, + "width": 18, + "x": 8, + "y": 4 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/CmdSrc/Sts_eSrc\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d value\n\t\n\t# id: [image name, caption]\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t0: [\"\", \"Logic Not In Use\"],\n\t4: [\"Sts_CmdSrcHand\", \"Hand\"],\n\t8: [\"Sts_CmdSrcMaint\", \"Maintenance\"],\n\t16: [\"Sts_CmdSrcOvrd\", \"Override\"],\n\t32: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t33: [\"Sts_CmdSrcProgLocked\", \"Program (locked)\"],\n\t34: [\"Sts_CmdSrcProgram\", \"Program\"],\n\t64: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t65: [\"Sts_CmdSrcOperLocked\", \"Operator (locked)\"],\n\t66: [\"Sts_CmdSrcOper\", \"Operator\"],\n\t128: [\"Sts_CmdSrcOoS\", \"Maint. Out Of Service\"],\n\t129: [\"Sts_CmdSrcOoS\", \"Logic Out of Service\"],\n\t256: [\"Sts_CmdSrcExt\", \"External\"]\t\n\t}\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(states[index][0])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "contain" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "draggable": true, + "id": "{view.params.tagPath}_CmdSrc", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "{/root.custom.cmdSrcTitle}", + "type": "open", + "viewParams": { + "selectedTab": "0", + "tagPath": "{view.params.tagPath}/CmdSrc" + }, + "viewPath": "Plant PAX/Popups/P_CmdSrc/P_CmdSrc", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "CmdSrcNavButton" + }, + "position": { + "height": 40, + "width": 140, + "x": 2.5, + "y": 2.5 + }, + "props": { + "image": { + "style": { + "backgroundColor": "#FFFFFF00" + } + }, + "style": { + "backgroundColor": "#FFFFFF00", + "outlineStyle": "none" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "GOCmdSrcDisplayWithNav" + }, + "position": { + "height": 45, + "width": 145, + "y": 59 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 3 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PermOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBPermOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_PermOK\",\n\t1: \"Nav_PermOKBypassed\",\n\t2: \"Nav_PermNonBypOK\",\n\t3: \"Nav_PermNotOK\"\n\t}\n\t\n\tInp_PermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PermOK\"])[0].value \t\t\t#102\n\tInp_NBPermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBPermOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBPermOK)) or (not (Inp_PermOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_PermOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Perm", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Perm", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Perm" + }, + "viewPath": "Plant PAX/Popups/P_Perm/P_Perm", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOPermissivesButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 48 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InterlocksAndPermissives" + }, + "position": { + "height": 40, + "width": 90, + "x": 198, + "y": 61.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Commands" + }, + "position": { + "height": 108, + "width": 340, + "y": 157 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Content2" + }, + "position": { + "height": 265, + "width": 340, + "x": 43, + "y": 35 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Home" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 43 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "AdvancedProperties" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Properties.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tblock_label \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_Label\"])[0].value\n\ttitle \u003d \"{0} - {1}\".format(block_label, \"Advanced\")\n\t\n\tparams \u003d {\u0027tagPath\u0027: self.view.params.tagPath}\n\t\n\tsystem.perspective.openPopup({self.view.params.tagPath},\u0027Plant PAX/Popups/P_ValveSO/P_ValveSO_Advanced\u0027, params, title, showCloseIcon \u003d True, resizable \u003d False)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "AdvancedPropertiesButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfig" + }, + "position": { + "height": 16, + "width": 16, + "x": 22 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Accum.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GOValveStatsButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 47 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasStatsObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px", + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtons" + }, + "position": { + "height": 42, + "width": 127, + "x": 50, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_UseClosedLS\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 319, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Use Valve Closed limit switch for failure checking" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": -1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Cfg_UseClosedLS\") \u003d 1, false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseClosedLS\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_UseClosedLS\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 343, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": " {view.params.securityBypassFeedback} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "UseClosedLS" + }, + "position": { + "height": 32, + "width": 345, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasClosedLS\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_UseOpenLS\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityOverrideInputs} \u0026\u0026 {view.params.userHasBasic}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 319, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Use Valve Open limit switch for failure checking" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": -1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Cfg_UseOpenLS\") \u003d 1, false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseOpenLS\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_UseOpenLS\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 343, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassFeedback} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "UseOpenLS" + }, + "position": { + "height": 32, + "width": 345, + "y": 43 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasOpenLS\"), true, false)" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Configuration" + }, + "position": { + "height": 76, + "width": 345, + "x": 41.5, + "y": 55 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "y": 7 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "x": 229, + "y": 17 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_Bypass\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Track" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6B6B6B", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Fill" + }, + "position": { + "height": 8, + "width": 32, + "x": 2, + "y": 4 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Sts_Bypass\"), false, true)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#008080", + "borderBottomLeftRadius": "15%", + "borderBottomRightRadius": "15%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "15%", + "borderTopRightRadius": "15%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Indicator" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "position.x": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d 0\n\t\n\tSts_SubstPV \u003d value\n\t\n\tif (Sts_SubstPV):\n\t\tret_value \u003d 20\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#F0F0F0", + "borderBottomLeftRadius": "50%", + "borderBottomRightRadius": "50%", + "borderColor": "#6A6A6A", + "borderStyle": "solid", + "borderTopLeftRadius": "50%", + "borderTopRightRadius": "50%", + "borderWidth": 1 + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "ToggleIndicator" + }, + "position": { + "height": 16, + "width": 37, + "x": 34, + "y": 7 + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Check\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OffButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 2, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "start", + "justify": "start", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "No" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/MCmd_Bypass\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "OnButton", + "tooltip": { + "tail": false + } + }, + "position": { + "height": 25, + "width": 50, + "x": 56, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityBypassInterlocks} \u0026\u0026 {view.params.userHasBasic}" + }, + "type": "expr" + } + } + }, + "props": { + "align": "end", + "justify": "end", + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Yes" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "ToggleControl" + }, + "position": { + "height": 28, + "width": 110, + "x": 133, + "y": 3 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 101, + "y": 7 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt" + }, + "text": "Bypass Enabled" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "BypassEnabled" + }, + "position": { + "height": 33, + "width": 243, + "y": 26 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 182 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Interlocks and Permissives" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_IntlkOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBIntlkOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_IntlkOK\",\n\t1: \"Nav_IntlkOKBypassed\",\n\t2: \"Nav_IntlkNonBypOK\",\n\t3: \"Nav_IntlkNotOK\"\n\t}\n\t\n\tInp_IntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_IntlkOK\"])[0].value \t\t\t#102\n\tInp_NBIntlkOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBIntlkOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBIntlkOK)) or (not (Inp_IntlkOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_IntlkOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Intlk", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Intlk", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Intlk" + }, + "viewPath": "Plant PAX/Popups/P_Intlk/P_Intlk", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasIntlkObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOInterlockButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 3 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "borderColor": "#B0B0B0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "NavButtonFace" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Inp_PermOK\") || \r\ntag({view.params.tagPath} + \"/Inp_NBPermOK\") || \r\ntag({view.params.tagPath} + \"/Sts_BypActive\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d {\n\t0: \"Nav_PermOK\",\n\t1: \"Nav_PermOKBypassed\",\n\t2: \"Nav_PermNonBypOK\",\n\t3: \"Nav_PermNotOK\"\n\t}\n\t\n\tInp_PermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_PermOK\"])[0].value \t\t\t#102\n\tInp_NBPermOK \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Inp_NBPermOK\"])[0].value\t\t#103\n\tSts_BypActive \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_BypActive\"])[0].value\t\t\t#104\n\t\n\tif (not (Inp_NBPermOK)) or (not (Inp_PermOK or Sts_BypActive)):\n\t\tindex \u003d 3\n\telif (not (Inp_PermOK)):\n\t\tindex \u003d 2\n\telse:\n\t\tindex \u003d Sts_BypActive\n\t\n\ttry:\n\t\tret_value \u003d image_path.format(images[index])\n\texcept:\n\t\tret_value \u003d image_path.format(\"Error\")\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "paddingLeft": 4, + "paddingTop": 4 + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "draggable": true, + "id": "P_Perm", + "modal": false, + "overlayDismiss": false, + "resizable": false, + "showCloseIcon": true, + "title": "P_Perm", + "type": "open", + "viewParams": { + "tagPath": "{view.params.tagPath}_Perm" + }, + "viewPath": "Plant PAX/Popups/P_Perm/P_Perm", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + } + } + }, + "meta": { + "name": "NavButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_HasPermObj\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GOPermissivesButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 48 + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InterlocksAndPermissives" + }, + "position": { + "height": 40, + "width": 90, + "x": 194, + "y": 58.5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "IntlkAndPerm" + }, + "position": { + "height": 105, + "width": 340, + "x": 46.5, + "y": 195 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 83 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 20, + "width": 20 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d image_path.format(states[SrcQ_IO][0])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 330, + "x": 20 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][1]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][2]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "textStyle": { + "fontSize": "10pt" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "CommStatus" + }, + "position": { + "height": 20, + "width": 350, + "y": 275 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\t\n\tSrcQ_IO \u003d value\n\t\n\tif (SrcQ_IO \u003e\u003d 8):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/SrcQ_IO\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\tstates \u003d {\n\t# index: [image_name, caption, caption_color, background_color]\n\t0: [\"\", \"Comm Good\", \"#000000\", \"#c0c0c0\"],\n\t1: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t2: [\"\", \"Comm\", \"#000000\", \"#c0c0c0\"],\n\t8: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t9: [\"Sts_Simulated\", \"Loopback Test\", \"#000000\", \"#c0c0c0\"],\n\t10: [\"Sts_Simulated\", \"Simulated\", \"#000000\", \"#e0e0e0\"],\n\t16: [\"Sts_CommUncertain\", \"Live - Off Spec\", \"#ffffff\", \"#ffff00\"],\n\t17: [\"Sts_CommUncertain\", \"Simulated at Device\", \"#ffffff\", \"#ffff00\"],\n\t18: [\"Sts_CommUncertain\", \"Maint Substitution\", \"#ffffff\", \"#ffff00\"],\n\t19: [\"Sts_CommUncertain\", \"Shed - Last Good\", \"#ffffff\", \"#ffff00\"],\n\t20: [\"Sts_CommUncertain\", \"Shed - Replaced\", \"#ffffff\", \"#ffff00\"],\n\t32: [\"Sts_CommBad\", \"Signal Failure\", \"#ffffff\", \"#ff0000\"],\n\t33: [\"Sts_CommBad\", \"Channel Fault\", \"#ffffff\", \"#ff0000\"],\n\t34: [\"Sts_CommBad\", \"Module/Comm Fault\", \"#ffffff\", \"#ff0000\"],\n\t35: [\"Sts_BC_BadCfg\", \"Invalid Config\", \"#ffffff\", \"#000000\"]\n\t}\n\t\n\tSrcQ_IO \u003d value\n\t\n\tret_value \u003d states[SrcQ_IO][3]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 180.99999999999997 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold" + }, + "text": "Device Not Ready Reasons" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceDisabled" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "InactiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_Reset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_Reset\", True)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveButton" + }, + "position": { + "height": 40, + "width": 40 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{view.params.userHasBasic} \u0026\u0026 {view.params.securityOperateEquipment} \u0026\u0026 tag({view.params.tagPath} + \"/ORdy_Reset\") \u0026\u0026 tag({view.params.tagPath} + \"/Sts_NotRdy\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "GO_ResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 293.019, + "y": 1 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_OoS" + }, + "meta": { + "name": "GONotRdy_OoS" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.01953125, + "y": 20.99609375 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_CfgErr" + }, + "meta": { + "name": "GONotRdy_CfgErr" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 40.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Intlk" + }, + "meta": { + "name": "GONotRdy_Intlk" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 60.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Perm" + }, + "meta": { + "name": "GONotRdy_Perm" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 80.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_IOFault" + }, + "meta": { + "name": "GONotRdy_IOFault" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 100.9961 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Image" + }, + "position": { + "height": 16, + "width": 16 + }, + "propConfig": { + "props.source": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/\" + {parent.custom.parameterName})" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tindex \u003d 0\n\t\n\timage_path \u003d \"/system/images/PlantPax/Pax V4.10.05/{0}.png\"\n\timages \u003d [\n\t\"Indicator Off\",\n\t\"Indicator On\"\n\t]\n\t\n\tif (value):\n\t\tindex \u003d 1\n\t\n\tret_value \u003d image_path.format(images[index])\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotRdyHeader" + }, + "position": { + "height": 16, + "width": 317, + "x": 21 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.parameterName}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\t\n\tcaptions \u003d {\n\t\"NRdy_OoS\":\t\"Device Out of Service\",\n\t\"NRdy_CfgErr\":\"Configuration Error\",\n\t\"NRdy_Intlk\": \"Interlocks Not OK\",\n\t\"NRdy_Perm\": \"Permissives Not OK\",\n\t\"NRdy_IOFault\": \"I/O Fault *\",\n\t\"NRdy_DriveNR\": \"Drive Not Ready\",\n\t\"NRdy_Fail\": \"Device Failure *\",\n\t\"NRdy_Trip\": \"Device Trip (Drive Fault)\",\n\t\"NRdy_PrioStop\": \"Operator or External priority \u0027Stop\u0027 *\",\n\t\"NRdy_PrioOff\": \"Operator or External priority \u0027Off\u0027 *\",\n\t\"NRdy_PrioSt0\": \"Operator or External priority \u0027State 0\u0027 *\",\n\t\"NRdy_NoMode\": \"Device Logic Disabled\",\n\t\"NRdy_Trip\": \"Tripped\",\n\t\"NRdy_EqpFault\": \"External Equipment Fault *\",\n\t\"NRdy_Init\": \"Invalid CV Init Request\",\n\t\"NRdy_PVBad\": \"PV Bad Quality\",\n\t\"NRdy_OvldNR\": \"Powerup not complete\",\n\t\"NRdy_BypassVsDrive\": \"Both \u0027Drive\u0027 and \u0027Bypass\u0027 are selected\",\n\t\"NRdy_NotRemote\": \"Remote Control not selected, cannot start\"\n\t}\n\t\n\treturn captions[value]", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "parameterName": "NRdy_Fail" + }, + "meta": { + "name": "GONotRdy_Fail" + }, + "position": { + "height": 17, + "width": 340, + "x": -0.0195313, + "y": 120.996 + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "NotRdyHeader_0" + }, + "position": { + "height": 16, + "width": 334, + "x": 2.02, + "y": 160 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontStyle": "italic", + "fontWeight": "normal" + }, + "text": "* A reset is required to clear this condition" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "NotReadyReasons" + }, + "position": { + "height": 178, + "width": 340, + "x": 6 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "DiagnosticsContent" + }, + "position": { + "height": 295, + "width": 350, + "x": 40.9936, + "y": 0.00000190735 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Diagnostics" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 123 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Disabled.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset_Disa.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "DisabledAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "ButtonFaceReady" + }, + "position": { + "height": 40, + "width": 40 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/CmdBtnFace_Ready.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "ResetAckAll" + }, + "position": { + "height": 32, + "width": 32, + "x": 4, + "y": 4 + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Cmd_AlmAckAllReset.png" + }, + "type": "ia.display.image" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.write(self.view.params.tagPath + \"/OCmd_ResetAckAll\", 1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "ActiveAckResetButton" + }, + "position": { + "height": 40, + "width": 40, + "x": 300 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/ORdy_ResetAckAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tORdy_ResetAckAll \u003d value\n\tVal_UnackAlmC \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_UnackAlmC\"])[0].value\n\t\n\tif (self.view.params.userHasBasic) and (ORdy_ResetAckAll):\n\t\tret_value \u003d True \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_AlarmDisplay_IOFault" + }, + "position": { + "height": 34, + "width": 291 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "IOFault" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_IntlkTrip" + }, + "position": { + "height": 34, + "width": 291, + "y": 37 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "IntlkTrip" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_FullStall" + }, + "position": { + "height": 34, + "width": 291, + "y": 74 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "FullStall" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_AlarmDisplay_TransitStall" + }, + "position": { + "height": 34, + "width": 291, + "y": 111 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "alarmName": "TransitStall" + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Alarm Objects/GO_AlarmDisplay" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "Alarms" + }, + "position": { + "height": 145, + "width": 291 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "AlarmContent" + }, + "position": { + "height": 145, + "width": 340, + "x": 43, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Alarm" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 3", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 300, + "width": 353, + "x": 39 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "y": 253 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 300, + "width": 392 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_ValveSO", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 206 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 229 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 252 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 108, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 255, + "x": 125, + "y": 275 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 300, + "width": 392, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "AlarmPolygon" + }, + "position": { + "height": 39, + "width": 39, + "y": 117 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "now(2000)" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\tvisible \u003d self.meta.visible\n\t\n\tVal_NotifyAll \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Val_NotifyAll\"])[0].value\n\tSts_AlmInh \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_AlmInh\"])[0].value\n\n\tif (Val_NotifyAll \u003e 0) and (not(Sts_AlmInh)):\n\t\tif (Val_NotifyAll % 2 \u003d\u003d 0):\n\t\t\tret_value \u003d True\n\t\telif ((Val_NotifyAll % 2 !\u003d 0)):\n\t\t\tret_value \u003d not(visible)\n\telse:\n\t\tret_value \u003d False\n\t\n\tret_value \u003d ret_value and (self.view.params.selectedTab !\u003d 3)\t# Show it only if active tab different than alarm tab \n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Val_NotifyAll\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"\"\n\tVal_NotifyAll \u003d value\n\t\n\tcolors \u003d [\"\",\n\t\"#FFFFFF\",\n\t\"#916AAD\",\n\t\"#916AAD\",\n\t\"#F5DF1B\",\n\t\"#F5DF1B\",\n\t\"#EC8729\",\n\t\"#EC8729\",\n\t\"#E22028\",\n\t\"#E22028\",\n\t\"\"]\n\t\n\tif (Val_NotifyAll \u003e 0) and (Val_NotifyAll \u003c\u003d 10):\n\t\tret_value \u003d colors[Val_NotifyAll]\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "borderBottomStyle": "solid", + "borderBottomWidth": 2, + "borderLeftStyle": "solid", + "borderLeftWidth": 2, + "borderRightStyle": "none", + "borderTopStyle": "solid", + "borderTopWidth": 2 + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHome" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Home.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 40 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonDiagnostics" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 80 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Diag.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 3" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonAlarm" + }, + "position": { + "height": 35, + "width": 35, + "x": 2, + "y": 120 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Alm.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 2, + "y": 250 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "MaintBypass" + }, + "position": { + "height": 16, + "width": 16, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Cfg_HasOpenLS\") ||\r\ntag({view.params.tagPath} + \"/Cfg_UseOpenLS\") ||\r\ntag({view.params.tagPath} + \"/Cfg_HasClosedLS\") ||\r\ntag({view.params.tagPath} + \"/Cfg_UseClosedLS\") ||\r\ntag({view.params.tagPath} + \"/Sts_Bypass\")" + }, + "transforms": [ + { + "code": "\tret_value \u003d False\n\t\n\tCfg_HasOpenLS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasOpenLS\"])[0].value\n\tCfg_UseOpenLS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseOpenLS\"])[0].value\n\tCfg_HasClosedLS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_HasClosedLS\"])[0].value\n\tCfg_UseClosedLS \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_UseClosedLS\"])[0].value\n\tSts_Bypass \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Sts_Bypass\"])[0].value\n\t\n\tif ((Cfg_HasOpenLS) and not (Cfg_UseOpenLS)) or ((Cfg_HasClosedLS) and not (Cfg_UseClosedLS)) or (Sts_Bypass):\n\t\tret_value \u003d True\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_MaintByp.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "AlarmInh" + }, + "position": { + "height": 16, + "width": 16, + "y": 116.99519348144531 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_AlmInh\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Alm_Inhibit.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 37 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\") || tag({view.params.tagPath} + \"/Err_Sim\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigAlarm" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 118 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Alarm\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "NotReady" + }, + "position": { + "height": 16, + "width": 16, + "y": 99 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Sts_NotRdy\"), true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_NotReady.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 287, + "width": 39, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "propConfig": { + "custom.cmdSrcTitle": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath}+\"/Cfg_Tag\") + \" - \" + tag({view.params.tagPath}+\"/Cfg_Label\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO_Advanced/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO_Advanced/resource.json new file mode 100644 index 0000000..4b07920 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO_Advanced/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "3fae59f5b7e15f5b31a88f4a6d4242b6c099886f7be7591a722e30e608208f37", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:40:19Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO_Advanced/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO_Advanced/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..eb8ebb00c342c7c13d4774057ca2805598f46281 GIT binary patch literal 10796 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 Op{A^*RH^Xc>;C}p^|1^9 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO_Advanced/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO_Advanced/view.json new file mode 100644 index 0000000..0f82d4e --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Objects/Plant PAX/Popups/P_ValveSO/P_ValveSO_Advanced/view.json @@ -0,0 +1,2232 @@ +{ + "custom": { + "popupVersion": " 1.0 " + }, + "params": { + "securityDeviceConfigBehavior": true, + "securityDeviceConfigFailTimers": false, + "securityDeviceConfigHMI": true, + "securityDeviceConfigLimits": true, + "securityDeviceConfigTimers": true, + "securityEnableSimulation": true, + "securityEnterOperSettings": true, + "securityOverrideInputs": true, + "selectedTab": 0, + "tagPath": "[default]Test_Tags/P_ValveSO", + "userHasAdvanced": true, + "userHasBasic": true + }, + "propConfig": { + "custom.popupVersion": { + "persistent": true + }, + "params.securityDeviceConfigBehavior": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigBehavior\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigFailTimers": { + "binding": { + "config": { + "expression": "\"securityDevic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigHMI": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigHMI\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigLimits": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigLimits\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityDeviceConfigTimers": { + "binding": { + "config": { + "expression": "\"securityDeviceConfigTimers\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnableSimulation": { + "binding": { + "config": { + "expression": "\"securityEnableSimulation\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityEnterOperSettings": { + "binding": { + "config": { + "expression": "\"securityEnterOperSettings\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.securityOverrideInputs": { + "binding": { + "config": { + "expression": "\"securityOverrideInputs\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + }, + "params.tagPath": { + "paramDirection": "input", + "persistent": true + }, + "params.userHasAdvanced": { + "binding": { + "config": { + "expression": "\"userHasAdvanced\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + }, + "params.userHasBasic": { + "binding": { + "config": { + "expression": "\"userHasBasic\"" + }, + "transforms": [ + { + "code": "\tret_value \u003d PlantPAX.securityCheck.verify(self.session.props.auth.user.roles, value)\n\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + }, + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 442, + "width": 350 + } + }, + "root": { + "children": [ + { + "children": [ + { + "meta": { + "name": "Tab1" + }, + "position": { + "height": 39, + "width": 37 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab2" + }, + "position": { + "height": 39, + "width": 37, + "x": 40 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab3" + }, + "position": { + "height": 39, + "width": 37, + "x": 80 + }, + "props": { + "style": { + "backgroundColor": "#A0A0A4" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "InactiveTabs" + }, + "position": { + "height": 39, + "width": 117, + "x": 4, + "y": 4 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "ErrOutline" + }, + "position": { + "height": 73, + "width": 81, + "x": -1, + "y": 10.5 + }, + "props": { + "style": { + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "2px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 64, + "y": -4.5 + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "ndeErr_1" + }, + "position": { + "height": 90, + "width": 81, + "x": 257, + "y": 5 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Timer\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "overflow": "visible" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "GO_ValveTimers" + }, + "position": { + "height": 84, + "width": 340, + "x": 1.5, + "y": 13 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigFailTimers": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_ValveTimers" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "GroupTimer" + }, + "position": { + "height": 394, + "width": 343, + "x": 2, + "y": 45 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Maintenance" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0)", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 39, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "x": 2, + "y": 109 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "GO_Cfg_OCmdResets" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 118.003 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OCmdResets" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_XCmdResets" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 150 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_XCmdResets" + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Line" + }, + "position": { + "height": 10, + "rotate": { + "angle": 45 + }, + "width": 5, + "x": 5.1, + "y": 1.1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if(tag({view.params.tagPath} + \"/Cfg_FailOpen\"), true, false)" + }, + "type": "expr" + } + }, + "props.style.borderColor": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "transforms": [ + { + "code": "\tret_value \u003d \"#b0b0b0\"\n\t\n\tif (value):\n\t\tret_value \u003d \"#000000\"\n\t\t\n\treturn ret_value", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderBottomStyle": "solid", + "borderBottomWidth": "2px", + "borderLeftStyle": "none", + "borderRightStyle": "solid", + "borderRightWidth": "2px", + "borderTopStyle": "none" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "Checkbox" + }, + "position": { + "height": 16, + "width": 16, + "x": 4, + "y": 8 + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 32, + "width": 310, + "x": 25 + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "left" + }, + "text": "Fail Open (energize to close)" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tvalue \u003d system.tag.readBlocking([self.view.params.tagPath + \"/Cfg_FailOpen\"])[0].value\n\tsystem.tag.write(self.view.params.tagPath + \"/Cfg_FailOpen\", not(value))" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "height": 28, + "width": 335, + "x": 1, + "y": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "expression": "{view.params.securityDeviceConfigBehavior} \u0026\u0026 {view.params.userHasAdvanced}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF00", + "borderColor": "#FFFFFF00" + }, + "text": "" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "cb_Cfg_FailOpen" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 182 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "GO_Cfg_OvrdPermIntlk" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 217 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_OvrdPermIntlk" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_HasLimitSwitch" + }, + "position": { + "height": 127, + "width": 340, + "x": 2.5, + "y": 1 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_HasLimitSwitch" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "PageEngineering1" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 0) or (value !\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "SeparatorLine" + }, + "position": { + "height": 2, + "width": 340, + "x": 2, + "y": 39 + }, + "props": { + "style": { + "borderColor": "#E0E0E0", + "borderStyle": "solid", + "borderWidth": "1px" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Label2" + }, + "position": { + "height": 16, + "width": 155, + "x": 8.51, + "y": 9 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0", + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "left" + }, + "text": "Deenergize Output:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "GO_Cfg_ShedOnIOFault" + }, + "position": { + "height": 32, + "width": 280, + "x": 12.5, + "y": 26.0017 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnIOFault" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_ShedOnInterlockTrip" + }, + "position": { + "height": 32, + "width": 280, + "x": 12.5, + "y": 125 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnInterlockTrip" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_ShedOnTransitStall" + }, + "position": { + "height": 32, + "width": 280, + "x": 12.5, + "y": 59 + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_ValveSO", + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnTransitStall" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_ShedOnFullStall" + }, + "position": { + "height": 32, + "width": 280, + "x": 12.5, + "y": 92 + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "tagPath": "[default]Test_Tags/P_ValveSO", + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_ShedOnFullStall" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_SimFdbkT" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 184.002 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_SimFdbkT" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_StartHornT" + }, + "position": { + "height": 32, + "width": 340, + "x": 2.5, + "y": 226 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigBehavior": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Valve Objects/GO_Cfg_StartHornT" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "PageEngineering2" + }, + "position": { + "height": 334, + "width": 345, + "x": 2.5, + "y": 46 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{parent.custom.pageTabSelected}" + }, + "transforms": [ + { + "code": "\treturn (value \u003d\u003d 1)", + "type": "script" + } + ], + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected - 1\n\t\n\tif (newTab \u003e\u003d 0):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "PrevButton" + }, + "position": { + "height": 36, + "width": 30 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Prev.png", + "style": { + "curor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 0 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page1Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 28 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 20, + "width": 20, + "x": 3, + "y": 8 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if({parent.custom.currentTabNumber} \u003d {parent.custom.tabNumber}, \"#A3A3A3FF\", \"#A3A3A300\")" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "expression": "{parent.custom.tabNumber} + 1" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "borderColor": "#3F3F3F", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#3F3F3F", + "fontSize": "10pt", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "tabNumber": 1 + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.custom.currentTabNumber \u003d self.custom.tabNumber" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Page2Button" + }, + "position": { + "height": 36, + "width": 26, + "x": 58 + }, + "propConfig": { + "custom.currentTabNumber": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.coord" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tpageTabSelected \u003d self.parent.custom.pageTabSelected\n\tmaxNumberOfTabs \u003d self.parent.custom.maxNumberOfTabs - 1\n\t\n\tnewTab \u003d pageTabSelected + 1\n\t\n\tif (newTab \u003c\u003d maxNumberOfTabs):\n\t\tself.parent.custom.pageTabSelected \u003d newTab" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "NextButton" + }, + "position": { + "height": 36, + "width": 30, + "x": 82 + }, + "props": { + "fit": { + "mode": "contain" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Next.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + } + ], + "custom": { + "maintenanceTabSelected": 0, + "maxNumberOfTabs": 2 + }, + "meta": { + "name": "MaintenancePageButtons" + }, + "position": { + "height": 36, + "width": 112, + "x": 112.5, + "y": 393 + }, + "propConfig": { + "custom.pageTabSelected": { + "binding": { + "config": { + "bidirectional": true, + "path": "parent.custom.pageTabSelected" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "height": 18, + "width": 16, + "x": 180.005, + "y": 389 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Sim\")" + }, + "type": "expr" + } + } + }, + "props": { + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "custom": { + "maintenanceTabSelected": null, + "pageTabSelected": 0 + }, + "meta": { + "name": "TabPage_Engineering" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 402, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "LeftTab" + }, + "position": { + "height": 39, + "width": 40, + "x": 80, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Desc_Label_Tag" + }, + "position": { + "height": 68.00000000000001, + "width": 340, + "x": 5, + "y": 3.99 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Desc_Label_Tag" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_Area" + }, + "position": { + "height": 20, + "width": 340, + "x": 5, + "y": 70.987 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityConfigSecurity": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_Area" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "TextConfig" + }, + "position": { + "height": 116, + "width": 350, + "y": 47 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "GO_Cfg_HasIntlkObj" + }, + "position": { + "height": 32, + "width": 340, + "x": 5, + "y": 32 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasIntlkObj" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "GO_Cfg_HasPermObj" + }, + "position": { + "height": 32, + "width": 340, + "x": 5, + "y": 2 + }, + "propConfig": { + "props.params.tagPath": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "securityDeviceConfigHMI": true, + "userHasAdvanced": true, + "userHasBasic": true + }, + "path": "Plant PAX/Popups/Global Objects/Process Faceplate Common Objects/GO_Cfg_HasPermObj" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "HMIConfig" + }, + "position": { + "height": 221, + "width": 350, + "y": 164 + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_HMI" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d 2", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "TabPolygon" + }, + "position": { + "height": 403, + "width": 350, + "y": 42 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + }, + { + "meta": { + "name": "Tab" + }, + "position": { + "height": 39, + "width": 40, + "x": 306, + "y": 3 + }, + "props": { + "style": { + "backgroundColor": "#E0E0E0" + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabBackground" + }, + "position": { + "height": 442, + "width": 350 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "caption": "P_AIn_Advanced", + "label": "Popup Name:" + }, + "meta": { + "name": "PopupID" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 346 + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "PlantPAX Version:" + }, + "meta": { + "name": "PlantPAX Version" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 369 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "UDT Version:" + }, + "meta": { + "name": "UDTVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 392 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Prime Version\")" + }, + "type": "expr" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 16, + "width": 138, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.label" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "bold", + "textAlign": "right" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Caption" + }, + "position": { + "height": 16, + "width": 145, + "x": 144, + "y": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "parent.custom.caption" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#3F3F3F", + "fontSize": "10pt", + "fontWeight": "normal", + "textAlign": "right" + } + }, + "type": "ia.display.label" + } + ], + "custom": { + "label": "Popup Version:" + }, + "meta": { + "name": "PopupVersion" + }, + "position": { + "height": 18, + "width": 292, + "x": 48, + "y": 415 + }, + "propConfig": { + "custom.caption": { + "binding": { + "config": { + "path": "view.custom.popupVersion" + }, + "type": "property" + } + } + }, + "type": "ia.container.coord" + } + ], + "meta": { + "name": "TabPage_Version" + }, + "position": { + "height": 442, + "width": 350, + "x": 3 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "view.params.selectedTab" + }, + "transforms": [ + { + "code": "\treturn value \u003d\u003d -1", + "type": "script" + } + ], + "type": "property" + } + } + }, + "type": "ia.container.coord" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonMaintenance" + }, + "position": { + "height": 35, + "width": 35, + "x": 2 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Maint.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonEngineering" + }, + "position": { + "height": 35, + "width": 35, + "x": 42 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Eng.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 2" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHMI" + }, + "position": { + "height": 35, + "width": 35, + "x": 81 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_HMI.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.selectedTab \u003d -1" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "TabButtonHelp" + }, + "position": { + "height": 32, + "rotate": { + "angle": "180deg" + }, + "width": 32, + "x": 311 + }, + "props": { + "fit": { + "height": 35, + "mode": "fill", + "width": 35 + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Nav_Faults.png", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigMaint" + }, + "position": { + "height": 16, + "width": 16, + "x": 23, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "if (tag({view.params.tagPath} + \"/Err_Timer\") \u003d 1, true, false)" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "name": "BadConfigEng" + }, + "position": { + "height": 16, + "width": 16, + "x": 63, + "y": 1 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "tag({view.params.tagPath} + \"/Err_Sim\")" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "mode": "fill" + }, + "source": "/system/images/PlantPax/Pax V4.10.05/Sts_BC_BadCfg.png" + }, + "type": "ia.display.image" + } + ], + "meta": { + "name": "GroupTabButtons" + }, + "position": { + "height": 35, + "width": 346, + "x": 3, + "y": 5 + }, + "type": "ia.container.coord" + } + ], + "events": { + "system": { + "onStartup": { + "config": { + "script": "\tself.view.params.selectedTab \u003d 0\n\tself.getChild(\"TabPage_Engineering\").custom.pageTabSelected \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root" + }, + "props": { + "style": { + "backgroundColor": "#C0C0C0", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Embedded Views/Nav_Menu/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Embedded Views/Nav_Menu/resource.json new file mode 100644 index 0000000..5e32cd2 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Embedded Views/Nav_Menu/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "3dcff8eb288d3d413962f037d15a99e45e26b3c3777329de68cb064dfd66167e", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Embedded Views/Nav_Menu/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Embedded Views/Nav_Menu/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..a51396792837da0143514ecd49231415e550ffd7 GIT binary patch literal 1950 zcmV;P2VwY$P)Dd4bz0+m)yOiZ-3 zwRyeXj*bqV?d|OjJNo_m_e!NQIywqUtsOO?KphQ=p~YfxXlO_pprcX@`pcIuKY#vI zRkgRbS5XvcKx3L(fBpKEN~NAXd*<MZ88=#9rb}N&~ghHWkIE@#4h`T*R|(bY%3zVlhc0 zB&MgQvGeBUhG#OFe1M*rnIV&AdE&AEU7BddQ(ZzxL?RKLPN&lbjS$o2aygsLszOK* zVPwizc&3g<2!T73@Kb+90fzw!`DzpMTgUA`5yxe*WYLSuB5Kb^9csQ{*7IEcf&#^o zC10u|SGdrX-=*uy+Q!D(`o?9cd@oHZe{p$HDlaZAF}D@B`{3~CvV27u?O9We1}zjz zBqk=OTAqe^^|M%+9`_i>_~MXm<1Bb1D@Ijk?;}i0Rd}^<2IXonHt9 z0?ho@mX=l_&em23-J*%r_4SsPmhSHEz5RpJ&&l5By}YK8fq{W{|s{H(z+d7(OYMug-HhY6T64UuD%CIS|QIdN~&3 ziNS_Xa0ty|9JPYN@x;jZUgF7({GIA%Urbv@xqZ62F&~W7984HcYFwN!$II6hwHDSApuABxznL=Q;}cG2 ztIy~AvmYO(&HDdG%Ypk_v<#t4Hv2Fw(NreG%JBeQL(llgD{iG3 zZ9$2%ducnW?Pl!UeQ0C)K9p~{m2QGsXTyD{wlj6PSP=}m3Cd40lj%&A*3eS93Cb(# zs?y>^mF6qc1XbntQWZ&AsxI_zj2of9TWwQ~*V2lbJ* z>mzN~N7}BBv|S%*yFSu(eWdOBNZa*arS-j&)CXve*F|wFqdhHWSBrAGJ^h^Ajqk-1 ziQT=u#KD1;);DabxXO6>@};x2)#G9F>9+3H(duSU9M7|AuCK2Th;6Oh-`3G^>^0>* z3n%o$qvNiwF7p*?mDaYhrSks45m|kG{Y%Ts%dwc>@0Tayj@n&rt!{A%6%36kibB)! z9*TrCfCR;=XA-$b=D6=sv^!z5aH{vTw+8|NOrm_XZY%GL#{j08t=7uwlgyH+TcOrw)86tAv1xA*jDcLLDt+~r-5yzH=! zJdP_@Zo;o#(NX$@tsHO|AbEQr)$pKpLsGutz(mKen{F}emL0xfH{-|AL5_u2T*iJ_ zT%1b?al>`o*o{3oQ@U8J(6q7110zH#G$Lk`VwD_*8TQ^BMSQS@J*yD6MnLC)S=uu@? zRh&4l;uf{~1 zh}ZOokVK7<*K93cQLFh#FNKlE9yy_^5lgqQRbOsuqJ?fxZ|}n5(%X0Msu8P-I zn6mt;(vwqD4QaaQ^ZCNz@X*i@=_;*XLYPs_ZnvAI@ayfj#Qs6m?&dU+eO0;H*^L`? kbbh`GeSPyM-zw<;0y}=|rG^Hz9RL6T07*qoM6N<$g3EX57XSbN literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Embedded Views/Nav_Menu/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Embedded Views/Nav_Menu/view.json new file mode 100644 index 0000000..1273cb0 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Embedded Views/Nav_Menu/view.json @@ -0,0 +1,218 @@ +{ + "custom": {}, + "params": { + "faulted": false, + "selectedTab": 0 + }, + "propConfig": { + "params.HomeSelect": { + "paramDirection": "inout", + "persistent": true + }, + "params.TrendSelect": { + "paramDirection": "inout", + "persistent": true + }, + "params.faulted": { + "paramDirection": "input", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 350, + "width": 50 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Overview" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "iconPath": "material/home", + "tabNumber": 0 + }, + "path": "Plant PAX/Popups_Old/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Alarms" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.faulted": { + "binding": { + "config": { + "path": "view.params.faulted" + }, + "type": "property" + } + }, + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "iconPath": "material/alarm", + "tabNumber": 1 + }, + "path": "Plant PAX/Popups_Old/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "PV Configuration", + "tooltip": { + "enabled": true, + "text": "Edit PV Configuration" + } + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.faulted": { + "binding": { + "config": { + "path": "view.params.faulted" + }, + "type": "property" + } + }, + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "iconPath": "material/edit", + "tabNumber": 2 + }, + "path": "Plant PAX/Popups_Old/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "lbl_Separator" + }, + "position": { + "basis": "32px", + "grow": 1, + "shrink": 0 + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Settings", + "tooltip": { + "enabled": true, + "text": "Edit Alarm Configuration" + } + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "faulted": false, + "iconPath": "material/settings", + "tabNumber": 10 + }, + "path": "Plant PAX/Popups_Old/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Infos" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "faulted": false, + "iconPath": "material/info", + "tabNumber": 99 + }, + "path": "Plant PAX/Popups_Old/Embedded Views/Icon" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/background", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Popup/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Popup/resource.json new file mode 100644 index 0000000..97ab83a --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Popup/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "1e78d9b605261d49a5257481c292e7b784989f3d12db5c9285298eb248840815", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Popup/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/AnalogInput/Popup/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..df7d09c1d5028a1a0e2728600349d803e10c2d95 GIT binary patch literal 15100 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Embedded Views/Nav_Menu/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Embedded Views/Nav_Menu/view.json new file mode 100644 index 0000000..e605181 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Embedded Views/Nav_Menu/view.json @@ -0,0 +1,168 @@ +{ + "custom": {}, + "params": { + "faulted": false, + "selectedTab": 0 + }, + "propConfig": { + "params.HomeSelect": { + "paramDirection": "inout", + "persistent": true + }, + "params.TrendSelect": { + "paramDirection": "inout", + "persistent": true + }, + "params.faulted": { + "paramDirection": "input", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 350, + "width": 50 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Overview" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "iconPath": "material/home", + "tabNumber": 0 + }, + "path": "Plant PAX/Popups/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "InOut" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "faulted": false, + "iconPath": "material/sync_alt", + "tabNumber": 2 + }, + "path": "Plant PAX/Popups/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "lbl_Separator" + }, + "position": { + "basis": "32px", + "grow": 1, + "shrink": 0 + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Settings" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "faulted": false, + "iconPath": "material/settings", + "tabNumber": 10 + }, + "path": "Plant PAX/Popups/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Infos" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "faulted": false, + "iconPath": "material/info", + "tabNumber": 99 + }, + "path": "Plant PAX/Popups/Embedded Views/Icon" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/background", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup/resource.json new file mode 100644 index 0000000..19f6617 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "8e6d7432ac8aee9c85d9bde4b07d6c8e929085698ffcf2045a47283312286306", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..a398529d75fce758d649fd05a6fae51f94e4673f GIT binary patch literal 9718 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 Ef?&erG5`Po literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup/view.json new file mode 100644 index 0000000..36079ff --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup/view.json @@ -0,0 +1,1184 @@ +{ + "custom": { + "historyTags": [ + { + "aggregate": "Minimum", + "alias": "Selected Tag" + } + ] + }, + "params": { + "tagPath": "[default]Test_Tags/P_Din" + }, + "propConfig": { + "custom.historyTags": { + "persistent": true + }, + "custom.historyTags[0].path": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + }, + "params.tagPath": { + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 300 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Nav_Menu" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.faulted": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/TgtDisagree/Alarm" + }, + "type": "tag" + } + } + }, + "props": { + "params": { + "selectedTab": 0 + }, + "path": "ROL_Popups/DigitalInput/Embedded Views/Nav_Menu", + "style": { + "borderRightStyle": "none" + } + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Desc" + }, + "position": { + "basis": "10px", + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_Desc" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Popups/label", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "icn_Interlock" + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "props.path": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/TgtDisagree/Alarm" + }, + "transforms": [ + { + "fallback": "material/lock", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "material/lock_open" + }, + { + "input": true, + "output": "material/lock" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.style.classes": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/TgtDisagree/Alarm" + }, + "transforms": [ + { + "fallback": "States/Motor/interlock", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "States/Motor/noInterlock" + }, + { + "input": true, + "output": "States/Motor/interlock" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "marginRight": 5 + } + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "Header" + }, + "position": { + "basis": "50px" + }, + "props": { + "alignItems": "center", + "style": { + "borderBottomStyle": "ridge", + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "32px" + }, + "props": { + "style": { + "classes": "Popups/General/label" + }, + "text": "Trend" + }, + "type": "ia.display.label" + }, + { + "custom": { + "historyTags": [ + { + "aggregate": "Minimum", + "alias": "Selected Tag" + } + ] + }, + "meta": { + "name": "TimeSeriesChart" + }, + "position": { + "basis": "400px" + }, + "propConfig": { + "custom.historyTags[0].path": { + "binding": { + "config": { + "expression": "{view.params.tagPath} + \"/Val\"" + }, + "type": "expr" + } + }, + "props.series": { + "binding": { + "config": { + "aggregate": "MinMax", + "avoidScanClassValidation": true, + "dateRange": { + "mostRecent": "1", + "mostRecentUnits": "HOUR" + }, + "ignoreBadQuality": false, + "polling": { + "enabled": false, + "rate": "30" + }, + "preventInterpolation": false, + "returnFormat": "Wide", + "returnSize": { + "numRows": "100", + "type": "FIXED" + }, + "tags": "{this.custom.historyTags}", + "valueFormat": "DATASET" + }, + "type": "tag-history" + } + } + }, + "props": { + "enablePanZoom": false, + "timeRange": { + "visible": false + }, + "xTrace": { + "visible": false + } + }, + "type": "ia.chart.timeseries" + } + ], + "meta": { + "name": "Overview" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{.../Nav_Menu.props.params.selectedTab}\u003d0" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "lbl_header" + }, + "position": { + "basis": "50px", + "grow": 1 + }, + "props": { + "text": "Configuration\n", + "textStyle": { + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Header_Device" + }, + "position": { + "basis": "38px" + }, + "props": { + "style": { + "fontWeight": "bold" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "100px" + }, + "props": { + "style": { + "textAlign": "center" + }, + "text": "Tag" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "basis": "175px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_Tag" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "textAlign": "center" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "Tag" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "100px" + }, + "props": { + "style": { + "textAlign": "center" + }, + "text": "Label" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "basis": "175px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_Label" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "textAlign": "center" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "Label" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "100px" + }, + "props": { + "style": { + "textAlign": "center" + }, + "text": "Description" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "basis": "175px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_Desc" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "textAlign": "center" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "Description" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "100px" + }, + "props": { + "style": { + "textAlign": "center" + }, + "text": "Off Text" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "basis": "175px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_0stText" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "textAlign": "center" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "Description_0" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "100px" + }, + "props": { + "style": { + "textAlign": "center" + }, + "text": "On Text" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "basis": "175px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_1StText" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "textAlign": "center" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "Description_1" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Settings" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{.../Nav_Menu.props.params.selectedTab}\u003d10" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "lbl_header" + }, + "position": { + "basis": "50px", + "grow": 1 + }, + "props": { + "text": "Device Info" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Header_Device" + }, + "position": { + "basis": "40px" + }, + "props": { + "style": { + "fontWeight": "bold" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "lbl_TagPath" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "TagPath:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_path" + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_DevDesc" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "Description:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_Desc" + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_Desc" + }, + "type": "tag" + } + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Core_Device" + }, + "position": { + "basis": "40px", + "grow": 1 + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/core" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "lbl_header" + }, + "position": { + "basis": "50px", + "grow": 1 + }, + "props": { + "text": "Revision Info" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Header" + }, + "position": { + "basis": "40px" + }, + "props": { + "style": { + "fontWeight": "bold" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "lbl_FcpID" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "Faceplate ID:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_ID" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "Digital Input" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_FcpRev" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "Revision:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_Rev" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "1.0.00" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Core" + }, + "position": { + "basis": "40px", + "grow": 1 + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/core" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Infos" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{.../Nav_Menu.props.params.selectedTab}\u003d99" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "LabelIn" + }, + "position": { + "basis": "32px" + }, + "props": { + "style": { + "classes": "Popups/General/label" + }, + "text": "Inputs" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Desc" + }, + "position": { + "basis": "32px", + "grow": 1 + }, + "props": { + "style": { + "classes": "Popups/General/description" + }, + "text": "Digital input:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "circle" + }, + "propConfig": { + "props.style.classes": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Inp_PV" + }, + "transforms": [ + { + "fallback": "", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "Popups/General/InOutStateOff" + }, + { + "input": true, + "output": "Popups/General/InOutStateOn" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "cx": 250, + "cy": "250", + "r": "210", + "style": { + "stroke": "#000000", + "strokeWidth": 3 + } + }, + "type": "ia.shapes.circle" + } + ], + "meta": { + "name": "Esb_FillPipe" + }, + "position": { + "basis": "32px" + }, + "props": { + "viewBox": "0 0 500 500" + }, + "type": "ia.container.drawing" + } + ], + "meta": { + "name": "HomeSig" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "InOut" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{.../Nav_Menu.props.params.selectedTab}\u003d2" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Core" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "props": { + "direction": "column", + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "32px" + }, + "props": { + "text": "Screen Width:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_0" + }, + "position": { + "basis": "32px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "page.props.dimensions.screen.width" + }, + "type": "property" + } + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_1" + }, + "position": { + "basis": "32px" + }, + "props": { + "text": "Screen Height:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_2" + }, + "position": { + "basis": "32px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "page.props.dimensions.screen.height" + }, + "type": "property" + } + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_3" + }, + "position": { + "basis": "32px" + }, + "props": { + "text": "Breakpoint:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_4" + }, + "position": { + "basis": "32px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "session.custom.breakpoint" + }, + "type": "property" + } + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "200px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup_20220520_1335/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup_20220520_1335/resource.json new file mode 100644 index 0000000..939fb6d --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup_20220520_1335/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "0cde556d944ef4cbcff3a0107a16d5c691097c01a4adcefac8726a6a522543ad", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup_20220520_1335/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalInput/Popup_20220520_1335/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..c72b1a94faa2839569f7804513e6634df45782d8 GIT binary patch literal 7264 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 Ef)3qT=l}o! literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Embedded Views/Nav_Menu/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Embedded Views/Nav_Menu/view.json new file mode 100644 index 0000000..94fade4 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Embedded Views/Nav_Menu/view.json @@ -0,0 +1,140 @@ +{ + "custom": {}, + "params": { + "faulted": false, + "selectedTab": 0 + }, + "propConfig": { + "params.HomeSelect": { + "paramDirection": "inout", + "persistent": true + }, + "params.TrendSelect": { + "paramDirection": "inout", + "persistent": true + }, + "params.faulted": { + "paramDirection": "input", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 350, + "width": 50 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Overview" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "iconPath": "material/home", + "tabNumber": 0 + }, + "path": "Plant PAX/Popups/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "InOut" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "faulted": false, + "iconPath": "material/sync_alt", + "tabNumber": 2 + }, + "path": "Plant PAX/Popups/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "lbl_Separator" + }, + "position": { + "basis": "32px", + "grow": 1, + "shrink": 0 + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Infos" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "faulted": false, + "iconPath": "material/info", + "tabNumber": 99 + }, + "path": "Plant PAX/Popups/Embedded Views/Icon" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/background", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Popup/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Popup/resource.json new file mode 100644 index 0000000..83efdf7 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Popup/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "dd81145b8116eec14466e04090a7d893de46f6bcacec90d6f307de2b9f28ec6d", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Popup/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Popup/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..1dbd05c185f78b927c54e6317dc298fdc5ea2286 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^Js`}%1SAy~UCRVg0iG_7Ar*0N4;nH8d50E!_0Q$j eUjSs12mY}=vteM2?(z%)>GyQ?b6Mw<&;$VXDHO5* literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Popup/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Popup/view.json new file mode 100644 index 0000000..b505c73 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/DigitalOutput/Popup/view.json @@ -0,0 +1,902 @@ +{ + "custom": {}, + "params": { + "tagPath": "[default]ROL/Do01" + }, + "propConfig": { + "params.tagPath": { + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 300 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Nav_Menu" + }, + "position": { + "basis": "50px" + }, + "props": { + "params": { + "faulted": false, + "selectedTab": 0 + }, + "path": "Plant PAX/Popups/DigitalOutput/Embedded Views/Nav_Menu", + "style": { + "borderRightStyle": "none" + } + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "State" + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "props.style.classes": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "TagPath": "{view.params.tagPath}" + }, + "tagPath": "{TagPath}/HMI_DigitalOutput/bCommand" + }, + "transforms": [ + { + "fallback": "States/DigitalOutput/off", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "States/DigitalOutput/off" + }, + { + "input": true, + "output": "States/DigitalOutput/on" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "borderStyle": "solid", + "marginLeft": 10, + "marginRight": 10 + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Desc" + }, + "position": { + "basis": "10px", + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "../State.props.style.classes" + }, + "transforms": [ + { + "code": "\tstring \u003d value\n\tlastSeparator \u003d string.rfind(\"/\")\n\tlenString \u003d len(string)\n\tstate \u003d string[lastSeparator+1:lenString]\n\treturn state.title()", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Popups/label", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "icn_Interlock" + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "props.path": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/HMI_DigitalOutput/bInterlock" + }, + "transforms": [ + { + "fallback": "material/lock", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "material/lock_open" + }, + { + "input": true, + "output": "material/lock" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.style.classes": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/HMI_DigitalOutput/bInterlock" + }, + "transforms": [ + { + "fallback": "States/DigitalOutput/interlock", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "States/DigitalOutput/noInterlock" + }, + { + "input": true, + "output": "States/DigitalOutput/interlock" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "marginRight": 5 + } + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "Header" + }, + "position": { + "basis": "50px" + }, + "props": { + "alignItems": "center", + "style": { + "borderBottomStyle": "ridge", + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "32px" + }, + "props": { + "style": { + "classes": "Popups/General/label" + }, + "text": "Mode" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MultiStateButton" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.controlValue": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/HMI_DigitalOutput/iMode" + }, + "type": "tag" + } + }, + "props.enabled": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/iInMode" + }, + "transforms": [ + { + "expression": "if(isNull({value}),toboolean(0),toBoolean({value}\u003d10))", + "type": "expression" + } + ], + "type": "tag" + } + }, + "props.indicatorValue": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/HMI_DigitalOutput/iMode" + }, + "type": "tag" + } + } + }, + "props": { + "orientation": "row", + "states": [ + { + "selectedStyle": { + "classes": "States/ValveSolenoid/auto" + }, + "text": "Auto", + "unselectedStyle": { + "classes": "States/ValveSolenoid/noMode" + }, + "value": 1 + }, + { + "selectedStyle": { + "classes": "States/ValveSolenoid/hand" + }, + "text": "Hand", + "unselectedStyle": { + "classes": "States/ValveSolenoid/noMode" + }, + "value": 2 + } + ], + "style": { + "marginLeft": 5, + "marginRight": 5 + } + }, + "type": "ia.input.multi-state-button" + }, + { + "children": [ + { + "meta": { + "name": "lbl_Hand_Cmd" + }, + "position": { + "basis": "32px" + }, + "props": { + "style": { + "classes": "Popups/General/label" + }, + "text": "Hand commands" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.writeBlocking(self.view.params.tagPath+\"/HMI_DigitalOutput/bPB_On\",1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "btn_On" + }, + "position": { + "basis": "34px", + "grow": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/HMI_DigitalOutput/bPBEN_On" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "States/ValveSolenoid/noMode", + "marginLeft": 5, + "marginRight": 2 + }, + "text": "On" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.writeBlocking(self.view.params.tagPath+\"/HMI_DigitalOutput/bPB_Off\",1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "btn_Off" + }, + "position": { + "basis": "34px", + "grow": 1 + }, + "propConfig": { + "props.enabled": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/HMI_DigitalOutput/bPBEN_Off" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "States/ValveSolenoid/noMode", + "marginLeft": 2, + "marginRight": 5 + }, + "text": "Off" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "50px" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "HandCmd" + }, + "position": { + "basis": "85px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/HMI_DigitalOutput/iMode" + }, + "transforms": [ + { + "code": "\tinHand \u003d (value \u003d\u003d 2)\n\treturn inHand", + "type": "script" + } + ], + "type": "tag" + } + } + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Overview" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{.../Nav_Menu.props.params.selectedTab}\u003d0" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "lbl_header" + }, + "position": { + "basis": "50px", + "grow": 1 + }, + "props": { + "text": "Device Info" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Header_Device" + }, + "position": { + "basis": "40px" + }, + "props": { + "style": { + "fontWeight": "bold" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "lbl_TagPath" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "TagPath:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_path" + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_DevDesc" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "Description:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_Desc" + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}.Description" + }, + "type": "tag" + } + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Core_Device" + }, + "position": { + "basis": "40px", + "grow": 1 + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/core" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "lbl_header" + }, + "position": { + "basis": "50px", + "grow": 1 + }, + "props": { + "text": "Revision Info" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Header" + }, + "position": { + "basis": "40px" + }, + "props": { + "style": { + "fontWeight": "bold" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "lbl_FcpID" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "Faceplate ID:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_ID" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "Digital Output" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_FcpRev" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "Revision:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_Rev" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "1.0.00" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Core" + }, + "position": { + "basis": "40px", + "grow": 1 + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/core" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Infos" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{.../Nav_Menu.props.params.selectedTab}\u003d99" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "LabelIn" + }, + "position": { + "basis": "32px" + }, + "props": { + "style": { + "classes": "Popups/General/label" + }, + "text": "Outputs" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Desc" + }, + "position": { + "basis": "32px", + "grow": 1 + }, + "props": { + "style": { + "classes": "Popups/General/description" + }, + "text": "Digital output:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "circle" + }, + "propConfig": { + "props.style.classes": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/HMI_DigitalOutput/bCommand" + }, + "transforms": [ + { + "fallback": "", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "Popups/General/InOutStateOff" + }, + { + "input": true, + "output": "Popups/General/InOutStateOn" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "cx": 250, + "cy": "250", + "r": "210", + "style": { + "stroke": "#000000", + "strokeWidth": 3 + } + }, + "type": "ia.shapes.circle" + } + ], + "meta": { + "name": "Esb_FillPipe" + }, + "position": { + "basis": "32px" + }, + "props": { + "viewBox": "0 0 500 500" + }, + "type": "ia.container.drawing" + } + ], + "meta": { + "name": "HomeSig" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "InOut" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{.../Nav_Menu.props.params.selectedTab}\u003d2" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Core" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "props": { + "direction": "column", + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Embedded Views/Icon/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Embedded Views/Icon/resource.json new file mode 100644 index 0000000..89d28fa --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Embedded Views/Icon/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "a9348006e80044e955d10794fb3ab81478f051cb443530e0375cce0856016e6b", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Embedded Views/Icon/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Embedded Views/Icon/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..acd492e2b0253cbbbd8d5dcaa4451702b577cd67 GIT binary patch literal 314 zcmV-A0mc4_P)p00032Nkl*=(#V%Y>bKfCIwDD$COIydVhhO^Tv? z8|oKlZp^oBTbib5eubob3ZEX!uNVWC}0|wB5LeXZk>2x}&0y316g1)=E`~Lkq z%d!rK!)!KF1%{&`^~aANg+k%gt5+6_Whm52(bTM1EM}5OuYgPpHLFxAx!rD$#{)OL zeECw1u&GGV8}|MD`SbYr7~*A3Fw)#7XsDoJB?d$y5g83A%vfGthKtY+tPYKyXf#UE zAawkGKlJQ&yJ++I{BO{KKmZRhEn0Z&pNmE`!&8$Ip%V-SWpuGvRL~&Av?z*|N`;jO z9Yh!&(pT`z02+i4cvKO7%C9hhQGgPC(UJNsbN_dUX*2~5*Bec+{yCUo`I?%m9AC$P zrl5IFnc-@6nekg_caBd_k55h;g7_pFJ-*(k3*y1yA@;V}WV*UeH^dgkkhaeR4QQL-X9zUL!q7By_3^ZqBmaT3I(@&%{VrOnEr5l!tu4e{qW4p z40isA!7w7x=*S2IvoOVnlM{o%Ff}!myu8Zh@{TzNUSpEQ#l?-yO$f$p5ZBYY)@bgB z-(TNkGPgPGV&t8rrKPir3&;{$?RNJLEij5tnqsTUagYkA$MdGba(DtnzEF%rqiCV9 z;uAOo(?K~%1r#{6P%@EBy?F5gZOo&vV*f=E>;d6l%KOwEH$W=J@Ihj**Rik!Zs00B*b=y?T0l5V7ww5zp-UD zH+`d{BX+y}X~tSV?n+65qdIwI6?vR`Wj*EnD*oR?zTKQr9bsUH4n%Z+U=9mk4QiWaF!=|aJX#rnyvQPMa*O}A_29!pXESRbI&I*>+Jjj zrz7n7ZGV95fSXJ@lhrW!l3+6fY8kiC6PoJ0rX})~!lc;GNZ#0|Kx5nD`!tQLMg9i3 zuSu(o&4>3!<5*~Cr(9+6>BtvL8tz$1zijE7tj%h}w^8hLu?sP$h7}Le&sRK|ibRj- zcb;U6LDsGga5SY1W$oS}B6XlA(ZA+rw4R^QdVWUh`5CR}XSAN5(RzMH>-ib2=YI`) z_!;>rMtM!o`J~mxY7~pbjFa||+LhLk ztW-UqB$%I{2MAR!J!uc1fy0rU-m{=WzfRvwPEM+?PWUO8N)@o0X2;V=@3M58!h z(~8*IKf(89O9hh4y=FF>F*Uu1qK9{Y(7`bD37QBNTPXJ}W^yO2CRFv7@o^mWp%TXT zWJBY{#YMB~UYbD7mQ|N4ae0|97EyQXho!2HqEA15nw*%RvrAC(s%w?2liHqKD>Mbw z>hw#8*;#TY0Q9)ULhpLiwV2{TI1c3k>P8p}o1iPo3M`QNsIPdC+>nT^<>h4<2EAbx zmK|vIXxT-Gu7ypyjD3G_fZ5~#a>Sv9Qu&os z7*e}Iq`s_hJZV`DjOtHj%mB;&YcLp58A`-(99LzzVwG^A!pfX4SIb;2u(RV_Tv(BA z`d3_TW-HAeXDec*ST7gqr98L>F6Q`Ru2ITCnNXJB%krTNUo2M`Q@m-v6xVYd?`_+A z+j^7ju_xQ|W?QeX1>;5C9BZI;UN;$YLYPUn{ndx9>b-`ytM{J5-FQ;4CPlR9GyV+! zvB2LoxK5qx_PJAI+jZ_i#2Pol1>vwLpe40yy^fHoS8I)Gt=CrgdQA|yhH#nAMn4<} z{C=NrbIa%3-48P?R=yvQTn%m}neQ4 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Embedded Views/Nav_Menu/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Embedded Views/Nav_Menu/view.json new file mode 100644 index 0000000..65fc77b --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Embedded Views/Nav_Menu/view.json @@ -0,0 +1,203 @@ +{ + "custom": {}, + "params": { + "faulted": false, + "selectedTab": 0 + }, + "propConfig": { + "params.HomeSelect": { + "paramDirection": "inout", + "persistent": true + }, + "params.TrendSelect": { + "paramDirection": "inout", + "persistent": true + }, + "params.faulted": { + "paramDirection": "input", + "persistent": true + }, + "params.selectedTab": { + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 350, + "width": 50 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Overview" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "iconPath": "material/home", + "tabNumber": 0 + }, + "path": "Plant PAX/Popups/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Alarms" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.faulted": { + "binding": { + "config": { + "path": "view.params.faulted" + }, + "type": "property" + } + }, + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "iconPath": "material/alarm", + "tabNumber": 1 + }, + "path": "Plant PAX/Popups/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "InOut" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "faulted": false, + "iconPath": "material/sync_alt", + "tabNumber": 2 + }, + "path": "Plant PAX/Popups/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "lbl_Separator" + }, + "position": { + "basis": "32px", + "grow": 1, + "shrink": 0 + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Settings" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "faulted": false, + "iconPath": "material/settings", + "tabNumber": 10 + }, + "path": "Plant PAX/Popups/Embedded Views/Icon" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Infos" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.selectedTab": { + "binding": { + "config": { + "bidirectional": true, + "path": "view.params.selectedTab" + }, + "type": "property" + } + } + }, + "props": { + "params": { + "faulted": false, + "iconPath": "material/info", + "tabNumber": 99 + }, + "path": "Plant PAX/Popups/Embedded Views/Icon" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/background", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Popup/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Popup/resource.json new file mode 100644 index 0000000..c66d4d6 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Popup/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "f75c7b0be6aa2af8a313b4a3db983db686322639c70d3d100d10166cae354bfb", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Popup/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/Motor/Popup/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..2ebd3f4d82f240e5bb1e9db143da37f68c934113 GIT binary patch literal 10124 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 Eg66Ph2LJ#7 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/ValveSolenoid/Popup/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/ValveSolenoid/Popup/view.json new file mode 100644 index 0000000..ddda0dd --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/Plant PAX/Popups_Old/ValveSolenoid/Popup/view.json @@ -0,0 +1,1556 @@ +{ + "custom": {}, + "params": { + "tagPath": "[default]Test_Tags/P_ValveSO" + }, + "propConfig": { + "params.tagPath": { + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 300, + "width": 300 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Nav_Menu" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.params.faulted": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/IntlkTrip/Alarm" + }, + "type": "tag" + } + } + }, + "props": { + "params": { + "selectedTab": 0 + }, + "path": "Plant PAX/Popups/ValveSolenoid/Embedded Views/Nav_Menu", + "style": { + "borderRightStyle": "none" + } + }, + "type": "ia.display.view" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Desc" + }, + "position": { + "basis": "10px", + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_Desc" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "classes": "Popups/label", + "textAlign": "left" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "icn_Interlock" + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "props.path": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/IntlkTrip/Alarm" + }, + "transforms": [ + { + "fallback": "material/lock", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "material/lock_open" + }, + { + "input": true, + "output": "material/lock" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.style.classes": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/IntlkTrip/Alarm" + }, + "transforms": [ + { + "fallback": "States/ValveSolenoid/interlock", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "States/ValveSolenoid/noInterlock" + }, + { + "input": true, + "output": "States/ValveSolenoid/interlock" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "marginRight": 5 + } + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "Header" + }, + "position": { + "basis": "50px" + }, + "props": { + "alignItems": "center", + "style": { + "borderBottomStyle": "ridge", + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "32px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\"Mode: \" + if(tag({view.params.tagPath} + \"/Sts_Prog\"), \"Program\", \"Operator\")" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Popups/General/label" + } + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.writeBlocking(self.view.params.tagPath+\"/PCmd_Prog\",1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "btn_Close" + }, + "position": { + "basis": "34px", + "grow": 1 + }, + "props": { + "style": { + "classes": "States/ValveSolenoid/noMode", + "marginLeft": 5, + "marginRight": 2 + }, + "text": "Auto" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.writeBlocking(self.view.params.tagPath+\"/PCmd_Oper\",1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "btn_Open" + }, + "position": { + "basis": "34px", + "grow": 1 + }, + "props": { + "style": { + "classes": "States/ValveSolenoid/noMode", + "marginLeft": 2, + "marginRight": 5 + }, + "text": "Hand" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "50px" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "lbl_Hand_Cmd" + }, + "position": { + "basis": "32px" + }, + "props": { + "style": { + "classes": "Popups/General/label" + }, + "text": "Hand commands" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.writeBlocking(self.view.params.tagPath+\"/XCmd_Close\",1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "btn_Close" + }, + "position": { + "basis": "34px", + "grow": 1 + }, + "props": { + "style": { + "classes": "States/ValveSolenoid/noMode", + "marginLeft": 5, + "marginRight": 2 + }, + "text": "Close" + }, + "type": "ia.input.button" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.writeBlocking(self.view.params.tagPath+\"/XCmd_Open\",1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "btn_Open" + }, + "position": { + "basis": "34px", + "grow": 1 + }, + "props": { + "style": { + "classes": "States/ValveSolenoid/noMode", + "marginLeft": 2, + "marginRight": 5 + }, + "text": "Open" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "50px" + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "HandCmd" + }, + "position": { + "basis": "85px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Sts_Oper" + }, + "type": "tag" + } + } + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Overview" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{.../Nav_Menu.props.params.selectedTab}\u003d0" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "AlarmStatusTable" + }, + "position": { + "basis": "10px", + "grow": 1 + }, + "propConfig": { + "props.filters.active.conditions.source": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "transforms": [ + { + "code": "\tvalue \u003d value.replace(\"[\",\"prov:\")\n\tvalue \u003d value.replace(\"]\",\":/tag:\")\n\tvalue \u003d\"*\"+value+\"*\"\n\treturn value", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "columns": { + "active": { + "activeTime": { + "enabled": false + }, + "name": { + "enabled": false + }, + "priority": { + "enabled": false + }, + "source": { + "enabled": false + }, + "state": { + "enabled": false + } + } + }, + "enableAcknowledge": false, + "enableDetails": false, + "enableHeader": false, + "enableShelve": false, + "enableUnshelve": false, + "filters": { + "active": { + "conditions": {}, + "states": { + "clearUnacked": false + } + } + }, + "pager": { + "enabled": false + }, + "refreshRate": 1000, + "rowStyles": { + "activeAcked": { + "priorities": { + "low": { + "backgroundColor": "#E25353" + } + } + }, + "activeUnacked": { + "priorities": { + "low": { + "backgroundColor": "#87F2A6" + } + } + } + }, + "selection": { + "active": { + "mode": "none" + }, + "shelved": { + "mode": "none" + } + }, + "toolbar": { + "enableActiveTab": false, + "enableConfiguration": false, + "enableFilter": false, + "enableFilterResults": false, + "enablePreFilters": false, + "enableShelvedTab": false, + "enabled": false + } + }, + "type": "ia.display.alarmstatustable" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.tag.writeBlocking(self.view.params.tagPath+\"/PCmd_Reset\",1)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "basis": "34px" + }, + "propConfig": { + "props.textStyle.color": { + "binding": { + "config": { + "path": "this.props.enabled" + }, + "transforms": [ + { + "fallback": "#808080", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "#808080" + }, + { + "input": true, + "output": "#000000" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "primary": false, + "style": { + "borderStyle": "solid", + "classes": "Popups/General/background" + }, + "text": "Reset" + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Alarms" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{.../Nav_Menu.props.params.selectedTab}\u003d1" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "lbl_header" + }, + "position": { + "basis": "50px", + "grow": 1 + }, + "props": { + "text": "Configuration\n", + "textStyle": { + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Header_Device" + }, + "position": { + "basis": "38px" + }, + "props": { + "style": { + "fontWeight": "bold" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "100px" + }, + "props": { + "style": { + "textAlign": "center" + }, + "text": "Tag" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "basis": "175px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_Tag" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "textAlign": "center" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "Tag" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "100px" + }, + "props": { + "style": { + "textAlign": "center" + }, + "text": "Label" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "basis": "175px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_Label" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "textAlign": "center" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "Label" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "100px" + }, + "props": { + "style": { + "textAlign": "center" + }, + "text": "Description" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "TextField" + }, + "position": { + "basis": "175px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "bidirectional": true, + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_Desc" + }, + "type": "tag" + } + } + }, + "props": { + "style": { + "textAlign": "center" + } + }, + "type": "ia.input.text-field" + } + ], + "meta": { + "name": "Description" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Settings" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{.../Nav_Menu.props.params.selectedTab}\u003d10" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "lbl_header" + }, + "position": { + "basis": "50px", + "grow": 1 + }, + "props": { + "text": "Device Info" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Header_Device" + }, + "position": { + "basis": "40px" + }, + "props": { + "style": { + "fontWeight": "bold" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "lbl_TagPath" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "TagPath:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_path" + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.tagPath" + }, + "type": "property" + } + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_DevDesc" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "Description:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_Desc" + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Cfg_Desc" + }, + "type": "tag" + } + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Core_Device" + }, + "position": { + "basis": "40px", + "grow": 1 + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/core" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "lbl_header" + }, + "position": { + "basis": "50px", + "grow": 1 + }, + "props": { + "text": "Revision Info" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Header" + }, + "position": { + "basis": "40px" + }, + "props": { + "style": { + "fontWeight": "bold" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "lbl_FcpID" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "Faceplate ID:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_ID" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "Valve Solenoid Control" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_FcpRev" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "Revision:" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "lbl_Rev" + }, + "position": { + "basis": "30px" + }, + "props": { + "text": "1.0.00" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Fct_Core" + }, + "position": { + "basis": "40px", + "grow": 1 + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/core" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Infos" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{.../Nav_Menu.props.params.selectedTab}\u003d99" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "LabelIn" + }, + "position": { + "basis": "32px" + }, + "props": { + "style": { + "classes": "Popups/General/label" + }, + "text": "Inputs" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Desc" + }, + "position": { + "basis": "32px", + "grow": 1 + }, + "props": { + "style": { + "classes": "Popups/General/description" + }, + "text": "Closed feedback:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "circle" + }, + "propConfig": { + "props.style.classes": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Inp_ClosedLS" + }, + "transforms": [ + { + "fallback": "", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "Popups/General/InOutStateOff" + }, + { + "input": true, + "output": "Popups/General/InOutStateOn" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "cx": 250, + "cy": "250", + "r": "210", + "style": { + "stroke": "#000000", + "strokeWidth": 3 + } + }, + "type": "ia.shapes.circle" + } + ], + "meta": { + "name": "Esb_FillPipe" + }, + "position": { + "basis": "32px" + }, + "props": { + "viewBox": "0 0 500 500" + }, + "type": "ia.container.drawing" + } + ], + "meta": { + "name": "HomeSig" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Desc" + }, + "position": { + "basis": "32px", + "grow": 1 + }, + "props": { + "style": { + "classes": "Popups/General/description" + }, + "text": "Opened feedback:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "circle" + }, + "propConfig": { + "props.style.classes": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Inp_OpenLS" + }, + "transforms": [ + { + "fallback": "", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "Popups/General/InOutStateOff" + }, + { + "input": true, + "output": "Popups/General/InOutStateOn" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "cx": 250, + "cy": "250", + "r": "210", + "style": { + "stroke": "#000000", + "strokeWidth": 3 + } + }, + "type": "ia.shapes.circle" + } + ], + "meta": { + "name": "Esb_FillPipe" + }, + "position": { + "basis": "32px" + }, + "props": { + "viewBox": "0 0 500 500" + }, + "type": "ia.container.drawing" + } + ], + "meta": { + "name": "WorkSig" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "LabelOut" + }, + "position": { + "basis": "32px" + }, + "props": { + "style": { + "classes": "Popups/General/label" + }, + "text": "Outputs" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "Desc" + }, + "position": { + "basis": "32px", + "grow": 1 + }, + "props": { + "style": { + "classes": "Popups/General/description" + }, + "text": "Close command:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "circle" + }, + "propConfig": { + "props.style.classes": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Val_Sts" + }, + "transforms": [ + { + "fallback": "Popups/General/InOutStateOff", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "Popups/General/InOutStateOff" + }, + { + "input": true, + "output": "Popups/General/InOutStateOn" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "cx": 250, + "cy": "250", + "r": "210", + "style": { + "stroke": "#000000", + "strokeWidth": 3 + } + }, + "type": "ia.shapes.circle" + } + ], + "meta": { + "name": "Esb_FillPipe" + }, + "position": { + "basis": "32px" + }, + "props": { + "viewBox": "0 0 500 500" + }, + "type": "ia.container.drawing" + } + ], + "meta": { + "name": "HomeCmd" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Desc" + }, + "position": { + "basis": "32px", + "grow": 1 + }, + "props": { + "style": { + "classes": "Popups/General/description" + }, + "text": "Open command:" + }, + "type": "ia.display.label" + }, + { + "children": [ + { + "meta": { + "name": "circle" + }, + "propConfig": { + "props.style.classes": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "tagPath": "{view.params.tagPath}" + }, + "tagPath": "{tagPath}/Val_Sts" + }, + "transforms": [ + { + "fallback": "Popups/General/InOutStateOff", + "inputType": "scalar", + "mappings": [ + { + "input": 0, + "output": "Popups/General/InOutStateOff" + }, + { + "input": 2, + "output": "Popups/General/InOutStateOn" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "cx": 250, + "cy": "250", + "r": "210", + "style": { + "stroke": "#000000", + "strokeWidth": 3 + } + }, + "type": "ia.shapes.circle" + } + ], + "meta": { + "name": "Esb_FillPipe" + }, + "position": { + "basis": "32px" + }, + "props": { + "viewBox": "0 0 500 500" + }, + "type": "ia.container.drawing" + } + ], + "meta": { + "name": "WorkCmd" + }, + "position": { + "basis": "25px" + }, + "props": { + "style": { + "marginTop": 2, + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "InOut" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{.../Nav_Menu.props.params.selectedTab}\u003d2" + }, + "type": "expr" + } + } + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/General/core", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Core" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "props": { + "direction": "column", + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/General/Nav_Menu/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/General/Nav_Menu/resource.json new file mode 100644 index 0000000..5102882 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/General/Nav_Menu/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "cea9e04947d7723fb444ce8baa429196edd29041c1f857126e0d7ebb9300a4d3", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/General/Nav_Menu/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/General/Nav_Menu/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f712c315f1603cebaa7b7af9f52a789729d6a0 GIT binary patch literal 1938 zcmV;D2W|L?P)aG`v2Lb{LGcW^#phja-smedG-<}?ZIq>>r zYqw(8tFC6|^Lk!)zkdB%nXfM?jPXIQawC_o&!NG6|Ni~%?hXyc_|jB>rc$X|t%e3; zeAy}J>Gt;a{{DVrW5a5-j*pK+fiY5Yp(wr{jYfeE3=G(8HYhMgP)4bhfk41wvAA3= zmSs^poleG#e*5;V)oS_uexT@;?Gz~JXrM5(UaxyR9%_J!($b}`udjdn_`z|U+wHd7 z?bLwYGetz!r`R3;4Firja{aV7M zDP6lUzF)t7ZEbC#d({$X+B*dnc4>?f3h{VcrGa7?)6>(KBGkIoq27~7Bq)u7Mko}5 zo$YoTb)isrf)0nnc!YZHBh(sbPT`HBjGzxrLlB9CE%*h1}co-hi zSC|y76N!&Pg~7lyA1&zIkxuA#09A|~z$ z8U(lsUoCTdO{}X5J!tYy5CP3EEX>TzKu1+D(iE+V^~I$n>;^s^0OUug!RC&c$8_mnT{UqWRL(G?&@x;cPH*XO8{??DR}s?eQ5*bP;5VCJ-2kGa?ze&@vYvnN-GlTgS8%-<% z8u+PI(9u}@Og0x!B*KwTtD!KKER)T{Thtw-n?a!=VcD_%@N9?OPQpIx3Iu|si!%L) z#s}pZU*Fl?gS+Agq=&NAVx5?nD4t(n?Fe0!eL$-KZ|QeB`}>_ZPoRSxrng3zm>kX=qo$W*unLZL8f zxvgXpq;IPg8-R>*Kbg|zJJ6&I{i)D4+oxz$oK3 zuzF@|i&la3P1amin4O)Kvm6^ucA$(}^8vQI^7sNw+TPh&SX}f>O-)WtBD@4wLzoqz4TY-h$|Ha+=-P+{DgWURi;BURyWNINXRc;SfUr zfn!joh3`_)`5-w51rb3IUP?XNurqXh10_eM)q*{#-8B@|?FI}2y;}A6Csy8IB#1g3 z3QdOvTVa5oY>f+0kS8Jc$PXycWH##M`&Z;SgMC;qur0t*yaJ{%@!EA(D6g?MJBu{7@n2R)vt4<9~|I7rs9|+_%n4nc zIx%L=roRgl+HRkko+j~ecUPgQKV5MA*w`33QuKZT{n61;1aDUBRanuZ;}g6yc?%gR zz0m6XTa@>~;LwmZ?6YQ%?J6{+{8_<2H;37!j;dahJK3XNfu>`rbQ*`)*x2~s;Gj!B zzeh$!j5Jl?J7FLBcQ&8ToMtoGY@u}CgI0CuQs7fmlpNx5p=$JlPt#g?rOon6o8^@@ z%PVb`SK2JEv{`;bT0Nv6k{ABXRBa*Eds0X~Se9EzMS99bN6=8x5h6VK1`g+lPS967l_jW%OT)rXFxrL)$2 z{&GIw{FqZ@F4vsTNz)n0mJ}VSI_jxRgRvhpMlzS7%3ZK>Ymn8-?OgHNnQpLY2{qbG zC|lhwR_aFc661=EY$NyUS_1d69dUgH&?qt~_VBd3BOgl{My?-J6%38sjzUg~dfA z+u=xLY_Vvw0rGgY5R}7oY8cQUYTD4l&-@M4k91dI;$lpoB5p+TR z9*c|5td}`FuNKAT#-{EcOst%3)BKyJ(-w;bn#||{A1z9eP{=^Dnu{y#n2d5V&99dv zER~t23Yc$?$Ahu)f~fTU5KR>hk54YIuKtKdnY3*8+S;1==0$A4eP?P4^Lth-4G$0h Y1DUe3ta)7rwg3PC07*qoM6N<$f)D=7tN;K2 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/General/Nav_Menu/view.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/General/Nav_Menu/view.json new file mode 100644 index 0000000..7dba455 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/General/Nav_Menu/view.json @@ -0,0 +1,358 @@ +{ + "custom": {}, + "params": { + "ErrorBorder": false, + "ErrorSelected": false, + "HelpSelect": false, + "HomeSelect": true, + "ParamsSelected": false, + "TrendSelected": false + }, + "propConfig": { + "params.ErrorBorder": { + "paramDirection": "input", + "persistent": true + }, + "params.ErrorSelected": { + "paramDirection": "inout", + "persistent": true + }, + "params.HelpSelect": { + "paramDirection": "inout", + "persistent": true + }, + "params.HomeSelect": { + "paramDirection": "inout", + "persistent": true + }, + "params.ParamsSelected": { + "paramDirection": "inout", + "persistent": true + }, + "params.TrendSelected": { + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 350, + "width": 50 + } + }, + "root": { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.HomeSelect \u003d \"true\"\n\tself.view.params.HelpSelect \u003d \"false\"\n\tself.view.params.TrendSelected \u003d \"false\"\n\tself.view.params.ParamsSelected \u003d \"false\"\n\tself.view.params.ErrorSelected \u003d \"false\"" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "icn_Home" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "view.params.HomeSelect" + }, + "transforms": [ + { + "expression": "toBoolean({value})", + "type": "expression" + }, + { + "fallback": null, + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "#e0e0e0" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "color": "#808080", + "path": "material/home" + }, + "type": "ia.display.icon" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.HomeSelect \u003d \"false\"\n\tself.view.params.HelpSelect \u003d \"false\"\n\tself.view.params.TrendSelected \u003d \"true\"\n\tself.view.params.ParamsSelected \u003d \"false\"\n\tself.view.params.ErrorSelected \u003d \"false\"" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "icn_Trend" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "view.params.TrendSelected" + }, + "transforms": [ + { + "expression": "toBoolean({value})", + "type": "expression" + }, + { + "fallback": null, + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "#e0e0e0" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "color": "#808080", + "path": "material/trending_up" + }, + "type": "ia.display.icon" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.HomeSelect \u003d \"false\"\n\tself.view.params.HelpSelect \u003d \"false\"\n\tself.view.params.TrendSelected \u003d \"false\"\n\tself.view.params.ParamsSelected \u003d \"true\"\n\tself.view.params.ErrorSelected \u003d \"false\"" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "icn_Params" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "view.params.ParamsSelected" + }, + "transforms": [ + { + "expression": "toBoolean({value})", + "type": "expression" + }, + { + "fallback": null, + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "#e0e0e0" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "color": "#808080", + "path": "material/build" + }, + "type": "ia.display.icon" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.HomeSelect \u003d \"false\"\n\tself.view.params.HelpSelect \u003d \"false\"\n\tself.view.params.TrendSelected \u003d \"false\"\n\tself.view.params.ParamsSelected \u003d \"false\"\n\tself.view.params.ErrorSelected \u003d \"true\"" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "icn_Errors" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "view.params.ErrorSelected" + }, + "transforms": [ + { + "expression": "toBoolean({value})", + "type": "expression" + }, + { + "fallback": null, + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "#e0e0e0" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + }, + "props.style.borderStyle": { + "binding": { + "config": { + "path": "view.params.ErrorBorder" + }, + "transforms": [ + { + "fallback": "none", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "none" + }, + { + "input": true, + "output": "solid" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "color": "#808080", + "path": "material/error", + "style": { + "color": "#D9D900" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "lbl_Separator" + }, + "position": { + "basis": "32px", + "grow": 1, + "shrink": 0 + }, + "type": "ia.display.label" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.view.params.HomeSelect \u003d \"false\"\n\tself.view.params.HelpSelect \u003d \"true\"\n\tself.view.params.TrendSelected \u003d \"false\"\n\tself.view.params.ParamsSelected \u003d \"false\"\n\tself.view.params.ErrorSelected \u003d \"false\"" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "icn_Rev" + }, + "position": { + "basis": "50px" + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "view.params.HelpSelect" + }, + "transforms": [ + { + "expression": "toBoolean({value})", + "type": "expression" + }, + { + "fallback": "", + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "#e0e0e0" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "color": "#808080", + "path": "material/help" + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Popups/background", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/Velocity/PF525/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/Velocity/PF525/resource.json new file mode 100644 index 0000000..6406f18 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/Velocity/PF525/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModificationSignature": "037acb73bc9c7d4be563670d411fe5f43ecc6e8e52af8ec104c7864d940c11b8", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:11Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/Velocity/PF525/thumbnail.png b/project/dcframe1-hmi1/Core/com.inductiveautomation.perspective/views/PowerDeviceObjects/Popups/Velocity/PF525/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..45d6426e5d19baf1d922fb651eaeb8faf04ce123 GIT binary patch literal 23705 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 hZOJ!6Fwg{_-) zzwWKeOG=k+>#}95E!mcoqIlvl#T&)nzzbD8@*j{tgMWfomfSrvJ$-uS+`h#*H8pLu zy|wpVYke+j%k#heqyOc9=l@^T`al2Wzxrpp|Mma)zwhqu{zwX}u zPlrGM!`7s{q5dx>963fa0$jwJa}LBpyY7%AKl&k>+QLRpZ?k1-QV*1ck`}Jr!>38vl=F>6Sl@n1lhX-a{O5Of>)*V=Nn8H>?fia*Mf?l#c^Cgj zc>Ry(`5xxqEMY}2bJUNA{X^IPB%DvTfq%MPhxdHEyZgJZ*YT5gZkpsY{^TbqnfK(s zy1V;(x7j7HCi67U;GgtkJHO+f-rfB)=gQ_(_C@p1m)SqO?b1K~>7TI6fBe&56{o+N zcTByz`06o&a3{%3xM-`@Rw$foDwslH_Ue*$&-`{sU|seAj?ybac^(*A*WPCr-6KZL#e zx}m$IE1naVf8KiUkhEQKoOk&@hKqlJo5M)|EriU1zgKXN!weh${OM&jfA{W=dWo3! zFkkoty8svLWDai+k%eo23y|tJPvrFQ9QvQ1=i$D*gkg42%<~FglJ6mR4dIxbn}@?Z z$2C;`AHB(!*}^yqB7!6RB*BtX4(^x-s8r;y?=_}qKmVa#ekhflc}y2sA1~B47QPOa9&nfP%mlC7w8=Q7 zjJsUuEys%ieY(=#ANPtdT%#Z-l(Ng)c;_B%PhkyTfjbr?3G!nO1DaDkD%Da`_|5!* zCJBa4k~ zWmlsz7M8zZzMa|5B@a7i{~*k>$XFO~1s_S2oM(Sf&nk$n6_U150I^U6QzGmE_OFrIyu3)MB`t@K}3ZhqJ z@_r8k!5ty=u#EKJk_`4spI$cqHhYuKnmOlI8?M;#q`nB6aU@kGt0%o{M=OtC*Tzc(8GykkGueabfSSIHqWd2c+ zr4H^mZ)!CoLL4e@!~c0-@10Nyar8CAa4t}{_@ig&UE zc*_n?F`oC1JI!?%H&U0eGrGD(E=#94gu&n%pl=_t@fe2^0|Bd^D?paYI2c~uXffrZP4A*aSEn>MYT`2bo9m^Du!_|QF_LRmTfkm8ML&bu7bxYn^?$_}*P7XJHDt>{dU%DRsLmisc{Q)wmks`!|KpeMxfa zO_qPY;~J8)1ju=2tQ+IcSs#rvseH|PM88gYYTi_1&U%Pkws87{#XxiFISLpOOWcqL z7~n;D3qzNLMSDo8>zq;%6nqRdP5lB17V0Grw=-(&zccVWlVbkxt0b@E&@Cv?57XC+ z-wyn|R6vnM_T8n;E3@Er9-4%58`7n(R1a(=#_)x650!XI=4??w()2qPv^qlBJ1C!giKO^Q=1EWA2se zn?b)}BrJ1u1p4=xnV1O@_RH_)t)adwhv#l2{LM1IA!g+k#UJe*^?CDt$KIh7R8Y!q zw}5?P8X7QDfUPhl)Z3~4_L&;&o0%@(63Xx=W-3y7s20z(wmBje19GhDY^vyeW<0XZZ)=e9(6%}^POh*^{GtO;~>h0I^ zLGP<0<)(#iH+qw_-*^G#`g)IEUVpns?^Fu)MZE2R@<8l4!f%h@n;IUenOJ|Vh<}h{ zo9HF`=Sfh1a2AvK21zWK6!m*%k>5~bKnZZdd)q<%XeRK%n_ivuYc~C2!|5*xKi-Vn zbdyxSg)DvxS5VJn;Sz{so9<@*l)9W}o`qixKhNycNObIdoAvLxW9mJ7{LKfxZv2n) z?%mpan~Yy%IxLglzUUE9-xuuS?t zy2SbVYen!n0N_4e;a6z9(*AR{e^K6Fj0bS$O-6i)=9}Ib^U^yTOh5Xjn`gdFlgcRH zbP~?gAM3Qt9n^0Hq-0#G=FG`5|>My^Vh+75R6eD`mRry6nbTnY* zpz#Vwn+e1o>eB`<(zziX8t;|LZ|<*AzcuW?CF<0V8*IO?pGJMJP5MXrY1H@Hq<^HJ zMt!eM`a)r_%xw{~=(aER?)LLb9Y@2rk&XsxzVIs43(Hr&MDnw_(1RS%0$)FSrWY_+ z8gJy-Tkpi0w;sk1QS}`fd{$9Z{ELS8^K4$h4`aSPOsH;c{&z^Y+;$0+jsCfF_v~^X zlV(0hfaK(F2|0J!%dEjgGJR2xzpy;i=QhHxS|0g%-{uG^^7}WYQvUlLlpi!u-U{TK zE}?#8`F`a1ez_f6g^B~Io@?xV{m-3Z?@P&)0G9PHQ214ZsrN$sHo~8m_3Y1IX^{zi z6J_digX35G8!rW(9-RGrP?H2^kxJaHg9Wp`bxWy~&1U$aAA*5AHz>EC2fmfdds^(3 z1@e=*`!3$_t)YHs?0>}O-|($5^X-EADm5MYoro5n&za_>>-^lBc;Bha=U3DpI>7SZ zjp+MG>(7IFQDyj>Pv7gvC~y4vYvuTjJvOKM8@*-<;=3)bw;AxR+Wxf^_+AE3zcB@# zJ5t{E=7QDI7!0BN1=&zk@+rGBTL_+ezJztlP1 zE4%Z4`{uK0n0t>uV5VE^X71cjf39`&`Mj>Zyx-1wrjGk9S{oc;;w>h`1L8n{+QC4WK&E(e%{_n^)>JRGIck_+< zvpV*5zP;%lyqj3l;d3*SdXL55uf1Pyhf#m5L-k893IXh?sKMj6 zVFq!|FDqsI{Sl^qvpA`;)wgXhXMC$osNW$@zRCz0v$Lyv+Y_PwOxEkHb9o5seIm3y z5Onb;+JwIh!VKH}Un&ScK3;nh1XH+)lvhCzSFeLW{Z57Wiy+Jo96k~()5TZE9$ydmZdUQvkB5G-71Up9^M5H1{>0|b zdr$qPHvb#c__29aes%M|lJKj|kHdI=HuSrvt3Lus>i6*CpE|31Uk!a<7*c=OW4?pX z--V#x!jo@L`rjU6{g4;GON%cgPJQoS>bt(_`GZAzW3ttJqv@S<^k1Cbyt9+1<$uw>`7;eU>W@BF{T@hCfA(Sd*QY?# z*JGfsH3)+~_sA-7VNRRTn6i~2%=xJHdZ4Z#H|H<3R4MB|ud0@&h$Ss$313fcY+gzo z+TCJNO8J`Z%!Bet^+j62*Fy2cLaz!t_ha?;v$&kE)ediZfG!us8)OQ3sv6h58loeO zN9JntOc43xs0!`Q5puyUqsg2k-SN6Js-;jDjEfcwPqvhg%7~6O?oI}OEUaV&e5DCMhBX?s)B+c4o=h-@^PwdzZgC7Mr|H_rhp6&qWb9gn=)h26tXzA zs_uZN_0piPwKdgOPbh{!%4I4DFn0au$@T}@@znyet`K7qDJ-*brTiR-?KTh!?2o3P zH_XN^bL_J%RwuXfrsb!!B$|CtJw238R9G`dAeF1)*9&#zc-70@blg8BBw`G9Pi%yq z(rV~ZAJR7HI)i0;7w;L%H)!3bpF)wdb=;G%8Fb1K_e?70X6m_@g!Ep)Wo&s6?{e$-}2YTINY2~@5*M(YA}Mjr*wgCjAj*EfGj#Ma+b)M zP|kx(2xA25Rb$#i7@`kG85b!pJqBY8ku3uDHb!>C858Pgq<9?EM?G=`AI4^-k6 zlUh5gaO|3-VLCP3^rpY0A@sI$P#^SqU0V#7XaTN+#*{-6Pkvo^A=xk{aID3;yizhJ zz04n|z|URBAG`>gj8%~XVz|un3xqrB6ou8Asw@$F41eBptZX&w~plU z4j=UqJ8YHE_~?qm&aK5yK*Ft(2Kx^C$8+MZ+JFp`jf_K9s$Syvu7aI=Q&MW5k$epk zPbphDtGLW;`qY}iiJ@y%E=C)zcq;Uqk71}Bki2SizpDeOA40;N0_+A6-jr4oD+osb z%W)owq_XMkKJn4P4NV<29P*jLwnr(Cb_z|o)mC?9ddkKXjzcVmqpQa}WcDPHgwRI| z)lb1f0r$H(X>!CVBs#bOebNN?Z2HGfp&uJQlS`(wsVGdiDk*`TB-e~5Q}89uuu6lm z$Na1@+@lk21BClM_KJg~uu{@m9v6WPM6={uWt9AXPR0UERrwc|@*fM~VpGT&D{g~3*oI(rf6a-rn zi~D65aBU2=mawg)l*D&OW3(6UA@P)Z2joF;*ql641QBvwlOGV`T`TcPl1iHfiPDwI z(Dor0w_8e@?5vzp!!48Il@#GY3#7VMD;x)M ze6$m#Ih3AsT*Z8=d*ZAlhI5DzqfIVWyyLuFxTvaB0vTm*VaamxYEsZXclK zCwBt6n;6%aR-=!dRgQt3jAlD1W5h;2h+PIdhG!ZHEm!w#+@Pw_T$xAx`Se`h+ExFd1)_`F{ zozhs3*t|hx>n6gogF@bif*F~3MXR)X(O89b#)zYwI`{PwNEo+e9J-9x;Eh}Lf$!y} zC+t6ZxGO?7_duldE-ijC5J4L5pJKLs@URG5(_S^YjZiQ@NpdjV9JdfCkp2w&cEN~Ao zUtl#LSQDkf6gerDBiQWdtREC6t+q)fZ`MYDu70peu-HFl*t|NTSO$~WXqX8px4sgP zmbJ+gUDD7kz&4NS-b)$hL)bV+?BV%YcPA|KgW(OG6&Tl;HaL)fPri5s5g649BV7y< zEvWE-n{Hn#Zsh@o>%BsL6K@y0|hrrPF4i)~*pQu&%SNiG(9@$0e%<#-Kse zbzHPTZ9b}EU+YzWF#`9|=Htgel$xj!8%pu>+VRZ2HiAk76pSSCl8J2;cuoT)6$H|D zgIR^s7TeL3@?-2PLk={E>2^wxMC>Y~RmR;Ybv95DT6w_~AARY_!C0QPlMcB!OeTqr zkZTLgm!6P7Kf^Pv4pF_`*?80Xf-|W*1y~Ef%Ij0)Z=Wa!e3My8bs)yrVX$U1t4A!D zox?JfkIB}l%ps_`y}@pYC#*6%xb{lvx;}sGQ^s^qu)o)Z<-w;-OxgAFoO#QmfpBLA zTkO`Ys*(Yu<+V4(mPddTVYrPfIih`O)oZ)WkP-TmGa47OQk#I!+EhTac2MpqnCu4V zY-@=_sIhLImgd<9wFrsWWj?V2deue}&FDg*BL)v1lH8Ex48JXWxp|fn#pBX(8&N&Tmj9NJ*D+3)5QJN4>xQeU72ty24JI2j-6j3u^fAp&6^N4 z`jhDmJEK~mh(JYo&K02PV$+-fBH4(7

(%;8d=NMrDb|zV)ZG&xRO_#DgP|dPY1|p2@lL8dtHRidE!MaeR*CMHwj9SCmLkSq)JfsKoN#(!NURpD< zNyn8!b2JrVE_bB$De#NNM$5C=petCKvxj5RVf#=SkISUSjz=?3MwKh>(m273oBO4C`6*7Ynkr%~ta2lJ>8m~Oo0dKnLPFw{$dP z7E$eOq*w2B@bDOZ589#c}( zSc(h8D<5+{T5J4~%fyUUSb9?Z_JLAI>4dzl18y{M<2nWeL*vcXoz`qBahI%G1qKsm zHZ7G|eLWc-;Tp&t(E~?Yaqo`z%3q}?&AHwgRw5fF? z)E#roT*2ivrq~P7=oX;D4Ma;Z8vCAds`$~WQSFu@5QEBqz&n2B1>6}`*O|o4oKby% z%@(z$-&@TpPb3ZmUn{EfxfSNNM%j%N=>A-%qjM4zwnBrG0)1=J?x3QKWFu$gJE^h9 z?1MGA1F+M8M|ad&iRjGA@yb@h9#IkByJ6XJR9agj5j8J`W z>6*>>ngM&wN7Mci3(?W`weYJ(0 z_C0X~37SN+d9Q}VnsQHD;KpJYE5WXg4%C*5R(DaD{ zHs^zYuC=-)ju?Fcn-e(fHuVl>Y_KuoqD`Fy*ZUYCC+8W#JV?F)1KHvbSs{2~+TFxW zw{ZQQrcfjKx!)d*(WIk*t5t9v7E>gs-mvj*8>UikYbc^!e&vMT{)0N9CaTwk>l?IR z6WzkAOI)sUrB*K#mQZaX;%dS1gH>}^Woji8GY_t~dkE>2ZvP zIo~DSy*;iT@(?R#omDDen~r+bVTzVY%Un%)PkTHBovbI0U^m!(aQEknl@Sb1fJy_%R{J; zuE_)}rAX2>52y}zeTYHeG1rfgk6?xlZI)dfRndT?ZBGTb-RK9iG)3^2{NOsW+4+Ps zawt86W@vc(lZJ{MWLKz{ZJY$mN%xfw2>8(=>Nyf}WHkjSjCiDSx&B~RcnXP$tY8C$ zD;_mzFr%GY>!PxVNt{|WiBZ7lYO_2;YIlfHI+x~rh28RclT}Vbo;0y=DI~PHBexP5 z(yKc4mNy!7SmMrNHYGS>C&oA9hYS5H9d+elPI*Bc=F0q%i}4QvLf=_ zz3VSIN(Ft93EiiRcYDxcr(ox*G3{EZ5Ixz=dKJ|MYj~XIiw4*n;yV0s@Yp4zRQujV z852z0Mf2OIP~ch$)dLT(+aY$fH_)CoJUp1V7d?>y0u(Du7ktocov1QPg^ryR<1zKP zV>}ML+lU{1(Veuzwgv%1Q;wLeW0v%(?=Wg0jT%vp4#>VpD#Cynwt;^<#(=QOg!jf6 zr;%7!#=_i#qshSCZLl=#Ex!K}Ze zzW1d1K59VdHA<(IB-R(|=rlv`d&G={-ipRJru3TOorQ5uCayQh`rbTjD!Wuet6E+) z=~!6vW`{V;=(h9AzD^kY=rqfN$G2cByHUm6+OLZNi)5lAAQY&pB4SkFPiLhHH52$` zhNa4;HzX2QgDr9gmv1#qBm@M@(QTHK4RRV#8N~8(2b5pxJ6P0|X^mxFM9w)=XRuRVqtjbWqP4 zGoNlbRqCTpDH*Jk=Ekt*1T`4sSQH>+vz;t*{b>2pyMdx!A_bBlVla47 zjC0SHRY~Iu$3t7oXT&lIqJ>V=L&&;w%PX^kV()lI217A`4jxjPIU}-csd%THH4rF? zB&8tFTYFl5%9vH3@5EZE+DDx!wie;&lpnm5j*fu57mVt{r{diW04_QOJ5zo(xdlc0-SNlnQUmh+T1xAw=s$ z=sWx1%09FFl>2MOlQ0U|YmauSNtqShc;3p4(RHwC*H2Ma8w>XkA>*u_Opv@SMF_;Ple3V!t-<{05 zhvbckUAOx{P?ko(JR-(nZN5DK!Z0a~pG@$BNOD!!Gi6~A@g79W5ft_|@}*7I6nVm9 zHNx2;_f!PxY6WH1xn%w~3tK}aQQ7Wq|8Y&w6blT%2^`613giH zbe>CUqm^c3hTG1Ohg7L=4DMjDe~6p-$&zgZ9X^&PLo&xHeD5VRHd#R7Le_ zQp)|pXNC(P>X`7^U=t>dt9Fb9%&XX)Y>}icYqn9{R)`)>0c+GASufQFmWdnG#3Bje z8Ui4h38-r=uIQWMiFkDKW$b|0Y<<8tM{;`QwcNg-EBu21vTT26c8!88tP$;sT~3 zPJL251Pk*L14}CvPHlEQfKH`Ru#HWeRkNu8p?t+cevJ9SMxNTn74AUDjxehrBg$m( z?v*mc-peG;G_h-C0+%_>3b0M&VnTwDm(He4vmx5XmfT*Fnp|%U0g`nAOW)^698;0x zk<64%g(?c*nRBHpmf2&(NllbPJvZBgKHJIwCK%u^2G!a0Vrxd(8RKvtozOOA&S zXZLQkuVKKmAH*68ih)Y1^(CyFHXz-ns98lSMxQca-K#rPXL!@N5TF=xPWAJvE%miZ z7qabj6#_x5(5>Yhlv9G#HVuFSBBTKEu4Ig|Gh&&G!xvsCau6-`s$g^HjSNmDSC0at z#DueTi3mEQmexov9-mLPhmWo_w-8qdJh~KQb##n{LQ89)eBU^`K2A~@^aft-qQf>0 zMe>xCL@;;a#g|sK+Hl*X+0>cP`e~zX91lp^YeUNL#UcXl1juQf;>ev%EN=DMV6NQ32nk?zAO3dwlYJ z^8tZn^bV>Ou}=4OHqlw3jkQ${vFS-qp{SlvC3c`Da7Op3wL`#ic)~+v=lv65z z?fn_gaN`#kcrr5^aTTDpvHck&l}`#(i6ccvr*wt5iAIZUT^&FmKzS8q#D97K1x{zC%1P=E$$ZWdibFyB~MNC||`(R01K9G)m7!-_$uxg>@=#(7sH z%5g`m8Y~w&?6L4f^GXF}?*k8v3hO>%7Tsr6{t)x=#lgki*x@knR|X!7-V!7i20tKi z<X!uF&n!PGsku4_YZEZ zDh_e`cq;ap*alfOAWxW2VO`TcY#D0)wihNt5O~JQ35q`CRrz+T%SNqT4_BK}=nUl^ z%qH;;nW3bZZ z)N7iz;*F|EbsEbC2t>Sa^V_Kp8G7e{A47o*_Rd*ovrnH?fzo!$%4M8$Sk)Cqo7R@` zPM@3xn42J6!_U#LSXdRi8vi{1A#!p#(0`7I@IbR;A)#KezmJy##v$ zW#q9^U=XJ;YUgY;g%`_iY4h%5&d0irafhW`w&>is<)-YWIEXjVI3Gl)8I?+8FdK&i zezXQ6y+zNVrM-m!U?jZ9V_WNiD~3YcnRQng>`IHh`Js=Yvl=Fd0B7{Zd2)l*jsmZH z0DXV(h?z&hwo|IuP356c2;wXrwLTtlZLu{nVJK6vh_w(M91J>^H+w4}g2K{_Ezdbe zFcsa7eYTV7gDa8TYeHh2&MFARi-+lJ81&bmQQeULB8q#Dp;@ooLv5~V(_dFs>7q!A zCCUiY@CGgH3PC-ZCacb&-{mq|d!R28j|mc*d35pWXzav=!|#_k=%)ZIr7Er7Fr5XDzQiw}z(sn-29UK<>NLEfhDnuJ^)@h~ISuF(t@MRE~ zwIlC){35?7yD?A6!i>R@#7RXi4pP-nkZO(j-e#MJc(JWQ8XXLgIfXoDr6Q1z7o91! z&huw%SJo+A@EKc_wkI7Nf;Zt-_Fm0b4G#~Z4kvrxWM?A77 zZX?R~5Mu`Bn2c&?v#uPK*C!3vgDY*Bm^D_4a98#t;)=C6&GMg=(#m z9@C)jtuprXaC=OuIKvPWmyRJFqK^tA)bBSaCh}QR|}+er?7eLNlJgqCAj9->Hv(yrvgbLufREvCMYM*E}has ztw!lm-_H#sLmVEH`uU*`tz54&Zy-9_pXaWXGoLm!y&2)-M~B^BeW88K7Ot9vrs9fR zs``jQw9`=mW_U{?J8jCo$o7rXDfc%c zHsuHll0|{3=Tq9{ea3v!>TTmOn<^~VSB=>g5WTY}s5;2_E7+Wq*R)%Y6p2grPo@u& z&>PPB)B~IkamL1H$_k~%qF?D+Uy_UvXdDDdidJPPZLT_!B$r+7=FaD{IU@$<#rvEe zQc&Z37#txZB$vWf&7>3ODkZoF9vtVm|Coq0o$%Ky5b=wD$H)uBQ&LIC*>HG7Ra};{ z)e#RNS*~4Xd9?UqM|}g?2Q@GngVm~{ip%bxHJeFim&Zine9v1pfzX0{G8kQG$H?!X zSodS%i7W5|KF0Iji1(?lh8h}>;;(33>aLhpK5FBY zbENghtVTo?)h9$iX-?!wsXWPis7oMTNfo)1Kh`A<(ML5XL|=%87&#wQQ6g#6=UKp2 zKC=~E!Ua(?lqNAo9mSo`5GRGwqkOypu{%sEjW-UKT!ciTH2b5wGe9mmti$fRXk=8o z=0d}#YXd)@xIz`Us*F3&&y5I6c1A}ZVX(rE8u1B9(MqjyGb?k~ZzL_k+q28Kwf5Q$ zg}1cnOc~uHSxP)#Q_;Gyw7mPnkd(SfG1Q9S;TTj zt-gYX&mZ-A%cyeE#R1$PaIRQh(Jy#-rgYggtc4mIKK3)R+9nb@I%9TD%K2HL!ZOG8 zhq!Ku%B}z#oJsQr$@Y6+l}Mxpb(cfA1x-|2!H`oqMuW<_A`Ul4qgkFqPdy;C=5(wk zxy7O}@1v{5M)rUwb2 zYJMq=F=2#^C%2%ah~!~loYE4DdQ}6M<}&1&Y)dMyN=GK<*9#OdHD!~22t(%>SISvO z+;-GuNHpb;0X~ow7J#~s1E~)@Rd*`$$zqrZm8uXkTbeTQ@qmLp>q#qK^9o%P zV#BKI&-=BFz21krpG-CmeGy$uF@Hogao!_q$`+1{j$=Cyw!JoCJ)*(DjKG`1a16%S zOMUU0*7F0qL`-N`OXR%LUk+qcHs;N0JLDp&Bfs~kY?S5)*tUA55{rOofKmbKH*_`^ zVr+~`=rn2t(wL7=xXK~p<1!4cY$6p(Dy`R!x9_3!6spGmm$ zg?^Wg1#-PTG5lWk#kxv`+*WrWwx+IvKvYKQM#20rwAAmzX1}1)AY%3Exyc67D2l53 zlMmVhT>)Df3mR&sqPjdS5g?nPuUFv|v(}{zPTd zs?y}X_GH%v`7vZQFjZ3=GkaMPvbdX*fuyO34tl*OGZtuAr6owTM^)P}AVjK`#u z{0K8A%9EqYlf@2b?BI{fCj<4h0op=kw^~&9mQl66*DP7h&nCYl#}}QO zD>JC@Ic>xvg#<>l`KWMkENEh$Wc0PR1G2$V9~*)zq?J=BtVrTgItF;Sy1ZmK-cUtj zcdt&-hY-=%DA*JMvp<0o&h8Z-2dd;&*dq@XLTw%#7nt-HvmrtTOPITMxQPwJZ+pb_ zkCx1AaH9@>nfo4#Z5xCi+@PUetO{s+C^upnrr$q0BP6hd4!YNuGY7n=#+QS^d~${U z5sBC1&EU#Ro0fe8+ODQN95=ooeoSxwvK#ROI-(O;4(P80_5@(OySfvI8XsSMUg0va zAN^VZK{(V1?23Jmqy+EjP?)<1FMS`qG)rBS4w@JTn3uv_pxfJnk|ZNqnP)cb3^p2S zn8it%iqd0@6_yw!n*X_R_PB~eQ=@ReoubCvxl>zvVz#!?b)7cYH%m?nSM!*M+v zYF?{Eycz~_xB8;pUK;E1!W1cs;T)geKSObCEKJs+Uz+2q1R|F-KqI3YrhdC~J^HLk zoS`&0w95Vc=Tlfi-C!E*o-b$-q?=)1d^(#SoS7TD0L?`M^?1Fdh(lK|~6-Fh3Tp26A8{>d%XAqW`3ACD)i zT=%Khw+;i6LdqJQtyj9pAt-)84Y=ct_s|9q<4Q1INj5LlCJ3I4Y!7~DtbJjBK~v4l zn$z&8_avU3}?qui=EMPmU4OLqx&4q2ekn07(1xRvRx zI!lyNd~gd_R!3J{jscUaHxwyh8qAgRVR_!dxsN<>D0)?-dAPOa^R_IwGWOWg$Oogb z+bnEwbvl1+!B_gZCy@*$>Pk|qOtEPlHXn5w2LU~7bivK$&JAUcbe((7CnQRiPqKSJ zO%hhcpfw#x!{b%=pG}w3U@7@rqvTkIbRlV;`Jj77n*?BZOR}ZRy0vw-IOw8E5HAT4 z-<~wo>ycn;C=kCrQ>i39rMJhJaW49#5*MTbaH8uVk_P^UrW|HfYf`kFJ*CC29#fA~ z0;sd35l;^0RE1vkcC``=Kn$(yHx7^YV0ql2Yg?fo-&iOo`1=2GKx3LwpneM6BlGX!dd4r9G{q00Q z#oakTV&{cY7W>5^C<*V@^E2?vkGEzV(_K(CKdoSjF|WG1pKs!dlO5UNywbR*6xJAD z&cR`z)mHJ9v&}Du+xIEF{L#gn=+&sRdEf~8_!RMIR3-+wG|3H#c>=lB*kkuGoWBg} z1xMCF*Uo7+ta;d~79xDYk}74yk6+skY7@|_N8gix!O+#ftC#Mcdo^SUJ*StOQMtUX zaJ@N){YH05|db< z5^)u3K^t1Peoib$hs`=h?c7nW6u+KuErID;>H0XhUY%cZpBaI{hga>1(Pp@#CtVB5 zWKo|4d7|K4N_SfyG2;2#^MG$3Rna|~B#i27bpNu~Qe(?TrCZ-C6{EEgwogW@DDFNt=dMIyS z#;Eo$&m3^QP8V~-67=q-a+xFTBC=QUY77zcpvuxb!-Ipbt578RawR>`cbR zs5W#4=n?VVM}1`aUp`@@^vW2mF#jrvoB4s6dJ(f5fc{NK8Pj@D(Dj1kHK%#|OCo2T zL$*`mEiYc+O4+1tql#SO@p!f5Zq&qKpE3JaN0Pmwmdw$u8J&7z@HnWt(`QmK#LZ~a zlB-YI5o7UFEU1q;B9ZGCV}O?Rvp`gqG1C)VaVV>m(%o%K$`Sgb!>@Yl)}j0IAV^}> zz3rnTF+8w_-gUtKR`w?*0qwifz!cdNlrb+^DW6;jB$owQptMUDV!M9giR_%CP zjZx!@E&-~m(Y*s=F06=>hgO+9~a zC8Rt*wo-Oa(ErESoAf!VD{H@Vf0Y^(!giKDv;kp64{CrJO{QstO{U4D`SdrawfEWQ z+;e~TeP^{+xonUk;(7i^3iSJT)*lP^!3ote-4nP5n~5@dSjwCA>6`GKs^?LO4Zb|z zXbg1?Lf7j~Ul}45R1SA%t%nn%sS)DjBysK^^3DwGNn82Xg6c{W&j3c@}>Ua>?#u^=R%R+(Gq@zafZa+olB90 zVQ1_E%~kys@^c|sqVUQ|tS$t!1v`s(0G$(PVF?-4y6U7@$a`{gsKT{U{07~{dj8<; zH2C0zg2sZ+Dt{9695NB*kjo2DbexOh6ruA4D(y>J@@RPSa^#}g%$?%vSxA)on{RqQ zK*zS5c+zEq8Mk~T$+ZfaawyFE5UAx3WfvuH%BJY+WM_k;-3}SSBVrFz@H=BtnqpTkm$XUg0d6=Wf+WF#gju!W9 zcV|D7?jM5C&(@pP+xW{Qwq-X}UL%^hLT+G@)esy9r@bOyo_;{69li(a z*m%LtRqy8G6GtZWnIeZvzY`qpiOTd$HJ=D;5a0`dB zwLTf*(=K7vNNFAVVw6^M_!RKxP&0l3c!^T4s5)w^S+9BTL~h|&g0b&px+}{T}5caKxz6c`AJFlY|hqW6;X7d%i-%k zNAI8evPDsDC~x+1KM8hqY(skB+t!`8z00W??1&mG%;+WmuQSwaVhK+ydIU>%<|V3A zE5Ti{3>Ftx&qmnJIcVngc$HSZg9m??E%WLbmses&h243nE6#zn)&}SN6?9kIRpwXB zm67)(bsyJTxExE?;-5lrU<06fP>Byb*S|MWSC z(O@_l(L6MF5Y%qOaZQz}Cg}Og-40xB>v%dIiR!gG@S=Z@&j%Z+XzX*ty)b49z$pdw ze0s9_Dp~zNug8TRh{%i=HmV8($(sBa|w{|*4 z=4m@pc6S;+)3$08wd;Kl-fd-;nRsxqats^xMUDBNjYhYK#d`R;E3~kQwnbQ$JuT)9 zG(Nw$LejXcpTcy%$`*?ZUlxwjr)`jJFHGU0dh*2;u@16=&oacvs8kr*`Rcrc%CRXP z?r%?*%od)Aj1iILf9hk-(r+If-bw(ovP-}Cwnacmm8|_wF7N)6%&8ix?%+$0S$tXr z1{GT1_M57XwCGYQ*0xrnSSxN4_3~yRy#8J3PT0v)!yAH>MVygh6L@Y#z=LNiIcRau25^U!!{oyQhf^gapav%vinbHVzxjgA1XUW`MFU{= zMP%iaeML*Ce=)!Oca&N6?cO1;+FfJcb5RcysQ! zEc;NkB-IoMS_8&2ouif*9uK>y>Ci4|pFb6wDcJCw_Z8>e_?2^IUm9$Nm=gc9)5nnK zs(Z4O)4^RJ>P@ACu^QdwOv3ir?EEHO^Zwj~>gfx#;On1bUQdOquPIrqI+TY!KrN6Y zvON8&6Ta>2m9Ioi_fB{CA4LXI~_Y>)E8!@rNa zrQ0b~;m;PPG=w>IT{2XC+`6(+aMkS z+Go_4M=BIdV?&vI<^IQRj(5KgKexQy{l62J^V0)tz{#Un%ha@H5Xq5Q-CZsEKdRJj zlc|!=y0fC1=+!lDN$5a+`m6Htl*5BI|2ipuyWT+Mw~dl>p&}!1EC4hYG6am@di@Et z*9&gb`VxwA%(&J2D;HavkhlRz-I5t(KS1|Si)N3oEo(-H3)R^lw*k-lcQN|jyZHGD z-K9%t>q#Q?ia&4oPq<&jM(GF424GGcy?o9}&29b@=+ot+=ug4!?;U^Z) zjH{JZuxh9`YhG*l<4UzX~s-QSvvq_aXb9%{%6Gi=Od#s#TX}h z@MT6_lRd#q`@6$t6z23|3;XgVZqk@QI32(LHtS$`2u!2i`D}V7K+;r6zlA)G&UVPf z00$0y^uH@cxLRGr)A&5w4JQ5`Pk|aX9EVUW5R`3oaJ+x_29l@GY|Vba)9;I>Yh#T7 z5f69YRDO&2{3TlSL6jHdrEE&-5ueRYc-xNSTWui+5EMMH1ZF=rBo7xaDHNr1V-Q{a z+}au+lO6eWV^;^tN9&1mfQu4b(l#jW>Qs6;Q8m&%s$U(KGPWS6g3umD&~+G@1p zCy>Z^<@*Sd`ZC==8G9^2E*i31CbRc6?9h_#LqNGhFy<2PR-H z#oc>2h7z+8$bSQne&c5l>z*R+0#Xudy-zz~$}utB zzCf5zfxaU~9$tT*i{|v3#Din2scOTYeH76s_C85>8HiT3kO7Ed>(ga2<^0HlUXH-% z^>-nw#_mtwwkQE}kQVPfx9mIs*TYz7${WXCCE|Ha`QeRsL?qpRb#q&+o=68K$sP427p}xkMEO-= zOD(}Q?cBB;U8qO)Is+|OU#0RycE|4?PWyiv&TU@^VAnkiR2w@{!C#u3j9 z;(L$l8nxDG=U}eb@jq8%?>*Z^(^BD=lE(klt?tc#L>Bng(fRl7-N+JaPb4rHoi>}c zyUTmt?t*37u4d)hxYFK|-~er*p8kD%krO{pHolHUT>W!>r{@xy#gOo7h z?*6$Nut^|ir8wUMdHD11+k^2LTxAeRJe~e^dr`>vx|=FJintgB854Qr~uk9wnh- z9JxAu27<_h54T*MR-%u2q0fOu$xi|1I9AV{B?m0lYvA0XHs!Mxs>G&n%VqrRDbUI; zHloIlIY`*l2zu06@HQe)&aq=(;Qb;*BAtH=Di?Zn$ z#OKEj=xq}Fs}0rG^^sebz46FdR6#I4^S&G$0-Fjo(M{CBc2kVAU(o|W|96{NqhMAmt`h3s$IR(n&!MZ)sBFLrI zuRyWRz*%pk!>_HW*p9J_T5_WJ5BD3SvnR{+U1~M47nJ!TbKpk4VjBM4lP8v%2lPHf z*mwr!wqsxB0Y44?<5~!Vd%Hw^{TA|!1y=SkR^A95G`h+%ZO*y7y|10|vFJ1DFWs67 z_uHqLMcCqgrN)E_axTrJ6O5l_g6DQK(w@4Ty%IbDf6@s z2S-h^_b+l^uZgkO!L-IhcELpXvZI0 z8Ga(|R0nHq`ug=W(4= z>i*6JYFzWY_&j5Y)$ls2@fP%@Z&}6d1;z0C^wo{#w}a@Ln4DneL;6b&3o@r*fXf zI}gc6zC>Z(MxfAOHM3-Ys z{LJv#%g|7k+Y@MX`P%U|91;!tp>h2wXjah9`f*oClYMwdy79+H*O3VCk(y`1m6@kE z>zB1o+d`L7>aVA396v+lGNr40?PA9I!Z-&Jp6g7VwNzC16rw+Gt8VlAX%|IBH!peT zeeeXYxwsEpn-}==C2ec$n(UXignu&bN=PRRAz`S#a`=iwlt${YEIBetd1&HZhOSx}S zN}K86_qz-bGBTl9BGPrgwoNu}obI_Y+{H3JLi72REM(kq4VRJ8?K2ToDH>KDA20sx zve3mn({}pKpe%WP`6o5*f1-sQy{_VZbL=BI^ksipy}qW=daj8!p`9xM?)TQO7@_xs zWm^yYKYl#)%s{o*0}asm6M{hoxE8^3Xt$lKQG;zuIVdnJTA(1sUbmJRHMs3=2%UI( zIp8&{z8hk*LvCX=B|CiEwC1^XriF6steA{}dXnLdbio>qygh*7nMNW(kSWf5oyZ;d zhoo4Z10=X`>8qxiyB9hF`H&-HR+rRl84T>H%c zB3J7^1oF-i)gxO;l<(a!ctjm|k0oCCd$39_xcjGwmD)CO>S_=&f-IRFUbRIHPU5e$)>`!Ym~h_0vkOIM{E!4a!#`IjvOD1xvI5f1%vzs;GY{?R5_v6>YCjTO^iRbe)&uk@8ax@uK-dz&@z*?Bc^-| zb4B^`%-0aHX@#;=MO^9ahw;go=kJ6*d@_MODz2YgK~5Ogq3FYv8dzkV)TrtCY5eL) z1Afy$eW1>|U{B=Y35EpaF0M*fMIQwQdyp&Rcf#bt+Si}BA3`XEF9Jof!aOO!7~6Vy zD3$tdqwC!gRbeT>oLZEI@$uoCqm!cRY-`!*DbHa?jOm!K!z)rQe?W|@biESBPkYeM zmyKjn(D^$Qqvn{#i&N|Yf-|wlPlC&##Mt&*qb_g!-N*M6FuJS>1gS%hV_;5`wH!`? zd94!3zLac1r!vjzkq z--2GT9cNiAzM$uE%*Z|p-ED25l6MR4iGNuq%$#8LZUd5w%;hq3{uIRse{Y+~9gdq==@{Z8igtpWdi( zXfk?yZAX>tH7o43vUYBFH1qYc+Od3Go-x_5pfsoyHcsJLg3Y zpX-PB3LHF^3u<`NP zq4Kn6jr71{6d6VzluOSu#!>V<-IzWQ{DXse@i2GF)$`-!e%M7z_~R$mk;*ZP8d8Q@ zRr)tCO~7UeGb&tcOd+6Qq`9A#dh9a&^n1HXhEBh%IO{{yJ>2fDmU`Cga*WfEQX16O}UfHqm`@5(NjGq5K?39z{@r(9pm|{FoqbcYaMYf4VH|0?YVX#WIO?7 zJ8rht>M2y$?vK+0OsqUe_2-`yL!IlhTeLONHxDS6lg#Dy8)_S-U1q1P2PG+DTs?bH z|5`0RIy-k69!Vc%Ld94}L=l!xFuB+`9p-Uvt;#Q8 zgwloV*iL2HDhlDp{cUSIknmhZ#^K~p6u9g3V*32e_7FdD1}Yb&LL&<0Q4vy<6gSVS z_ z!nOuy-ksw0Y%_F5gv0%4(G|v9VMbl=Yy_#(U%Eg!zekJ5AOqTHfCcdfJ{92~_L(Lb6=C&s~`CvY=R`I#NOdJS+ErPRd8o zSddP$^H-QbM}=|v6ZE4ODKE*{8B=3;Lj1*CzCP_{mJU?iU9OTULdb@)0<4ZO)s)|! z5j|7ow2;noyruq$S(X5WBrwR8CFNS6q2b!=4-xY27&1y(#F8cZ*s+8-e7)8Q4j+LS zJx4Fkw8==)49`TH9~M6>QHO7yIb7`a^^>A(iH!<@b?=k*@TZE$CKV%clzY9SIx@2s zgK5Qcshoc0+$-XC%>MR4*mEz_U%&h|`zqZW-PsK5h z`OX&4o;$K6I}c<&ij&wnr0n$-8|C2YI7@Wk%C+tQ(7q#+gqc1BU|>E% z{yN%F9{@Ji5J$z1FVVY$52|Zik<;Nm5RgPB`T|X8660zE_8bD`XctiHZ1qa)o1qp9 zjAPG9u2gr3Jwo(uwrKYoG+>%47R_WamO|yvfYuSr;0V>ViS(;os_Bp0$;34;zc}yq zkiQ2{t=hoMDk7DMuHh*+IBYv(l&Y*jhwhf{;p(u;??9b z{hci6p7--Jq2$NsY%W;$5{f%B^Yj!8_I5T7L8-YQ=HN0p5UZaQuO$wzAGqQ3Zao=AJPJ)`Qf#v{9sroYpE`dyik<(l^|u?$^c z4n>J&8)5G|Pk2_!?x$RjdD%f`s^`XDI1&o7bK`7+vVD5EPH61uJ1;(Rw#;_0MAx95 zyUMM0=3b9UoyE+i4LbS!?%lJ0Z_s`G4~$yD*&)I3@o=(&7& zCXg^Do|u!((G+IbFpR!HC&SD{R*tPP1}kdI;py%#E1>je+<4#F>ZN%<>OKkwL0y$> zz2BQ|fY3O%Nt_L0jgp9;b6}uP)*;Sl2aJB`!(RE7g7kX{o?@8WzuQvQ;o;%RF8eVE zmGkWK=bN>7&JHLNc{pATZ;lY=4B={s*cb?-VTe&j6dk<`si5I}&FYZb{=(Z4# z$|*HCiEdXb?g@ZV#&@Fc4qi7{u`)lPUbN*6Hz`Jsh`kPx0u$5BtpM7(+x z>u7^g1#!%Ms#w2#dT0P6}o>I3nMLF`F*O_g&N;l&p8pp*W_*$aJb? z6>DBKQQV&*X20xy?xXf3-8DkdO8TU;=Iy+N=x{-GnJ1n52ek7ifcf9~iScki_PNe= zTi%zzJRz0K?Z?-`i(l9u>BpFFO}L z7Pna*FlEoz@)35=Z-T1XYo2>*8fQqGEiXHvDnEovP%H$Zb2fm}4SQP~ZL=oQ&Zv;M z*n!atgmP??);&0TS1r|HTSk}mdb|aD_bUXz@|0^tbg%Ky1w>eKzKnJppR<^izw^e^ zglT;N$hJEXM`nVaU$HVhEgAlDOb`c*e!v1az)=d@r`QM%hRW`zmFnNbh2*kP5my@IIr>)Ukm4f8^*gIrr^&+yQ?5JRcyMA$LE`9 zFKeQ^zsuPDvVm;;McS1ZB*drL}Cahqqdv<$6DasGcM3^v31*zAL(MCCE~t&PvL`A@0cn zl17C%zL)W#4HeSa%H=bHFBQl-<<0D;CVZ}8FI$yUr9bP4Nj+<$k6ox6Z;VAFRNB?! zS0h0l;Ytm5bhM&`9o-v_qaJNbx>FhtxxEf7Z_@#2@FRY3n{{kYQP}{%J$4zLUqZYd zzKC9B>ppWdHMVlisLXz-T9x3eb61ntl`|%bbxuu^6#em5a7+>v2?xEVRQD7Yr>|Xh z3%^r38-WQNZpd$-yql%UEKv>MfNU08wb)|XbI$W(t?pE-T_Q4#uEUErSp4<7UHvMz zZNt1rqLk;{kzmI~*Samfl1AyFK7E7+nk*IUX5+pk`V0nUt}BK=g*tkHA!RDlA=B%h z5LaVna=Z!39|vvy?k}yk2S7!}PocVJ@EES!Mu0Z5W^|;UdHo`7Jwi-Dy{o_Z;uU~7 zMWtV+LIQKCTXAF(#}7e z4_C;+R>)NJ-k7SVpIvF3g9-?jwbmN87&sS$Ev-t{9F{mv`v@~NXgP@E^pzXezyTYT zXs7R7K{V{=C}ZRutf@kkitfNK{sJwmfaeKgqo49a?HHFi=-FPVs7!SWV(&^)I4jX<&PDeX_Rlu&HxcfqHwH51(h4~m`OX*XlQSL=QODVW zQ9unTmdy86&vh3_`h@tY#2>7G_P$Y9F6gMYmOq)y`dw_GPeQpD-XOB~c(p}(NIPPH zJn70?#IH9yK3k4*rg4Lxu{eDua;~=a zjHMX?MO)1-T%t4=N5@tN;mFsy=+Q0Nj&*Sl2&5`Qh{33RO8XXm`6hcS64F`pRA*-N z%>;T`+wM7DD^-m1onZVsS-PzsV-3!Sr-(eGhE#MP>50J_hd=9>D{Z3GE(Q5YX!!;{ z)o^b_V-G?Kc~{&P{F*)oyTW{ZZVg+V_?X7#bs$PK<@({%122(u_?xVA;G<)dwfxB_5;aDteM*4)eN6x#nb3bE!dU<@rpg5m#SCzSPKNXK?wiox4s?U|^ zkrQ^=qc9?w_R{j{spZ1xizQVnUUd*_B%qgZx3vVxyW>zcuaPrQp7we#%=$(VuoF+` zL>~>o&J|QwC%*yis^#x^sh+IEAj%&eAwTk6@ zDZwPuHhjYWbH(aTK71n=-Q==sm81FwSJFj|qT0=9QgmMox5y-OY*5FJ{g zCOomdJ24Zb{xYq_q8vS}bgq7EiGKNvwPWWk=_ibmO&S+v{q*H3<2765d(zzZ+&ou1 zvDI`2>~p&st}$qyf|Go$z!nlETqDbVM4`*FXACwzTUehp<-zG9Fo3fXNbEU$9!cW9 z5`1~v+6e+<)@~uCNaMp>siG=v$So01DC6@-U|yp%HlBz9kH5XSpsULmaf5LF0uh#hT5UafF_g<^(s`-9SpS$jeD5NWMKH6X zh@(*STUY;#mPRdiOjCEl&*33Q_`Vj z{N9MR`*gKB3DNUch0m8*&HNo(=Ye)4O;>L$jKgQhxfAurm13ib8kxtM)p~+#FS!uF z?KGq9b307W4vW^2f+ab>$l%puTT}wy5 z#y-B5;ZnccIQ>Hsk00BWD)!6uK6Zpp0Aoznwhbi+c~@g4Z*9fqAt6Rq3)d;!aTP59wg%!Y5Kj%a7C^$%cj7U-9u!Z4C;*d}^3 zZKp;{FwT~IzCzWz!uK5uRJ~J4Y=IBIV@<}})+bxm-@eFvwvHtf$N3sj>sf(ea?rhv zPcV#?H zNnHL(`4fQbC?jpgcJr)#ttxqQzC)Rwef97w=}vn`@Q)HoV$wpX>gPD6$2!JFC)Vyo zR1)n#vdl=o{E4>q7c23%FNwGU01N(g?>1>G71!`U>gvf=JmLs4gTy_fID7YH-E&cc zyR?26{e9YP9o8svB@vQj#x>2_akdeDg3qdJis%Fg@~YRLCjPT;R!QEWZErRq~H?Q-Q9 z22gWzH3WLbvn{utzsGSGH0i129NF|WLiMm5eFO(R*vyP3pS!hZY;Ur;{|QvLPm-&_ zlsU|LS-UN$dfe5i%Dx!OW*@V9XDve-NJWX%!=CmT{DKP!^ZNEB%Hmr@JbCyd*26Dr zJ#?Z$$PvbId)wglIEQyvKT^`cQw~2)OY9xM>W?tUC2HKSv`f!GxG-BDvTvI(U!zQY zKAi-o1k0O`GwvIi6D#3cneZfOASbmmFF7Gz%*`FeIQ5|>mAL%M)|!;UU5SFSFXS;u`y*@dWx}B3UwBqIE<{ROn@5kkzeloIy|3VLHN37IQuAmEb_|O4dY=s;`_?FApjQ>(7$u%Hqc3 z!dNBB_#6S_KX=x{l}wrT8R}-g9~;pfEunF%6wyl7EG*-0@;m%P)T;HD@^d>YP;`e= zwDL^w`NKv)$Y$C*d<=K79GnQB5!cAm<{%EsP)2()MyUMZ`f2ca+R&z|v)lC}0!{Gg zFchqMg!s}^RwcmfZYh-qj|tg1rVPPK1z_09NT4OdFC=)k0yT}UI($JPAfbkxaPO_@ z9wXOaGRFMk$?nMFnT9m$QvIAnH>2ITs4BL%FBZ5{B8gmE;+fwt1mvkM85fE1`W;9P z7U41k&G9AT)4^7zK4@o+B7);>@!7b4b2D9bOg&o=!DoB9e?v|#5nQ3il+QG-uC^I@ z01rPdKYrx=c?y^}SnEs8;-gmz`SkZ5W1N423`Rn}zIGNkJf_Z{l|eMWxdTzEX2@i9}e8on-AZrKo+*r+F_V8e2 z%3)?}<&gf0h?IS#M4m{jk%;Gzch8k8hGf0>a+?3x0U6w+WTUcC(j?7)Y z&Klh2LiE#0_by^BQ$t4XA}eSGtZRLn_~xKG+%248^jQ|r&NopHi0XN#T9 z5RH#rA<&bn$OY+oB?#DwX4o;V$b*>j7i?6_Z4-We_!<+0~i_0i=QvCoI{(1ZP2Hy)z&{kJHI>PKBhF? zJ1G2S^6VB(R^{4u>RV((ww^jKmW|y<7n(3tXs<`q8gIF3y}-zP$J#kg*JI@M-W?#N?kcb>%-!*m zb;k#%SxVJm%J9HEBh*ptk}NGFyD7B*~$X_wNmVrn#y7JtL|vF-It&f{8% z^&%bVp;Qbny2q@<(~^ja+ZrlpSG$fFrQaA|oL#lVlr&V1_g!S3UYSmAP{UEM;GE0n zp7BicO>67M(C~#vrMM1M8M$~^L(HtHNUom*SCh{!`(p2|d3Oik*t#at%A}3l&ha-+ za(xG1@v_!o3gXiv(O#bn9YN0|u+umSxINHxcuyf+VQ(kuNcw?b2<1vJ=09Tbbdd{aJ?S{VhyEG;-P$Vgl7L1d5%0BT&O-f z&W^XRpE@Rv&tkofshk0?(FcgIC-C)=0@V8LIItTDiY9&dF#-0JpFZ0*uo*RA<10t^ z?X>{u4qRXF3-%qFatS&DiG5dcz}BFzZ>bS2AZI^WLLNnzF~7kxNa4+rBL+45CSttU zaR%8@e}}?SVK%QXZ#_*R0&k&7-)o~!qF&JU!ilsS3a7(Es=s~%m+HkTGY}Qztl8qy z>*{Uq>cQ?WfQ`BAqhXgSym#283)bU%E(TOStZ&x8zL>^skK@i4Lk|^UwfHc(@x8Sa zzF6H$4d`Kvm-?CNSD2_83c~riv-`|}B>p8dkgS-aQqSDdl!H*K)#bxAk`R=8Ye~B7 z(_8RkTdj_p@hij947v4H&}wuRZ-~t&%qEw0q8$d;AXC}lDd5j0=-jumcL65qH0+En zN(^AnQx9W$t?=cU2qgW*+S(>1g%1DDU`Ngm$DLphu&pv?`1(Qm%UX7k3BvnT@amnR z@rP&!6)dmrJO}{Cc_3V7F?}w)%Lwr2l9|)X@8nX%^0Et?*Fr@7BJ}Je9e+d$F&$l* zGTpoIj*LDdMrcgG-Q)s+iM2qMFAAueiStsL!=>Ob40H&C4s%eoh^`WRaZjl>ontjB9efn5FBeC_j$>3`p(xL>4rQvv51}X{1?DV_ zve^-%dpT-37dN-fBw9-Ssph=$qlKWTSNg#4O7G#xG%lY|e!guyH?c+n4_$AeNtBYy zuQWa=P~&XC>Z+&sT$JnK(^Gj8smDiT3{ZJ5YHB=DY+NglxiWotW40jOZ!%6;_6Qk* zV9$J^U!FFWK%N8LagDu^F8lGj>zYX8WUaV%CM z_gwQZUr<_f(_2L4WG&_7Q29Z(LuYGt-+E?x=sfT2_FCi^SM)}n3~EyNxU3GIJ_VL2 z!2 zYy%N?Ij(BgoDP}1eC0HwHa%vUc{Dt6dSN>I3~-IpIXC9XSEhqd#xD!amr#0Mq+AZRoPI&2y(LtB#(TGQ6XRL-UXbv? zNR$jpoT7$mZSA6EZZpiDL4rLuw!TuCyH(bms+hQn#>CWhr1HXs$B6$VAfIIg9k&Tf@FSobpEiVvIY;blrk&99Y#4dekYsf zU)ZT^hal7}lq%zQu49Y0gSX3-`Cj1XuS7L|3-$t~QKq;LXP`X*n^f_1&&iF--`=7` zxG@w)#RL&ZABy9*T%21A%@t8#|U2=x}8+m zds@t+D_yt8hLKEFG$(TU1J1`_B3ugfcuV6m*}1x>q)Yur zwX3=V0K=s;YP+DP#adp^?VSO>63r#XgCkyVg~AY(L%(A(TS%vzgY9e`9^IIZT>y2A zBI}Rec_B6B>gna5Ts`Bwea(>ps%{<&su^Dq9!7AQ66`$Op51!vxjR9a9NZ+e$ULUJoC0NJsLo1F8=o3;8DuzChU$HU)bm%wlb(H(Zl`P5tSX| zW>CDn@dU-eWjrk#e`kmXiEbUe<+$WsIlKH0KR8^Na`qT7C-}K5N6#Od4}-ndWg((u zmzf^&4EJEGuVs61@2H?oO?k?UZ4Jtcqn<6X>1iAvJJz!|2gWs24F#ek4Z8U~+FvUx zJ{As#vK<=T6Yw~r`tcSia|Gjc4_Y)6g}t1m9s(mXVuj2OKW|+CYgflSX}PqQY7E3n z7JAsY{||X@0_H^3wTm_&B0)eV5doRU20E4QbSI2c zwfEX6wc1OX*Y zlaN($$;M(l0yIm6ihI;~KO%UM-|CPBN{FCzigQ|xGHRxi8dA$sEJ0gQtB?WtFotLJ zBt?i$PugolG7#l~kR)jV=`W*aMZ%Hc85|{GV;oDT$~{sZV2`+$rue8Aa%eT)aM141 zVXV(;bP_Bac3WUTIH6L)VhH=g2oM~}QjoNagaY{xDk{^mREDRm5M`%i4{b<-Ocep( z3AsabnTBMHDTZ_yD7%R!biBX-{>m|Q8DfKM4)v~7IxevafF%o!u(YWVAra0gM|0ev zs3cH4!m4Ywg)xK!LR{mAMOIK!LBx{Gp-CwNY6l~5Q1ogM#wo!8+!BwvXj7EQXpMde zgpn;#f-zE9{i%btIP#rJUIeK8FlFI#G)~5mL`ikv6^$YUZ9_?I9OS_mVzrhyb8)AS zNx2DIOdzNj%z%XNp<^7-S+GNg=AmXsgphH8veSMdB(v&rX;D|kPC>r-bRNNO%QGUg$N8uFf(+Yrc85Ep}MHqXb#9A@4 zgQin-C@;@1$IB_5(W9Y(C_rpR1<3@;+(bN&1*}^A&66N;KOd5{s7+7!;gngB=|YBb zX#Ffm|A4Py7TJcuz{;d-rgeI^pfw2^r-io&A&1Tvf{O^I5F}Wvm?LErVUh)YZL*vt zsdBFzBqV4DIq-`65EgTj_KRoCI;Y z8B+>R2TPsS!UTxFga^bVX%-;@LJ$uu2QV}5XKBd6rK9CI6?3_ngv86ym90xv=gj|pz4?wtuPDgVv%H%;669<6O;)L>Y9TKEvAayotS_0}0aVladpB9Ul zaI8ebu!zk;$IIOrQN6zr^4p}SL!pu$Skm$mRO)4ssGIc~Fs&)+ir{W9LqoI{^d~7r zIN2y+045MP0edr;P2w2BBwKINd;4fwZ{bt2?EqG2|g)c zM5L6Jfb>bPEnxJ~36I}`1_5UUUzPQuL;tap$^5cNq3&ZE$FoP;P$2YX2!&Jv2Dgo)s0HY{mL2$m@Y)e#iJ3WULk zFjNkr@KM_4$VStKGL2UPvMZemI?a-f(jrAf8nFNYsHH7|e35~ZY{r_VforgKYp!U^ z%jQ@tL}>HUKZFmRULE5RMs1Lw!PVZNF^`Yd<0K4+fnYV0p=6NHKql~Alp+Bq zvld2qnvwePm`8t83UVW zE@B0;&=6xu3_@utgk+=)Zq}#WkTvFjk|`{mr*KeA@Dgx_(_zIt6OE&c-Vex+jM<=s zh6NqKSfCgJ%Ua$RQy)(avI?R>t1g&0)ZqWHuGXqKKR*cS+G~-i*f7r5>G(338>? z$LON@xGa>=Rvgw4lp~*3Ku&P;6`BzX{UMp;wO9(5jJ!xo z5thMh0!*7&DF*Z4zgr6vhyim;6b(C+ygZIFA#R(I z@dF58%qieHRwE$B0+mt6a^QB5d<$`lo)=-vtO0bO9Mu`h{c?f;`5;5nRGFYfoESm7 zK?elX-lKk88nGmaG0QkG%K5IfTn7_P(sr1R!545F~q0U>Ih3x zU8W?4u?R>masc>Gnv{aH%j(Tzbt#{N$&30RH0A|PBEkr0ay%olNYJk{0!|(cYgjlL zL7-HzGh@;sQm`1;nhI$W&1RKgsf!Q_h;TCQfnw@Rlj?$>Mn^7Eiqd)cAV#eOqfcPr zV8ovevVI0tH0o-+2utOPG*sl#8RNXVaAz)>_S0~=59YEN%A4&r<2DclaZG{~EKTWI zMdUcf=mWAR&4lzM080`zqk0WO1r?u?h~wr2z%OGdPN7M`jyVK%5o{t3Ic>5J4?`{w zft3Ir8y7-a#ck8-QCTeYXE@0%8yS*CLu{@!N8?pw3!qOVCjsU|QYC_t;Atj^2#Odb z8LiF%NubH`kOML$$S|*{&0`_a;|#??m|!$w)B6}g^a4&?tl?z3jMvKQZSW{V1Y)$T z=g|n7M6|d?m4{y1SmZRrK->o1v^g%3P@&|{^-6vsn&vZk5hTPHlbKiwVNBp;KspoV z7{gF<31_22e3<8v3~%AndK*t-#VmwSxK^um%K9iFAq1t+8JrH}yF$rQ(5tx=qffHH zp8jwkUn59R1T-ndK&f)lW{S`Z%n>$+j+cc}XWCfkh4jFtCWj*v1PlqY_{qFdlyT_& zX~-^6TF4J+b8$s3W-TCfM?)ZAaa?MOqfMR;~`?4PbXyP zaEe4NalJZ5)(=Y%m+OE8C>Uf&B<7ZB^=VVe9a2-Gpywbhh(!VNhN59V1M%*(07##n z(y)YjGY*zKifDH##$pVnl7vO?<>{0K*TuC!0Xs>ZY!xDOh|}VK44$O*91r9)Mbfg5 zj+e4JG3E*DOEo?_=Ev+vfX|qMKEmkn<~pK2$rz^?*ujMW9gu?ndT5C@i%|xa9WGdo zv!P%y3DOX63q;&uT44!;4hsbUb6kXSz6ElK@lZnkj)vu2CR57 zU<+Yf7mT=dg)y&9w7MBi>y;rh@Iw|PX$cF965w$jQr3oW!Wi?*R2&ZpG80b5G$iXa zIxPvi$a)KSn@M!Z-h7nED+f7IeWc!pDc&fSiDv+!LQV@zl28!Gpk&NX3;B+;80TrI z*ki`yXax3XT(CpSGl8H>F<}k@hEN;sMisqDfCCCcVuA}8U(nHRhQMev9L)&1fM<{f z1K|HI-V#d!tVrVF`&qcJvu{zv*9IJMu?-3Smu`@pNmE;m=e`fkfifc zVjQV?wkamPb9(+y;G#o@Su^1K#(tv`+G)yR3PG}QAu%l(D6qiBKQm35YmWWGf84C%7Tu73M1e1~dApFvZIRR8}!m0sss?4Y8WsDIFykyAr zQkWM|D7`P_NRr_c3y7TqM=$heW#;U#|An&-?w0uKdZJdnb;O|}6YZ+Afm z&f2&P2Pmk^=174Whny550ljH7W5Aoq5O4OA`V?vhU+TOCULZE8bg-DQVH{%-43rH? z5!MvK0z`MPh~Otp0-i~!&)a!v8u5q>V$(Rnh5{^{V$|WnP6md7dNcdND3CyCzLUZT zztx&YYE7^s6o5E7R^-Vf5RVQCAemGKArd}7oKsv_$mU2GAT5lla~If!Oc3YHm^$K1 z!sMiZq}AzUDF8!Wy)UhWw6C@ccA>e2R2w96)p@J?3%4isi7$GQQ z6xAW5GaZOK7*PTWPD15qS^(tErHcc~lq%vWKs^aP=LqS|q=M$7nPdSa2eO?+GS>z4 z3Z>;sHB3gdQW>d)p|o1mBI6Dv;q*dysh{Lcyo|;i3=sa1k#~oA98j$&Zj13wGcGu2 zuf%HU62?O1`xSk{Cpm%|A)L$?C{6;|C4pK^C;`i?OPd!1dP?$JXb2$zJq-s!yoD~| ziM$e&MT%7ucoiNILU4+=M0J4Q0?DI=G`Iq&60FXh8Y4KZ$apOxfoNfhArs|{RUbeU z1YCrVky_Y^*)S`r&CBK)z1yvbIFm_6fk@54!zmLV4wh+9yNN?}DXq`$Q1RXBC4x>& zO2t@OUBf#_xWbOa6G}kJDkZRykRird3JZl2(jXR zHf@keIBD<_h?z*!0N+rFw;GZn;n3p>RpOyyQPRS@Db^bGWK1>`N-Cl?FXguxW6m_4 z(D>9TVk5Xpi4?caYGBf+;%1V09yk!hGO;9Rs>e$R<$f4R^AwcyD!3DYcsr2Mai=z# zB3Os)4#6BMagv6B5z?!L0Ni-fWIBigUGBscub$E2ptoSZgMdgn6i9=_oT23e1*A|J z7D4tB{4>QtX}26nPKBPv(~y(gph@VSVIusS5s zN}~Wod>E~d0yMD;=~$sia|$h`lAIO>m?juVi8J`DT((D+N@+8$E}I-oFbb*%;@(cl zQX0uc;+{08@N{9!6>+3-2B=+0Ce;Nm{FXpDPa5qUt>^JvG~cJ-KpYxbPSM*C*`SVE zO@vrUZxa+K;R#_8LFdiKGeQ9gV_ME`GCOU01PK8V$e>}L5{TW#7KS24H@k|n^E*YbkuK&F+7WgX&Ck(Ha>+zrWg;&ve$y4Lf8ZZ zZ8Cyp3bW~4laEegGDCvAY1We(pOTjrWFanSV`ZE=afii_6eMrVYsOL>oInLwqy^ex z8kQ@DN<+GzZG4Tq;E~i9%GCWz2$sj08xbgejzzFG3=8If!eJ$)FIxyf9Bi^%_4A zTpW`kePKOF!kC|w_##JI2I@8$Mp-OE(xxJY!a$Q!QNjkNDI4U+q{2L3nkt~RunlmN za*oMM5sDSySvanB=n@DUPNm(FoOEl0em5hR@^+YIw35*sLS!OLX}Pc|jo5+6ARK8L z5+%1JdMG*QWg*PQu(*tc(Q-gTr94E!QJ)N`5&%7d7EvaGn?PRhc@@xm=7hyZM@v9* zA)LAt<^a@_SEnlo0m&HRbUe-J)yd`6k#ZUiQm2CjB7qVLD3}XzA!~|D!!Fhuv*KxE z3c!-+)+LezY%Kve76GY`L^A-{Xqj`G^AtvMC?MF&JzCMJVPM=V62^oVGL-SwAOo^c znxyEo2l$%D4tr2*BH|!rSb(tvV#DHeC>3>twK~+Cl93D-Wo-JiGlDr?GG3_huyCQ@ zk_x%CdPi>gpGn=MdOZi(C<%s(;h-d zVl==4oqB84>IL8yLl~=(b&$BtN$7Ep1>ybLxIz%gG@8Z`XBb9YVJe7_v=tDRa@I~K zSvjV4$*|(uNH;9c}^vuCuph67otNN-0sNrvIr3Lke_0#GH&Kl1gL>44FUcS zf<7%us9Daqp#X%0m-G!C7IhGGsNGe|~#Qr>1VJ4i9iXrnSF3o#&_ z1=5BZuna7EX#wJGklD-dk~^HhoU+m8wt$|EASF&4!Z_8Zy@{ZYvlZrIR#BbBLUd3d zOS^1z#zkslz7P+H2bII6@t`x4Drc#f3)AKqxipqxLVAZUtkwIV7~`^-1eyxu_-&ld zZA-~`!~|g5>dghr(avduZj3DqGZr-Hk!7dbrVUY)(Zbv0a<39K0GTa$;F!;&6McS( z%Jzj*R?u-}z_Fb^TNI=^V_HK;D81KWj37!N&k5^YR0y}LGh2wH=wa<9hBCt@51BC0 zb|l6!fw)^v6uC245@CXr$8G{XN@W;znN|fPVNA)(rY!n$0t$xQ3{B81mPBFR%Ml2L zKphKDN5)ZDMlybloX5trl|wswJ?e65+;x!(mWGH zF{_dBXQB{k^~UI2Z=AM9%Q%Sk`NFitNytemoGNojFz2E3@?8|lr0cicl$+FJlc;5!}mYWfyD5O)RC(4P9siO%@44U*b^bWTp5b9OC_qSt|)) zzC-}I08n|OI${X`iVvQdWyuR7ESeUyP~0!&#T+zLPOCp1+PpDJ zNhVmEz66(KnS-QKG|eZ0D8e)zl8Z5l(T>AnF=pW%1Z{Mn7DJiW;)uB@qe7908R#i1 z2}3v&mO>&-893k$v=u?Fo1Atq1}#G;%zVTeVJIo$ z0U7}_OW7QeOtFj+5zQb{ED#2o%euleglD2*jLFLYf722mQ)zr!y$Rq{LSPE>C;~z$ z9Tp==eTaZ#q+kJtw^3;vM$A|m@i7o&B{Rk(mH`BZ#r+7#uU?2tA+jjo>YOAV*pOyz z80EC$AwMKK0f&vTve)3#0xy@eAv7#w>I3)L^4F9oTi)ME{1a59DpG6k_PCLj!4 z=2Iu0@DqH1rSLGH(OY<{QDzm8sbM|i(4y*852Rm$c{huMFk4V!(_V>TiL@Pe zVj+E$hK;2zom3{8d08Wb@N&wQ5;zzHti3Sp)F!o9MvBvExX_cKvR&pF;1;lprs)V9 zLP8E%FoJlD(m=h4q_%`+Fp{DQlcZLg(4d5*1Bg)uGPjn2WtX4w>RHm7?*$aXNkU=F zVp7L06;Y5rOtNr>(V;3-a~uo-X;zr#(p0G@*W`6FSX|={;US*p``WI4Unkr1c^prBbXUXjurNc^XpOgx;d@0wdBkM8HBk zf&d9fT49)`g^nu&Nz0MRRTgQV=DWR|7)QpzHtRE7_`)LGihTs9xh3woeH zMB`>K4kMBP>~I;_iFV{7EJ2&%?oeLLqe%Gx|9wt~D-d9Syb4S(lF{d-Qz}Z7(^A4C zgwT9}G5UO=cml|3qey0AC_|YF@i1rf$|lYOl$Uu z5EE8m3y&ZfO!8QvC=kC2K<13bYc<(ia#HKnCZb-}k;`Xz2%~9^kn{ns-I~GdR6ZT1 zQvxH?P92XjVXxLl@jfSDkLmzQzm~V+x>OlL$)y_HCKWId+UbY1vR4O`8l&g@Az2;r zns6~xK5NTUP^$=`1Q*0fOmw9YLdf7@0O@`XvZmZx_4ho8^AkZ)0}_GTs|zT8GKJ$> zA?&ilWptX-;xtx<&@s$U%f-M3dORZmDUHA)Y|VDCxI~)ug-(Sor*vpOreI}&uCf}S zBb`n~Uy5e92&JQwJ|dRzCFw}7ipCQ zk}t$$F65VjJn%DhMEH~ErmaNU81XAci-*yMd4-b&yQv&aQ#rJmP7`L>5ug3Brg z2}`ns1?tZuN!g?Xy9GI^V_*!YKt#JBp}=JeBsD%F#R3{iIzqgig-t#T@O(ruC=MnT zu%s)e){5mjp9x$Xf2s#RP}W z5clfTQK`{1uFeMy$5_My*?BXU%cQjspTUACjVEck&_L+Kupj0zfyPPFoIpvNRnfTR z6i{tiElUTqf{hL^A>Ql`BdV^{5^ylYS%QUx3}8DPL&-D+xq$d1Lx=;&MjHY-%4rJr zc@#M9wQyPupye`8ds8kMv(skDh|qczfg#kHF+>CzDh5Q@!K7)kKU0|Tf~?OGLBbP) z0ahf9tT`C>(}e)nUQ30^Tm07(J% zibbLYqRt&1 z17JrnI!X32fU?7|fWeLeby$kuoTv9wK|64RfJckDe2~neVG+flq(mq@FgGQd^xB{# z1{t&-EtC;RlavG$ftWW0awQRhJT?gmMs4rMOL$cmgBbR!0V5;S>@AG*#zS zr?h9>S{V4Eq2xa%-H(>JGl?L|2ql`ob^`G(IzzB1njsD+&^#Xn46lvZ5yBefWtzm& zLY_~7om_5SHcM->&7s18$81dVELJYENSG({oEor0^6N0j&(LL}C9hvrR#t9S)^l<+ z5-5r%hKOaQzCc@+KGEMl*(MWM9 z0QT9kvib{ArB^5-mI;Yad6BOy5mla?tygJLELxffMFPD*3FXO-c(klkDC*_$1&YWb zB_{h4Mc^cwtgIRWcyExE<@onchClh{KWgJl4fLlI zU=zy9ssoJR@g;)bQzKv^Uumf?EdxdYKKJ|MTQVI}+f@&=O9AgDu-6(9Eq}DunU&SF zQ1+E7Lx?g(@s*~B{LupNRnx4jhT!l&uIu)Piv)FV9dMc`c&`uM)qbf7u50K8^@5;Y zI;{?Zw2%?ff&I0zvO52F%`FebpS%^7#{aNQXV9PEQiY{~GNmYzP|w>RTs`b7_w|x} zz%1rJy`U}V7f=uZ7K!*|%%`YrXaO3hRx}ur#nPh43t4|$KC8wvf7CClmb&qj>O|_s z)9P1hp*l6d%QJPsi~9G}i+{8(OQRlA@0mY*EUUhz#vjh`Uyo6D)%@o%4gWsoxxbES zq<(5#^YNdRcz~K8_|Nry_76V- zTYuL%>z@a``1e6A)uL_x+)!KB>Yt@s|6Tf}e^#r_zivv~|NaW?{#m;He=gneuZ=&C z=u$q6Kr{`ZgYW=yR*S~d|r~drQ`D;h*KX+*Vc^c@yx3lhl>S#6oX}JHd zJ6G=i7Uyd9XMv~xlY{+>(=|9rThH%rThM~bicn#_y4Q(fImyW z{C~G{h5uINO#fcx{#n}mcWKLCrL9?6TLE3(I%KQ|v(?wUs8NeJ>=qoDUIfi~;TiSl zAJ5Adva(*!a##w<)ZnZ0>I`aXYx%a@^6~rr=uywuuA`1F{L0-#TDbqHe%;a6zC8W; z)8jO^*$)26&4lZ<>wR@}(^G|3l5G0im6HXhx0lTNUK2~UN;G*(+N{oIY7^?8QF#sH3A-v$0>UT&%YeJ6(V4W7EOC zbtP=`bDQwz>pFHOmR;F&xAUQ?H}bc(r3Bk9oN%=DsPea$P^Xa6+JyWHDa zHIztg-&XL0xA?qu-tC-Y!yfL$E5094Q#DET(lMi>OSk=a#@40!-k`?yW*i!i`d6J3 zHw<0;So-+&@tIzaSD|wkHR9%bpBhr3>wo0KnHL7Q+wbUDul$4gZ!f63BAm>6QnSeh z&9WD!#_#m&a`?j!o7W?oE?aTw^w>jUlP&zn<=4*)I=1^x$+>kye%O8O#_umJ9`eSr zz$gWW-0;tMIS-eS4#2<-^YB5pmXt z&(kIGj~0->`KQ%ZI~^YNOJ$qrO#Fw#}C-MWyY-^26XB) zoZ38doj7ZQ>IzfVjU3pc+TM>j8NF8PWBA2)YPJ6qJsxCHPv}0A z$NheN0^Q(a{KcW4)GS*4;AF>}@AaVPJ?q_6_s`1qUYyh8-rVmu9UgosaDD5gO^-&g zJ?aA!b?0uA>9@S$e&f*|YQJb3Z{Kfh?d!Rr)ySqF>soJ1&Tjni;A`u;i@$H6E_a+c zW$4&9qtl-H`=mWH^M814#^=o!=VTUtdbU-aA#-(i!?jzyQ&pKu-BLZ^g}Uc1&uyQX z_s$zR+rF>>Hl4|mDGY@ENFzv}o3a`%n+$bFOZzIkol{#7riG1sB6)$&gavGJ{!ULMqA z%3CACLsrjNc4FL0dP*UOWK+#0XT^dXx#LqqDs$Dw*?;?dUgzx%sKiINUF1je+gB_( zW0}|E$bxjc@~Y+Tk6(ZDu-NUpN`6s?Ct-o7RxM~xzVh76r+N-dpWAx9X&Br8{_u|5 z8|>IyHE^u{fcB^KTi-pt@_05m{CfG9;eF}G{#kiJ)HSs6wE;(>fo89jy_MbJ)U*eq zM!OIFyt7Tf%uPIgKX~kMt8S}ax^;{6eKMzdOWz&`o|8n?P?u|z{6aMXuKnwYW#+3E zuJY*8_4kI%P(srx2F#2bQJ8Sz}jK4MRH*faz(1LxHJ^Jr>n9N@; z|1#|3nL8?5kL*_7{z4>%4qCQ!%Ak)XM|Zt!FSo4!pTMp56?xapZx{Z0Y0|Zm!;YevwwC*!kwpGIW*S3(RU7XpeYT2N>^ZMj;zCyP;*+1{`qdJEx%i|xvSNgkV z(8QnBa9=du@F)y*uiK*M(_NeuD=UBb`hxSF%S+jpE4mmaf3SOCzVdv%?JKHBUEi{K z`G`=b>@gE2h|3PVc(~b56FYaA)YARV=Eq0dKA({9>^`yw&wtqRxwGfb+TR(n8F|?F z+C~+b-t8qnbJ%)$?T95kxYe)BS+Joa^Z6%>W`92|5kVf>p6||lXqURbv(jGg$0I9j z&kw(L{My!`Z$7@^XRcItm2i4dpC>-}#apjldwSmKD<6$$IktyHF8gZQkn8UbI$b4n zneAKA;Ly@FbY%LJDbIy2ZGCXEqT}^bn|Es}>*ZCGxFlf4;YVYW1|D%RR@fs@cq;Lp$!aHE2_D z@ydzn11rvd@z#=yJJ$P%Q{$WmhOL_VU`e|-o2|JwzWJ8H7hZ0t_SeBqbm5>ugFYMe z#v5;Je`CAl#t6TE+NksAn>Me1q*d>8C%T@ln6STwW9)*JuOx3>U$!JOrd{v1Rt-PZ zyO-k*!9V`xQLP&zdVW1y&i-P_^u^mxcRkRuai8Yvk+L>Hi_Nx12e4b{6s?zi<_R@rcZGP?~I!?J59nXx{P4P=zFXw zi+AsG=D;w+(92UkZMUql{o>ubb|vaRaq-I0E6dGCF5UHTt7ld5-0E-kw(j$3$36$C zjk^@<{*F0^$FwNA|MEg^`gLyBo_C_}PiWl_o_#)Zu;CxQ+F|A4(VOcp`{2FRLw~zi ze|PN8?y|SWC+bw9{);D$mmTfCXUg3nqu)Bvan_u1CmIjln(4G>y#C5=^5c)EmVdYq zAMm6}Z%+J-Z+PW_t9iTm^_}O=|Jp>JwQhd@ve_RU2G-$Q-Mzkb?b%;Hu;q{Y?bR#Y zt;cJ<({cZMKVSN2d*6o_tA-S_grt0n)I;XVFs8OSWg*e{W+5feBYk$bO zcI?NAKOMPZ>hR`<<~cVim+dM(u(8%3LF3t5I`v0uUDp1yf86xfgB`o?t-O#gANtIA z;{35Sfdg12bLsu}&!NS=9J{v~b*9si`>i1*o#{VRuTy_h}0S@HPM z{p)A9jb5>0#j$?fhinF~qfFD+P%&MCk3 zBemtltkHE==k=^M?3i1~Z5e7DB3f4Wjh%gYe&2M*WI=6WF?OLKi(gps!&eW!?D;-A zC%;Yqp=a0c#0PB|nw~p~%n>yc8de`z`$C`c9<5ibF4_$@|MAGmZ=1Im-vd-26bkM9 z`I$QDr(Vkbedg0sO32;Qe)+QDfL~6C-HxwQoY$-86h!alzd8Z5#)9Mc61?hiqtj~w z?tHml`oey$+vxVigo0obQs zCh@~p6JOa>UgY>R_8BwjYqV?0LIE>*}8Lhn|rq z*REf`{`eUT7^Kan=G(Sy8tDOkO1?UI4(BiGMty~MY`xv#cwU-jT!NMHvK{eEY&1x=rA-Fxle&6)Fs ztJbXPu-^32?_`_212=#D;p@A1Q#m;+qgx+VTr7 zzjp1~h~F=~)4EUjlsy}ChZ;^A^lRSKImLGt4!eJQ?eJgDZtK>&=2x}Fkm=_2GYeii zefaR<(y`9!Dch-~Q!ae*W<9RS+bdRF8{d4$)+T#;L%F#fKIq%X{=x0#=>Y(G7Bi>dJGqFGZ<9i|5~Rr={`)TnW_gVLo-mz_PU1K-Zy(|yF_hsjWrw{;wH zrsa@TuZ|S!8D~*zI^SSw?thnbiaOiw%05w_Z(BvxgL^-%JTQNz@m*8#_mysX`MqsZ zw|r=5>-^#A)p^Z8Kz}{y$LU?%)4o~kUT}2QLQ&VQC*96DYW(=|bLOwY zuQj}O`|8ymwosQDz^v2Ty|(YY!j}26{gbb@Z5!!YHEQ(ev9l`Ey7KAW8tlA(|30&f zo_GOZ0({@mOxLsR-YJO=_s=|jl)QH{^ihw|t7jCw`ou#Ay7x33@Zj^=HEY${n#ft{ z{orY|v9n}NK?85a`N#cUyS<9|sQR;O`#-QPf3$OY7qMZ8nAf}Pi!Z)7KW;Qcf+Pr2I$x>pWl7G2m0pTd3_EFb0##u8h`Qj+wobtqRKY) zmQ++#pWiv1d$?lY`rx#diE3qRo01a!o$F@;D8Rm=-+R5Xan*zGzkHk9!mJ$JV?lTE zXX?|Kk9LO+FQ0X@@6idnb*DD1STUTOvSo2GfR^PmPnEQAaZyOA?xz#(opaJl7! z-|VsT^%IqjCbwr**q3(D&HBdC$7h$u9H>MOd^@YM&E6$P3z|(CQ2W#G`vBayS^ukN zcj-E)_V0RpSh#ZW@B0c~kPa=iGR}$~JNI^?-_mdg>b9@r)eY&gZxPxuy=&g$7GHf} zo6HiI_Rb3(*t>U9@tDf09d8)p7gyZ_nPGor=Y|c$&?t~$MjAe8{PF75{v#-r-+sua zvBJztnq!p!%Yma*44+c*mtn^joiot!5}+4EthUcbq%DvFxX9qw8Fa?*j?OIbcQQ(c{Ng zXNsn5>cDi{-NikB)glnT2gO56snA;w(j9wNEbcobbY{!2yd^tF*WzZkol^B{ljol= zjzsoOQktz=*|>Yl9DZ$Z+YJ!!#ch7G4~QWL$1GpidBwVY&s{k`diZGT(via--gAsU zvYh*J_Kcmta`VE|rY#zNzIQ78%$X67`>hD=dvD~;9{XOq^YgD&HP6-Ue|~D9%Sw=b z7CgM2!? z$%%IX7E5y*>l&=4%MZV``qxpzCRrcZ-)T@Tn!ft+U|#!WA3B!xv~0gJeo)D%PAyl@ z$yd5Fb9K9VpZ{nZd@q1L-OIURfWCBRsQ>v!LPIM+hr1iUd-cY2$Clo@_(fO6&0l_* za@hH8W^?IEfJb_AYIJC8uS#$*Jt}{InKtjUVrP z{OI9^1-I;f`onWmhd&FKPn%GAAm_@QIdj%T0M=LE08#MZ_KE1cxpP0wEqZoP1wSI( z^@pz~zmxdoSj?5b)In9;m~muK#~-IXLilC$3YPf(i#M;-zEs_6Qr|x39qn51U+u&f z-92a9Gh1IZ;@Fh=-1;{_c&zHI`>pf0QIPi7w_Mp(%~J=?Z{yaP)W-cB;bSJ=et6dE3>NRm%hI?H^4r4X%4~<#(YQXFnVM@c6D> z$bmg0Uao+j6+`D&eLT40#-`IaV0ph?*lm-l_nDur+3bfM6+H(Yy>nU|x2(m!J6|9D zq~LF-9y0)t*4;n9_~tjY#?(CaT4DmAe5($2u3J%20lInOq)GF8mv!Is!lykh93LKj z;Xo6y+PteEyYS5(Uw-k$yIXe-dVF!uoaNmhX#eir&U*{1rhId5$N131#3kFr7t8Mc z^1Y^6_f@XVnOl{ub?1KgVP~63D%+fSz6$$!_TAlGUhHpZo-2=h(zu$NuSZ~rv&_^4-Yft)jZ`0(vRPkw807Qri575;qX%eNcu+&ui=%_VE` zH^~04-JbB-3m*;H+N)n~*HceD{q(fv-vBbc_CQOmsNNyK_s;LP`%3k*vPX@qZeu1-?lOJD<;$1B+1C8#+_Ps-6+?b&Y3rQQ4amFKo7zXLo%a4t>b09d z@aRB8vZmDZRsae=bNJUC;v;($E>dr1FQ6t-y*n_)3cK4b*abi(zAo8EuVyXj@?cCERK{nj62&Cy8cGasp#x-l+ zYmgnoE^5A8=xBJ}cWgs^@!M~Iy=!Ln^;4U^E|3n7?W~_Iy#DQsaf`ck?tBpliSv`D zZ*sr%#!p99#%pI?ZcyDgxL_Hxa`lXCL0bGic=DcAdMDA3nEv z1Bk0tLxaKKxAXg{_PtL4WI22G)t!fz?psx7$dDoHYRwo~t4`-mokFL<HeX6=Nh>^Amiz;TBgrVyz2RO z#_GjmpKH@*2%s2;J3bu$e(8l>SGL^G3N{eyu5H+I)RGsf7d$>d>zu3BuI>1HD`V+C zUCA?@M+zg?^!T6iA@+TydyE>*z;W{^rl#el4j9Xs~XqenNV?p!cnz%g_EK7aUOC8$t}a?xIO^wYuTiU`Kq1o*`r7B0#KG!GqWz&1U7Gz|J3xU^BSmka>Nz)?_BS) z^XjoR1;X@ z%m74pax;4ieYokh#Xv(R0^%24zZpg!`B<>=>xSJg4-KvzeyuCNwky}^;372_JRAQK z1aS~nx|Hq-A9!PAUt)G&v^^lKRWpGWy>KFHU%u*q@-yY}_y^JDD_+@D@yYFfwqtzr-}CpJ&9q(9Yhzdtz6?L#lebJixY+%8W7Sh=xq14Fhk)&7 zPFg(nn-wZj?rPPll`d7$Bx^PZmup|X^(v5@Z`E%(?ajk01|ICJ>(Gr|)pqCdK^s=5 zf4jKWb?@T*l`Es5V;Z*Z-Lz@b#HGEhZ#$YTSzKFwX3^0TCz6-2XYt-u>(*f|*ZDd6m#=<*ee2^z>z(DV&s0vVo7nlaTR+|^`ypq{ zyfH!igXh0YFUm{LK6mcipjTc2ZgCt4qxRNuQ(n|5!+@4#o_@X8>pe!^_L*00+H@b# z_i7WM>zCh-zumA+MYq#afLQ7@=Y_Eg-hisBozhp6T03*)X8@+%|M}D=qGH*oT`yN0 z@9L^szkXG;Sz}=G-38LiOZ(03T{f;*;sQQ)W=h*{O%0ZPS15^Q+q3y|iFN@xaiiao%^Id+8-?QUA5Cel?-R&^1qY{pow4 zuk#!i13flG&-9;t^*~iU=dPK__SWey4j8cY`^Fc)ne`>pRr`4W*>Mn*>{6#roj!f~ z^jEa^626H-_Gwe zPuK03@W#AfyEfP+Km9?w?(p|x#ynHLuKMn;KWv~;&;Bog%ZIiM-kj-i<%b{4(`(gf zAUc}O)8;K{x19fE++j~O@%dkM>3HGzC(_kTd9&REYuF1^yPSNkukVYeRuB5n^FBzb z)lC-Q}jU$$gYR?ZiSkh`hM-g zjdcznbC4Nbw@q79yl0`~_96JtJWt+|_vI7o_Q0cVwtlr6=#*}+&9(r`nX_#ZUf8z2 z#(T;ifOq$cH|r%n;XetVAE7&WP#1Zofkv}%nYinVEyewZ-Al~==InDl7@fvuweIiR zsMZw@|ESySn`h6SeK|V&mB=FR2XJ2e$M3prD4rL@r_;~=G7GsC8aH`zb9Y)fw6xiZ zM0xqe*;)H~|ItdgC=Ni1!_uT;_hV#?6 zwPWWW@7k($>phj!hSCcq-Bfn9r0%oNo?QHTkIKu~$j<$qtA1sXzW$4OZKvlqZ{B<( zzfL~3eY*wi4S=ro3ukjX^+!v0*j6>mrsw7>$AL^9yMO1NTi4GlsAx3lrGDL+JFXg2 z3jb(6+iSxc6J0l&l}4VaaBeYFuUfwzWRp!jzBI4u`-%76Yk{TvCcn@Hn`>u40MA(1 zr}pfdZJD{VOqas=m}vRcqwo8=%>J&jR;{6nwl8*kG^Nv~c9SBfHtu&U{xP6={n?tp zzdAJ7c6Cl;ReKkmd#+W}rrW29hYtYkTpvC2=)rH_u70-Rwj1BUKJ?k|Ru?&Eo!giY zAN_HimqE}eM?PwOXsiobd~##ivWu#X8vq+OUeMWOx7z`VU%Au2#rf-#K}%QN8A%Nw zvc%`A8^6$M<>1X5k{J{^&3E(FRWLu-X@@n zM%Vd2XnD)1IJT~9w1b8aLU0W(2{aJgEw~4#(EyFRy9PpnYvT|!xHL|X2<}dBg1ftZ z)#o|ybKm>>em7(AC!==lz1Ny+t~slAHTEC3VB%T7LeMhM_}|NmiGeaZVo8XX(4J!m zsf$emGT`+(z->UE)V}Bp_`tWEiqwque@SPIU<_xAF12`_0>q?MrsD)CaE;0g3LKnj zmrZ4C?3g5G?ZxjNF%DB-@#;`PpmJd3SF?8#55exz7^RU2d%K#LDk!YD(v!@t^o+pNex$CBgOwWCa^Ez;nshu zsBv_F+9qT(9N=Ykbaeb0?{jrTJ;-G}@!4ECQ-FT@Kd@i{>g=mhZeCvM1(SA#5G#E@ zj3v)3D=VwEQ2ZmBOf;S`8WnQ$?-y^f_DETVITLlUpkhP zC7M5jQH|RD7Xa?rHYn66)rwl8G9c%3{0fMw8Mqm(-|Xyc{J?0QOfNhv4BhBiAoUXn z5;8p#6O&4o5cGdy^AJLC>E8H1--W z{WP@af2vK(%gcL@NJ&U~)AHdh0gn&)atZ!7+ut7V4+D_Vo>P^U*#ZvI-rk;4#Fv=I zRwqw73Xnsx=70hKSoUDC)dx^|GBFgdC@9)2hO+=NOYoXJS?}+pOv;A?idZn2NHCfC zq6uIUz`uC7yZfK-5HK?c0)_4A90A4777bX;lZlzBu^2A|#b+9yv0 zlqZ$k7~`7{2UbgM!u#18@kns74eQ!3Js-=^P*6rD0c+6Tb|nW1+cR7PcpNCSd_=*y zy5t6UOSnpl1U&e1C?(1jZk%QAW8g82X!i9dv&qHJt6QmMrGYI5Qp7o+7GM^ZUZk08 zo9T*ChMWAvH|kw|ec^5W@)y~5vWV9va`CT@0M27tsJGLzwFTSJV6IWj%*@E`K6(2Z zsEE%Yp`oei=?OU5iZao!1f|ht00#osDhBr^9smjBQd!~$tl76(K#@DsNkmwgk9-w} zdj0-{rGW;WU?_!(NWwaK$%?_i{0quK5fPY!E}01=1l4SD-2nH?0#=dP%FV-ru^%uR zm5S8FG#DH+Gzki+XmE{D>eg+*K}HRHbXaVWJM0APQm@v8nxsNLn2#@I;60_VH=Vi; zi-3Rt0|SFmn=dpeeQxy20^oHEJHrI=zdFiM zbo!-iVnPEkX!YiX*o_xrF&8>AUR7-qOmp07Ydl|Z7lXQE~|GZ07uR?IAkjxlhA2b*)IshGjgn+aG)x}&J@Yr z3x@#*Z)RjZdBW!7c70;j4D46P&o$|-%@jCwg<^lP^%k&b1WX#Se%A`2BS6Z%*>r?K zXh2JN9*2fSIufV*jBGF!+M^|H1+BWnCSKUKps`& zTKk1G0`(#=ul+o6L7?K0W!A25cl0ahWM5xNT?pXL;utv26W?qU)}C}lk#W$&=`xuQ zwk$-8x88fRJzZlRp#WMBjk@BrWmYxdSyNXsbyjrYRnF`370Z`P0gTt&HdBsX^_;Hf zfP+iCcwFnngIgOLi;Hd*_#pmkWD1bh37XCp+f2rQ1fUyl_3>zyXDozvDQW}Kf==O$ z_J8t6{`2Qg1lOwfiWpf=m64Fh?M_#!V5SuHw1j~91O&!}{K&M*!Bz}PaK&>@1*=U- zTxgw6waGx?bB>u@Udg3|{2dc`zS{BWDQ*AeP-em#Du1<6YL9V67(hJqm{9r4zrWFE zC6^{6BO+)6)MCr!lUbGKyM`!C-eUraB)PvPGpF>7#YjOx;pSeJLo?~k5ME)qE8;=9 z3M^a1Pk!koY;o#%wOg)hXo!`XI;hMYz*8Bn%D9%mJr*XW={blPAK)Rr`Gtkv#_Rjb zrJ4a?3)|OxP#)UkKf(SPa-SSH)^oE_`#9uaC@aqK*9YGZTUuJo2h+}fV~gsyc&b+L zVItl9FVT=ZaqD{e*DA47l0<; zvN&1mt^Jg>A+a^z#5pL7c&}_l<08n)wm|Z1h9us}(UF+Xkt+2(-t44tl%ZMs`gD^~ z1*J(4+635BTZyI>r?2V(Cj+?ZV=Bl$(=N zoE+5a{>F`rj4X9!d>p8%%e@)(i%yk30SyKPxMDnDWxm!3V>$E8An0SvD;USw6(ueneV%Z|_mS7U2&{~yl{|Nk}YJgl^IS5f%ak`OTP3<?e|PEy8#fi(%8^q(X%&I?515p zUMF`=O!Uxd369F0YPP^U=pte0_xifLkpf?!?gl z^(z&SqZmrju}Q%60c^V5@deNI9Plzg+XQ-z4&c(rxUJ8YeQ6sT%=14xqNGx>`nmuaRKqV|SyG0Z^ z4SwQw;Ta&Q_L8jRY}FO9y;fS|;NXZSK#QUxBW(d=lTeVztX+}FW|RfKy1E)j(T|>O7xElnHMr_$%u({%601iy_C$PX+2S-TAQNi1T=}k`cQD)Q=GM*AJLQVt8IT# z;(5Q?UOyXqlP*MdSoA!s9@;Bqd$BjYJ2^L>*KOhSaNHe5#!IEV9~=>t@)SVhS2kBR zw#qiYTW6&VFftNSSy>sB19G}C2&_+uW4gk?W;D06RJ#&!@`!7DV?ztzc|ZjN25;+N z;d?$64-aet@#u--vl$VKZpSNgK<+Pd6b4>d+PrgiJ^@h1YdibaYhmp`rdiuZGpZrB zUP1<*h?eSVczZE7DD3mV?zZDjnY}rjed4OLZCE>z8tsr04* z%BL%hHf!Xm0$hMXV=-*^yt?^Yey6t{(cg_JW08Xnk*8(yI4~VdD}N>8yE|JK6clua z{Dez78;Q1C@ER{HYXo%m96;`txDvFKE3!0(JvE1911Y7iOU+_T;p-`&yNjdx>8Gb=xHEG+CShxpG2_r zdVhCeAbv48=9S>ZAny`BSZ4%q0F6hpbv9+TN6SC=l%@gePQapD3ryka26WbiW;fHM z*n-5^*jRc6m@MZScJ%M=7lM`U564?EO{UJLi#?G&t`PX=zDysZ-KkPWl{U{~8pC(i zL0~169<_j~k0mafL(skyIC~zTuMm$!%HP4r5lttiYp%gT+YU0h86&ce+9_jD1pyT(g&`)|OSIPtq&Qxu2UgSe=V#k%1f8N~R0Uv7ql^g0wVpUqZfksC zkATDnC=2%Octtag{w@4Wtc z4|+4{X4g*)D`MAWsI7?O>Y#G8UrjnEKcc-lIoB*70NC8h-{3PCU9f_?iEkQcTK#~J z1k^j?eTw0ph!W9eFqjhu$oxpVgv>7Lc%qrCWzXkH+LA1dmhCiaA*~h?<_#<=crMsV z=#8HH_3}^cO8vjt*r>+F#uXJ6zEht+!1HB1`nvGpbnbN0z#sZXI05tC-kynx$(mIY z9}zV53&1I#$eFayL$`Z4I5?b}htCAQ@1%65ADi+M;e|vROHL)xM@7`xRAz8UwJh$f z^(M@8drD&@6wF4r*e$iSs(({1>s?%YSm}(g)l7(R5r?Hdg%&&f`u%%p8}p$)DsF9U z%`I%2duD`AM)HOKoig`}9_VIB{u4>9Wcn{5wlf#CR;x9xZ*C7dfKK=4tVhQfuHoav z8W8XZh*9-PgC^%rps+H}Oa68?QS~dLz)>J6w?8kxgLh5NN5U!VH6`N}dE{hC#fXEz zR=z#S4hEHmVHXEcQBed-FfNf4@T6geLIq!4-Mi3dp_oJr;|R?KZ~63ZbaA0_J(SDp z^~%L<4c^|YTg^HQKGbxaf|1fNE+ji!0pH7oYSZp3i=nO9tj2G<|85WiPJv$e%C;U3 zshDoM!qNTh$(S&R7oYk{nxWr(cUysDoCr6Q!ynOjX^gD#SXG}5>9F*hoIC&3K z(A&W3>yK&cB9Nx-_X@`bced!Wcb?fTcqcbBup4N@3~iyawN|EX!=G_zsrnILil9YZ zE-iBNOuSWi?@=67M%hK(AI34GM%~-lPQc8XEs%5@E~T{zcm<;h)La)JlYp>9dzR|^ ze1W}oqF3!s$0pyH98S)XK>t*ZU1VdZ)%OR;RA6@#Fb$RGp>g+_ahkyLsBv*g#+)Jj zEkV)`Q>9#yVz40r9aE^e7_Hwua~Mv5nh(-0qYJg>Yo=2cbGEn3avdUoKhNxi>9@)?c`W#j1c zWWqjuI$=WvJ;wk%?@I~4FhWty3`!*>T6itEvKP7=n!gceXO1T2qzLl}ibB&26X*0v1X z!+^`(R#EZ!BNCF>p%_eT$@ba2hL@iii|^!*#$VoH=eHUBp|!;_I&Hp~-BA%yQR_z1 zpe>>v+^rdoy~Hj*fo;ZKyV5}h0=-e zP&c;!Q>jFO_e>!81h~a!TEuGw<{qhvx z>z*++Sz0yh21@@%r&YAaU}P~1V1V}gtVh2`NaaK#m%!i_6yAPRMk7zb>O~2k;ES&@ zBU>s|l9he>2uBv<1+HccF~l?wb!@eiC;e!ErgsS6=oTH1#+8wuXL&CsOPeTN8`_yt zVc>ME^OX|uLNZq(FZseKZ7c4zb$n;pOpWc-%(9vYSe~5O2@kGlD%1c^9ZhaMB-X7{{%}e*|KEM`va}N+M%O118^fDMAs|Zt z+m@*k5ib_9ob@zJOPp*M*>9UJX7Y|#hv6%X;YJ_9;{;h)q~!e0Apz7#Up0XhDIuw# zACNXHB<6-U3O-ikm6{G6W!$~AG*R7yR+oliVp@gV$PU5m)>K6AZx7q=`f)(}094A4 zwkT&f7I96)M3;|4DrNa__uKoz_whmaF&9Nl z0oalPU9WbG{=NT!&uD0xWSNZZZ!0VoN}ZFuuf39^oKkEAZ)oyy(zHQiPH1)5ietyr9|2+*2%~kRn5D79cW_=`A z0{fdVer9r9im-=!0e2FdK7B;{Ev6CJ7w+jq9VP1mzP->>QBk?uqaR@f2o9R+ZfPCmXlp<==zaoYfN6B(_Xb;3(BjsV>-)=tg9CPU_PbKTK-VXbU{~CSx4yrB zVC62>QW#_Y-f5iZJq2Tnl9Oud7}N>8Z>|MG$C(QTqq!g4O&bLqv+0AzP@x!Oz0IS$ zxeIwx4cjy(!X{(`ma&h9{{E6&xmC^P>v|=Lz%bE^xtS<({u5whcQ!=l}&1q#Uw3=AigA3$S(k{DBN@xA`K z-itZri}fc`CV9p{p5je!%x7sFR0sTdREV`;77>`Q$m0+Y|HqZa{~0qdGil-GXBZPs zEaKtWw7-5O&b})H^qa>Ju-nUn$J?by63)d|pYHbPC$gA8;K+{u9+#q(;l3&yc69M5 ztu0Zjr^{=GiU-Z1x+k(Q=i`t>VK=#8?<_8KcZUVML5?K^`UH>r&^(C%rv`pXmg(u; zpeB(fcLZma0wI2*-iOk#vTYS=`jsMT0L!Vp!OgSY_DSyA1IUv2zMmvS?c&p6>T z6P;cZ8k1#(0P%ZZS?|NJ3L&Inkck%06lBw>0vUZr*+vZduo@CYxgZ+8*jMIRyA}7b z^rKV?s;GeZ&z?uBc5G;IjgC?2)Yb8-N(SH0_QEG4&jC)5zq&u#m#B~E>YMjmy)LX* z*l+pibv?>n8oDl_aCovF%Joh#4rgIYT{rC)rBX2Hs@R$AjwEqe{_*60#?UT`dbgV$5vpo@!W*>UW?Rt? zp`@x&Uc>BZs4$VDjvCRuN@QEQ?k23U819;u6%zooinMJOoc|ZgJB>tfsp%#Ig;(It zm^cXC3F?L(7G#Ivp-9IGdMbb}qjlwC>tW*Zk1vrakf4FqvmEjxmP`NEj|%QJ3KDb&#Z|%_PJIn zICTbBZ?3xB+92h9+BjWQ&vg^p`F)Zi>+$#q;+r=yEOcRP5f4AsXT3jG_kwFCH?@Xw z;yzL;VR4@b4cDN+2gEv3Q(4Mx1{<@jjZ!t_UGup%uxzS*uTPZHd5$aHK#4$)OzP;@ z#@1yid9Bd#I~4nsg}{b)QUs+I7Kd}#nxTF{c&v0$3^6BXjI}0XZH1eiHHK=G3CbWV z7xaTDN0aaU4fkU(x)??*{rk>WOM*n*M)<;snk(g-bF-W_o0tRLF_oW)nvB*ig2Cg& z>>C^Qk_mPh_DakQ@~TpbSLLClrKOdXY>(mp-eNY+CP64(62mO#^W|rUx257g$xyF@ zrhd?9Te7O?=>Z%moI5zUsnL)=F}3{=`70N5va7S$EDW1c#9}BThEnu|%^Rc!u&un8 z$K}FMj-b>%w9}IPo78BH)HTj@EX{POJ|>j{7R|4DUzo)Cn|3~7_cwI9?@x&*H#bu` zEwcDsJ_Rfw$C3hz>2pushisA2TIZ$vG>qLUoJv&w4C%DNjB#iKkWzUpVxdg*jdXl& z`gw*KeIHwSwXfyE8}&l4P8Ah3bx^=IG8NzxCgh@(4S5|ii!#8k@-|{hmeqqOKVs2> z7j+sXVDc+=LmA^Xf{pHFBtqWOmL1NmR|6ZsI9=Oy^IV8R~Tn_Wcy?34Tn2Tg1 z^q4(E0~K0Ivgsy5v}v~Q$6NKHcn`cJe_OHVZf+9KSEBPbNXdZzAC^Epk|IRXhZfUDI`NH%j^Y*{6nINLH@&Gca%wQK%d ze4iF4YO%1eu)4Z>{Tl?rh%Fczh5g_%29^sH>6b5Gd?iRByw(PA8Te~r+6c$tBi$P7 zbsqp9HJr2qw1WmE+C*c8xItd0(Kc(fRWj$72ZXs}u0%47h(j))$nzWQ7gn&5L3Cm; z0hw$#xq$1|WU2P*%F5NJ+Lw5wHD2$huEZ-MWq$n%`Q$>TdvDr_z37d78nZF3qy~!t zvvl7N_m*1J^?311rfv(w6PlA<=vg?&u6W1>S_4r`SciI@TqXo@B1u&eJJn`P!~blX z+`XY>Q=OKWY7<=JS|`}(7ip$>LleBos1u4?Lyne4BmZ(v|Cm_|TA&`J3mvTlnkKGdR@Pa#|s!Gfk;NRYI0bPrnXM zI#)Y2`>@pEo$_U|FY$9)wyEr6)*2t;1#y7Te{S>^f`*DZGdl~%P_(>`xlEjpg9RU^>tbB$6BK=BC>GeCnI@ z$>1&fKDT`#%(=3Pbc9|kCGax&`VhrNXb_}j1|<(x5RmiEG=2KU^h44W>Ze>eLOgtJ z#*{CV`$&C3V7C_uWFC zJNVFW<1qT) zXZ-Z3k}zg%Ryw*6JK3Y-<5X@NLI_n7n^Bv7wMl41L`3a}?Xd!3@3Rl3BuQp)-}{&9 zcR%7IFtdnChRd@!g&0M5b~)hm=42MGa3S@Ut3O(G4KKMtms=%Aov_qmzkWbz0~H{#83>zekA}k zHm-JB?OIz~GwqHh0P7sx-(GfnWzntmJm1mm3@7-)urNQ*q*-$I_jj0d6zM{%PqHlm z85wgz@1Hk^uLRxoYb|m3m$%X1k|U!%|IiPNW_&!HZ{pBMZ#C`>goFhjUjn9zp&7K$FZ?L(2&cc$b(DBz~yN3eoLO(@M-gxGS+@S zvwpsYiu36r=iUf-JcHF9xq6bJhTm|O@LdiP2wIF@1nv!~G-~(PPtbtzIxK?K3!mH2 zSkuj#mf|rg>wkCOPheC@<8@%w?s2}o*oOvr#tndJX=$w>Y0%!|Hz(s0?&`_41{`@a z&v7FH41JxhI#ukmB|}qmYtJkpcalzv&jmi0G52S#_eTT9@9(HtJkbemAJegkd)8kG zk@j==ho8Yf2|XNv7yzm0QUty{TvD0n;g&O#i&pXR@nK_QYg%D}&cEBI>@l z!iugdMaE!5cw=8YllifE3vVqxL<+XM&!l2&)bH@l325sALgH+EH>UnDi zF4Bto^!Jd1*}4c(*+45~U<=-RQIw*Kkjv*3LVSMkv#d3i8&Hmbh!Olpp7>vdP_N;9 z-sh4qc5`#g9Zi@0ovT0e?L~O2(d!Z!TLhEItOk9QbU$i?z~>$1dJPpj5w1WuWiu8M zhAgX#q`u_Qd;ZO5<}iQ(O7&n#D|@D{tGxmSG$QKgC}xF+ih_XU6`E?XXV79s!&YyC z5;j~syz6vrrFh@pVm%!9$EBNgu;>h;31Zv9LSo+v(Lmz=Z^g87CI95>$3LXJ%P;saL8{{i5 zq-`*Dysmil*W#qnU@!gbuMSh)_D5Fl2G3)Yhxbnyo6xZdJHy@tCZKIVY`hebr2@GFcZRr%J zj5~O$ORiyR9|agoFZE)~%svh-m8@+RYu4-X9l?f-Tqf%C zheWJ=zkvZ-zzU;Moc1&1QyNf zqGlBcq3>Z05d>LNLsqLF(zmW>q|m9jB11yWO>gVI!S&mG`2&9ZXJ!g=zh%)yBl0Dj z*(myc*dOm1^O(UQW@X%M*m_jFRAGH-lbLKNF}9@|=FbX+w}6F0uzkuC1`J?s{dw2p z(RbJ-xQd5}8SI9DdJfzb~#mW9=GofO)c`)DoHctw?@`vmGIKud52d&CSid zGDS#rs*xIJF5k+p-;CY%)y zAD5(j%~wic%b38(nr>5-e7$_WGFn&spAjEz8mD`RQeqmiy8zWwJuz_+?IWYZ2o7Oz z!{uzhL*e>6Q)6+*j;x5=Gd3|JV&SuQr{kn3v&Aan>F;>r$mE&#LD$SH*LmA2)B1tC zMDbU!Eh3&;Rm_Wn9c~yuh^Q3QyDdJcoCHIi#ALR(aE0(lJ-J_d*B5<)3#rxZoegng zN3&)&zD%3&@_b&@4fWccV)>sS*=E$MlK0`&y*uO94CKP>KN{%8XK{>K};A>i32%>5FJW4k{o{-WFl%L!Ajk;tAeZ#o*x#{@;|G zKj{9sIDx8PF&cxJ@z0%o0t-7?!uo|S539ke;V8DWmRQPe9PiJe$ZdTmJ#n=E-96tE z_`sb`n{!in^8Q=KZ%XG(-`!mr-?kO;1=F4pszDAGz9);C2g)Hq(geu5C19!K)u$$G zDvk3ldk%yCmMw0w5T`xqE&hD?e6=ZhzyK%#1%MHcatN4{x`=A?@|bkS%6fV#A)V*G z#$|JkR(isjVyo7L&o{OA2?PlTSi(;Wn0EwQ@EN%{%FIR$m0s;<%NaH0ynsh6o2fr^ zjOpb^RUX%M&Ht|F;d(Rse-{69rb+;drbodDWk!nqW8yP4()N3v*Hk~$oMiik$jkW} zCH6h+`8%D+bHW0_K~I6;FZ;lBu?JD#L_OT=si}{79=H67HQF^y)sO{J(j0x(J2p9) zWLJQGm5wfe_Rl`Tz;!PrV~H5`)4sigT127t=DO|vQO(N$)B_HY1-q%@U>!13cpm?| zZ-3dpvbw}?z$d=_IP=mAL3HFc3p~HtN@)_q zz?yFPo75SxJ#w2N+0W2N6}D_rD~89U?EVf-p5B4x6@I;h`yxshX%5R6aO@~s< zR5~xk4O1MQ3=gGd3G%tTFCVyRe(6upMR+)z#_Z|c=DRpKL1iq3^V=<&TsD;-QdE(k zR`b9ehElOCg7t$XB~m=!ioe+9s~cBIaHW>DdQNg8sv4_L$Cx_k;dHcT%KYNsDU0+; zu5H3?oe6xt)rU7=;Pn$YmpxD|n^QmarWp;0?2LoOQMVtmsoXd|Dss=(`G{I;D2+xJ zcRge#$+#Dj)cnvVU&qn?0vO@K7uNkyudNa4|Fx2u_Uue@7d5W1FCp(@iROLS?!dAO zEuAGi-sb{a+g8lpst_T69h3JB0x{+~;mE=?tH-`t2PD70zlCIp_@#-OC;otv;NwGW zY;KQNWtzROj{YK{KFi>93f83Hcg_c#gH!}zxn}9qdVjJU!<#q7>fe+BccE8fj#WMb zIKmWm)2)+wySdp0hhd&%pctM2Ns<(fnB{g&w#1>0W(%Ge*DJHmQ_1ett|TNZD54RO zUe9`4J5}-5tfQJD2i)?#Pd}}n@E&|yn!Wdz4$^{dB(}O(d&k*zW(?2g7)N2~w_j*3 z*R2a@Wz%mQ0nG5?VpcB)@DI?fk9ViokVUwe!g^m)@2>)dWZee)`@g@@$;i?>Iy$bd zJWa*{Puh&}b97Yo#?&~r-~rKwbgsLCx*jzZXk^Q|%2bEoy~(+Eu(CXGau!EVG?Y-!b(>qcO-5mg~}E zQ9hKveuuR>-+LnQeZu=N8gtd`^=F1J;Az(z@Q}S53z^^aQ5dEF)}Lxxr?EPl=__Pu z3=J6i3v$bmuTQ4wlIV>mid04K&&K0uWn{AyS=YmP4YoI+b3cCku%0X#%o6^tQLL69 zZ}0pc?^;7a_20GpWl3X*K*L$PKK{fiYvsB}EMy$~(NcVHRZ2F;xOGQAQ(wmwMDwcJ z`@N>N_B7z-Bgy&UfXf4PFJnT>!~HEb@!LQp-X!s8hJO#Rg%LCM|MShPdLiI1mi#VX zrOL!VS9OjcWC66HX0?e_t{g9KgM1Q`-_=o$YMwL@RC?6v>S~TuFcVYw1qiZ3Ns1TJ7=v0)xSZEuP}Z|IJj^4hw0|kB`rs?JGki1QfTAObJuOnIb5JKiy@wo`NEF zwr;Mh6;1G^H11MWpfuK-YDf|J z1NOjqcx#w5FkDdc9(>JKR}%Vp9dK^a(d2TkaKqOx_UB%alV3>`78U|h)9C77moa?f=j%)Ln8!v;|FT-haTz2_ z>n8gewmFnps@H({Nb;-i!<`r4wIB2H$3@e}->Z~WJ$|J+WS9TZX z=dXATl3Dc3ZEg4V_6D+7wzhg2B&#PxaGQ}vMGcpH{C?bnm^HHd9`Jf{sA4&9k_3YA z)ACkPjh3{^mI=n3UFb3WblIF9J`o^uO}cx1igP`2Gz9b7%}N@v^ii8&JSXRKoGj72 z#wH|maXD>laH)%w*(F}&g8z2xa;RwJx8ib=g$!-^ z<-M7jvw~c5LvS7F-?bUSjZ0u1@kFu>V-JL-3>!N)$fb@_HiwIT{C2)`vL1KFLQ%HI zMfLBhTU<6@_!YlK?}WS3<}kl(h0e9ur9Me5t0(w^fjVY*h#KFJ?Ju9n)tiyjuu?Vo zlf^G=1$(ua9TMBoUGV)qIJAAJgb=@fEDDk8_=q^7%E892op~9ur)%u^vPl>HY++jE z*1w+VvCkB*Vs#1BcT;w$8)Fv`Y#aGz>XAx`r2@T)7 z_Dr}d#iUWjJhtB9%PI}@T6OKuCFy7~i}>73IPM+2NVXuZ76?MSxXsr+HE%pMX@d6R z-Uy5aM(Bo6kiAi+b4AUqv?ab}r_>7;dthG=IebYIJN}-EyMbB)4eqTq56iqybu~}N zs)*7l7SrQwMy*U7LwZ`c)7FxhKNSW=q(q$cvmgtefHWfj>r|^#_Cb5^#)G^oj-xu63wXH)2M^yUtb*3yPuz}3@-SYfD zcL_Qo{>{#T_qd6Jt5iuRU z!Vcr^OJNzr`sMAV?L+iXo}J z4No|T#`@n$%FD9xQCXerxN|~!4)9wBT+8CqRt!wPn z&`1sfXp-6k`XEjS6_7z;^S;DaQ&SEzJ<(dVQ>EG$SI4h(MsGsgAN?oUB?RdP%6m#a zi|A;5n7Ph7xhMY#sFbaK;J>W-#;{C)l7$3~fnpKiaWw*5^$ z&+Wo)m9E;({;#u=C+g&(CaEbYvPKl2{Sm+sW)LKc&pNktlwsC&an<)c(AU(ekPi+m zx8@&)9QqSGWZI}x9`d)S-CSKk&CSP>(Q}s&71vH8Lf)a))#Xu3Q!D;4!^OoaiHYBR z!?pETd0!p*Y%A;-N&nJN}jvc)mwVT`9&5eyQZPb599iPoxnI&~ed)3lZX9r|GTsfg?!Q{*C51Wtw z!o5?>=i4qjW`8kJP&&$CUGVa9cFb_RM$h@SOM zazb~VAbWuTGf%U<4CD0kG!c#0uw*u)LN*MPI3tXw@z|-6yK^2aWb32h9bJ*zT_vi$ zys3(Cx)IlzEeD;}Q7gTTG5MlIF>7lkKRK$;cN}6b)3(Pw^z_<|k%e`s%T=<`7Z=NQ z-i#64-ZxY-V%sGU=*asMA5Pw}A^F$6WLhuLEZvHDBEAM}59M#8UW4KJUQ=?^xn*c= z5c2OAloh?YuMT{YK2dhf?HUIBEn^4j(s}KvA3N1&atwnYDrfRn5;Hn6 zTC!w(j<(X$5Un8Beh!Yl!L-?nvbCOw8>Fp)vJ$ed;XFR`=5CXTl=cuvmKv& zYGZiF(lg@SYvSJN-p$OehSez;ypK-Gjdvh3AiMVQde(Vzb-a3J7D(lV*jumZ)zRC# z%s(_-KDV6A+B~N8GT-)RYM$ZE&l+V~^^~Z}@yz6MJYn4rmB#?|?58%ge`oZvopl}U z+fm`!%Ja*>B3=&Ig;AICHrvn4m~Hr^+mp`4PUhpj9$F| z&t#tiH-{hVs()5q;|HDZoSWaAO_lvf6zgWliD94s2dXeN(Ya6nRH>C3h5W-~O4<3BjuwLNv+ zrO}XIo+{TnYml;vVPAAUqmSGIpBD5#zN`}_P`w51+W0I@@V zr4jld38O|IU{O|tn_ku-1{yoMzo@GpGD8I^x!kT3F>0yGH_+2-X1#5`M?SLQFf3G){?OzVi>mE`2yeicLY9FQ;K9mIT&+{_?L(zNpZ)=*5nD&1VhdMATZ)I5=U z?A6|2x(Jyxj3nI8U%upA3Iu z+#Qfb*0EP#oflQx?tpR-EVx{GK}AaQ&&YZGnZPH^5E8NRj+;x5;lau4^eFr>!ySixQJA|Ha^|(ROnauN517qpjWNrguyZm%zp}v zm#>o5m}t$rJNjnElC-}!Nli?YJak4;4MvpG`g4jF+yLFydTjl!;3zi43 zIqd*7-1TcXSbtVco`jTC{?GwM^`GKfzq^=w1hd4jn*)sf*7?_fw43o%xS>K;)*uIaV>I3A^)7*ID-&zp8&8qmo!hya0`}laKs^FYW z80_M@w%1NsrShk>-l%Tc<7R~P_@f>PA))l4EsE+F#H2|b-AfJi(dP6|lv3~SPA#>V zM)-h+$AWFu+Yb7?HH=c&ewx zIN})*RnF_@n!dMkZQPQ4+OEHL^Qs^bQ1iK$T){;Mo$*<~e(`Ru%bd6LnWf2v$xy~v z0D>#j)aYZX_Y?A^9)Ei>8?-^TxWC{ceo1n~hg5vxpR6OB5Bv$fY?|n}Ih%Qfr=FgK z&eg}kA#$2!cad&kpmiiNJET(D>>E#CkSOSJknh16Y#E5y9G0xg@ZJ(-K%Q9Z%$&+_ z&+Be$jZf@Fquj3a7pXNS6fRoE~sVzcF>zj_3 z7~bsi&)+(7V(P}5!(=|qb!>Oot9B1{f5&Fd+9Lq@9Jtv1G?(O`L0yA(Sc^ou1-<$P z0UypmN_DNCs*5frbLlQoIv5ip2R@q5DI}Kudi@MWwX(80V~~D1h~Su9_JGIxLX~Vs zY3h-On#EQJ7QLxRK(N;VKy%LtC}l|?t$tTD1r?8%`mM(rJCxsn_;u&A7t$}I5b0NY z`R-kAdD#IRP>WLyhdaB|SP*)#@sSHDp2P?1p}rjJh%6nS&NE*RqPV_*d1Z!#(K#Y< zE@=cIiU)$YpgkOSKXp`hmjaN0azusCHIyn+%sl`dNksPc|jZpBo^9xL>Tmch zDwntKn{H&$B`KZKAV@bzHv)om3rKf|AdPejNVkB5gtUZoqm;CC^UTt{_ix|NeY|nCIGTS{4SrkY+JIq=%0{X95e*BH1w-fVaO6}Xg$qQ?Jw#1R7m1Wzw54v{cP zJ|nr+<<;BGw;8rAz)rmSIbJxJ!oJyaG+wB1;tJaKd$7abaa+~bpE7I7o^;g6ylpTA z%!@ro;WwdEok!0e>+9=F%4-|@y*2ZX5Rt`>OG;Yb{WLMalrV;)dG_P26&+o(kN!`? z){2l29^)T^daASK`bj}S?LU&@p=+na#Kb4klCgQei~HEGo6FJw_!OHvuASs$VoZ{c z_lH6DoB0h5g9-6WHB{u~vb&eZ?C|jO7gt{k6P-X5j$}Q}Z=?*w!-kG?WFoWn{^`%! z5KX+Pva*`?JI}n39^A87d);cQa5Y+YjhUCNE!*Sqqt9)Z=El7-zieCC^bVG) zRaNVuj!Oi@P^lIVCMvP~PJspqIeAuky21f30;4q;VKofddWIKCcB8feH=;m1EMQnhqymOyIP)PLE4xgXW)pjIE9>TnNm2ve*(&2R+mABW zmh+#QRAu{M^yt^`8PwwW1k|p8lgn~YN>$@gCiK5oM73J>bskJEC8{2?tF7^b;F*4r z_O5$dYd25AqHnIeQ*d+c86O|N6&*s^6Y+aM7$ePmzh*t1uP@E4e{FRkgPnW2UBAAq z`3TCK!FG#RuVrN^!2Q}2eDCjkJQb*9Ie@>%nusz%29dGIxgC~nmi_K&vHY(0_#`B{ zW@dES#1s`3cc#jtqoe2RZ3rnSuy_D2J$Ued$9e(<6O+~sI?ZG?PNTNeV5i^idwcOs zp-soI-FIA3539S=qI=nKaIdeYL+jOwF_ zMN<5+eSprBCr>I2ThkJQ0t4q7>};&92cpdM^z?cn@%!y?8*FFC%XGPvvchKP=H3?+ zaD#i(({J8hpXa>qOoybVr&9>JzDZR0sB?EZZS?K^Gx$OptlOJTTifqClVhsamllM) zC;9k&oLqx!2G%vE{f|L2)QpUlp_`X3tDxl3{&A<{?xW#!z9c41`Df2)vCemA;kRcB z6$lMkj9NW4bHzi-%2*h>n4z<35>(XGoxQ!tXrs_)#F@3q{DF<$rnl6fTB)k$TAXQ#Emr8b2vWx1<3wGgfY55 z{^Mcdu{D|t^6aL_g&16jLzmLK$GN~)IXE~}u=;7~{k|ogz-%tH`?Z5ad5F`Zl=);d zKEr8muD<#8PP|hDzJfd1%Km;>Y3N#RGcr5 z%$S)=Ek?3<>=%ggLbJ1>_EuL@12>m8v>rvRj=v=ESW>WxN5%i zn5Ld7=$L6}-oqy@-BYe58|U?Y& zTjn~Q?am6i?o!hGUaqGoX9=y!JDQgyJ8!a`?d14;baYP;e3~_at3{ zoa_FLXFm?J9?d!eGIG1;Y2*?u$`RwAbTEty{eHYZ_wVkGWD06G+8c~wFhDnc>gx-? zpJJwoF*i4#ot>qO1}>|ttlU^t_0ee^jsD)^O&X6)y!jK>WFYIei&bkuitdC8ROV7b zE(_n0NZ2&A>+@x&D8k0)pWIPc~;;ybYVi+2XhS;&Wib-5s^jCM>VroManr3?(hXpV0q&ulwN7v~FOKlz&r`$Mfe8 z8B^e@5uBWyIy}W_Q%jcc$@1IyfLs)>j^neUW~Z5|3kZd;Qje7B;$m zcbC)H_!%K9&Sj5w$&Ha@U!@k6tenK}B8BHidiK)eWGgOxo?CzZvCYnNtvvZR>->UP zrXjG=HP`3NY&tL69CJy54GGu{Zw^-_Jdr77`$hk}yQc;sO3>zFRn^*BRR0?FHn}Wm zaxoV2X*Qf`aG16Br3}2^J%zVV&$8#@$5)ShGm#nl0f`k5#pdY{#4Icy*kS@e|gMTs*^qHdu7E2K4KxvFQ28>LfOa958Z5e{nz<<`|BNoTg6AR z{l7c@pZylyU-{rqbE z{juxBH>zFt^lpY>CAFdcTm9>3eK39Q`)sYn$zdU4s-o-F$HLmpkmuHII{1bzKLOLw$XpdV6n-qA^-5eex($%Is`3#3mDmDl)di z?>$jGHd7xzDsFx2UH(EBJ^8piHEA-{=bEHCFjpcup8D5$5wpnL-9`SFPab5qH($P? zrOH@ZZXIuq{ItLmljnu9j|)PdLJWn-{`xwP`=PsF%W(F#pMvKpn(uYP!&2gAGcI%Q zi&U+KHqqqR7b^!2Z7)8v*9mQ`?(BGd??zQ*z&4PCHb&{!$f1ABNXkv;Cn*RFKe z8j73;#{N1G`c+pWacxbmS8%auCXQG3fFrwbzaNS$67)zUu$Y@Sd)1#jia6~@28XjTg` zGxw!S>9=od+piNsn`v=#u(oEpwWSKL_^n%0

QTU^T<8ylmd1Wi+0Jr`f%SIF*l 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 literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/client-event-scripts/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/client-event-scripts/resource.json new file mode 100644 index 0000000..aa620b0 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/client-event-scripts/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "C", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "194b82d38fc51a8bab6b0f890b427f6548df1ae3acc1f1553181ccbec6ac2fc2", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/client-tags/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/client-tags/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..0457110fa9963e2c0b19ad72694a0d908c071ff5 GIT binary patch literal 2553 zcmV$mlLuiy0WR~LTqhwy*y%76O#-)}Ac@{fOGjQJV!Y2W_#{70cNb%nKVje(8w^> zSFRGr_ZS;a%4sPh$q959!75QLsD_q9ZwfG7EuuBen6w+y4JBumjO}tk3o7NZuI21u zmv`AHk?6sseT5L9r-5xoh-Q;Q1}xc6L4IwmJFU#^vRVm}4ewPIT{E{q4?2#;q=cBg zFG|rxXv<*7iO0&860Dk<9*iqwg%D%o5p_eU>SjQAu90!`j178o-e#;nvzipqjKD4# zqndjXxQyN>dsw6W5~xN&t5g7~#Ayul!XEWm^cK9{b@W89cNM)`SdpA=pmhSSQc=we zv=@r`6-BSA80`o8M({>(E;xhUu!SbQt^pmBquH1c5@XqPW;I4yy@m;Dv06YAlaI+O zVhYYD!u!HY(UiQLfZFUBh*V5s`INDN^rB!Hn z{K<8vOIU1DA)ArHOWEawlu2XsA>iV3Q!VDzyd#FDl5d;^JsHSKX`KPX1@dm%1o4Gb~efA25;ZdV$IhD!Esfb8Q-e>G`r~Z;G z>AF_jOerRb3gL&+%b{dUrVx3(i{x)P9ukk6Bi=xu=568u#;$Zq<rWW3Tf?sAxG^ zN=QV>Bo|-`Yjqpb!ea~z(P&DH3giaaxEvw$I`))MG^d8eni{Y0NoG3uO=>eU{oTX#A*+?qMk?F5+3c7$oc!tE|i-=3Th2n zWGM>IA7@eWKD&L2vhn)QT8ES`@Y7x+U29Xw}NJJzPyaj)7+!~wP zh?g|bhb8**>y%R_@mEU@PF_Hm_ZO==-S@%18wQf(vy$vm62LarEa-FgYan1IDA*U-9VvS`RES8Ld zLZ+WXV)r)6baq8bOLls^iy0e=UZL4vA~o)Cf}db<*Q`{H-K0+|lDt=_JSAF=1E5x$ z@|Mpszh!si#PO7vh)_ayY6(;>W6Q~8o#R5bAu&OzntCHBY`Uxj#$ZDrWRsLu{Ed(IK+P5HmK1M8*GA;J0^=}eQX z&2)}>bdC|7b57%kL*#h#j1$%jznwP8=b4{`vAFqNZglGup-(qT@j5YaX`b;}q{yx) zOQ^=9?TYm^P6@P_((mX!X?r$3Qn3Cr4ra=m`X))ztid@?=d<-XPdGZi)pka}nL+6D zT5=5qH4v42bSPpEIz~5l1(VMTxLo z7}AfQe)>A1(C>T~Ezx%T>`8%)cZ(X|(@?j)9|#M{f-+}fH@!Vs5a4dBpSH7>x|+q$ ziPShnX&s&yB5PNMqmU*C1xJA@oc zAK5)581{J41HW}hkRJA=iG#_|!Q2hHybT5_ji7?tM!ox-p*6KxY&OST~j636FH7hi; z|Ja-JN&TF0Z_cO9bF$u?&zN)MRTD|s&#@9kF~!w-N5@JuedzGdk4`i^F!pzRel+PQ zm*aX)&2ynuF7$@0(n(I0h)8$Odk6V+xN9A6Rl1!QYQBb^zoFOH(CcsL?VZE-V8PKl z*lmLCGlyGlMB@#~I(lHqnx>2#QdXw9qa5j%8e?q}E;YsvBgF<-E$%maF}*fUqdat? zZS-5@xKiFDF0{sle$0h_(vfzPTr_nqbb$+9kT0{Q1Q{ zTKwDBt23s9hEwuq literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/client-tags/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/client-tags/resource.json new file mode 100644 index 0000000..dc1b660 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/client-tags/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "C", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "6582e620f1a5c1d8b080021d686fa3346d1c7c52ae346f759c9ff2ce342cd844", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/launch-properties/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/launch-properties/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..a69486c823c3924c773644f176925fe07c5c71fd GIT binary patch literal 451 zcmV;!0X+U6iwFP!000000CiD4ZxcZfor`UJaR`o`1R+GR6%x(LdxRte8VE(Oa>4}? zw99#8FJx~|cY6+$`~XCU(&P`&An`At;MlnLWSr@$=!Y;j^zF zzCS$r^yM27tq?`;A6)$SN&o+@~I!CocmR?0mpic{r|l%7mo0JZI_*D7-r+*P8- znKfMJ<2rMCrey7`kxtv3pUBMF@?Bvx2gD##l-3hrii#i0I?tvf@1xN*4Arn(n2VvQ ze48o*Hc~NBBRln=HGm9k7a5&^4#Jo=8%-eH1HK!dpkt(|Tc%;aT<6$cY+B zH$^r=;iQyCo!RmYpQ*Bf=y0OmJ{Mf<@MMrA1Ci_rfqaAL_OexHy1F#;CYz8nDz#DU z*iI}<)mYbt7x@IW4QxBV>kB=;RMW&Qg$QE@h+Bvq_?45UKzxPhR%&xLtaCQlW#az9 z&fSA#j~zaF&b-VU6eLm0+L7U3Jq;VUl};k`M${}0~(t8;S^y|o;@{RaU<62smC000Bb+0Fm} literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/launch-properties/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/launch-properties/resource.json new file mode 100644 index 0000000..2c9188b --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/launch-properties/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "CG", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "85c03fe637045b0e89db42259058651ed4afb214931f9b07bae8c0aacdfa6eaf", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/login-properties/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/login-properties/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..e41ef1234fc0d7fc4fbbc591b374c0387e30c0b8 GIT binary patch literal 363 zcmV-x0hIn9iwFP!000000Buk^P6IIz9TP&9d`Rd}MB$dk+FgP|BDzpOL_~^6)Mn!Z z!#ZAhy+JtyLZU#Nfd+}51Hciu2rXkwL4hU9GtX~k-n^&1`{%*e@ci}eKaTpH13EaK&^U|^-5{iDudmf*J=SIJBixUBQ3v5I zoRnLG5eg@6;yTv!euyDv1Ymn+xDvP8-27441Za9Styn*=1ABC z7@}k*7t^h4tV2$1b#Ot1ztOp18)ovN2(BK=cX3~r0pGnsw=4l-e71{iMIj>{S92F<~Ob! JLkQ;q007ADqxk>; literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/login-properties/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/login-properties/resource.json new file mode 100644 index 0000000..0475d39 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/login-properties/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "C", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "f42d08c007a9a1645bae004bf62ae825be32ae49a8373a27b3f591e5f1df52b9", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/polling-properties/data.bin b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/polling-properties/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..a013f99627d8c0352e7ae243f5c5ec7a304a0df9 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiEZPQx$|JyS~3mI57+5Ms!L#A3x!M4_;i0aYL>(H{t| zi%jD?*RY+ DMeCvE literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/polling-properties/resource.json b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/polling-properties/resource.json new file mode 100644 index 0000000..778f221 --- /dev/null +++ b/project/dcframe1-hmi1/Core/com.inductiveautomation.vision/polling-properties/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "C", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "61490d6db1fcbf1591c1789635947761d51885fbb009c72ccbd346dccb4f8126", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/event-scripts/data.bin b/project/dcframe1-hmi1/Core/ignition/event-scripts/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..52fd797ca4c313a79d0a2e6b9975bc185ae7a46a GIT binary patch literal 1220 zcmV;#1Uvg5iwFP!000000F_nUZW~1u9y^rS4r!YHrfu3zowT-FcWWmIX!ui=I3y4! zX}rKi6h#y7*xq)%Yi4F$ECg?WxI=vdByK>6JDvbug2&(zzS&tjHckZbk7nlV`T5Rw z&YXQ!`0mHmzdqji<=a2r+xY&c-w7c}LK5Hn`Sady$>8WYuPcddmXO)!tjmno4JKPv)`9#HAwNj^KDAqdGlx4Ha36@? zvyg|}`iQGNUgy4wrTMRN4OZ7Xn|Uv4Ty(k6iRD&kZry%bIjlX~s(jfIT*_QAla4+) zFQ_xG+LK>+Cm2+FFgezhydLAoN4(`gA1TN+um8v$=-I zP}naW#1h+W^H^4f4Be@di6u*rRM8cz*_SLsvWi+q9UsfygbZzhQ#PC3+^$vjY`VE^ z@AM(id>p$-Ye6XLTt_II2-jEnT&*tL4w^Fbeb;a1bTeN-Gke^}?j9j;|KF(~BS)47AU@$e zSl=aN`uJ*_YfTB6K{rHNCbS*`_X$Zsip#>Z;iZw8P(gQ~X&^s`NuppWHJ>=o5i%8# zXXXtg7YR8JN5}I=dw+l{d4x5CwT|@`pzS-n!9q_R*zk4;4$;tt30t_$CKu4lYaaY2 zc5eWaM%|xm$H-qNWd3t>z&byor6;spUMVlHl*+VPv*}W4X$dM10ldLHsqv-YvhHca z8RWu*U_B2b4Cfrcd03~gwy|Et;MDg5+iMW%YD{7cuwKSiKavqC^M<=!rdrzX4MdPi z!$&DIcu?{6?RFqIkKZw^TPALrkay2mVv{{utKn*LrU6SwPM~THfmVDOh!++Hs)VU| z8O^?9#y=P-mrLa*WzEY3>V8_}t}CNu;AEDN56;?&qt$|wBK$PDI%Ile9k$H71M-_7 zW^|lEcpKb+K4Uyb3}BK-nT*Ip%Dmdhxs+)GlF&+%30>v1A(kX>n6icIPi0+Z*zHIbES{;YI0a~O^fEneO({;($5k!-stRZ zj%&~VcLu{AZjF1meR{k*U^vT0BQCu88Jo*PU1%uMg2><{vL`|Il literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/ignition/event-scripts/resource.json b/project/dcframe1-hmi1/Core/ignition/event-scripts/resource.json new file mode 100644 index 0000000..b7ef2b9 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/event-scripts/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "4915f24f3de693a1263d2987cdf2a675130d37eae7ec178cd9066b3e07846dc4", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/global-props/data.bin b/project/dcframe1-hmi1/Core/ignition/global-props/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..b7a715807b6295318b2f830f0fd2b207a81b99a0 GIT binary patch literal 649 zcmV;40(Si$iwFP!00000|BX`HP82~9tp$PIMHE;r%S9N_nE2picNHV(3jyOL1QZB9 z_s;aLjXl#i(=&vRFuWP#C-`FGU+8c65kBha>D|@MKtjJ%chxynr>g7oz4NbIzhCWr z|M>Iii%;Kv5YYfp;mgt5`7gTo+_sqU$L<5S?lx+TwR){ludTy93AgXHA{OxbEb)bw zstxxvQ8ngzo3~gZ^)}NiR!QXXUEmO2AeupVpMOY1#Qkk9x#s&y@)*H!q6&hWCfn;s zwS?@_a7I+~n0wmbW{Aq&(tZ<;3gl!&{jQ%k1)guE;I&LNw&@2V6tRw&RuOzlM1zut zxLxliL3I(fpM|U`xsSjclp(Og+sr#dej@{J$9CFnWuMzdyUnbk`hVdg!B4xPYedC* zBO7TA&mp3c76Fen3r_I9flo1Am0>;D644V+1+EDF#M2_>EYT`pTBy(!?NDSF00Nj3 zE6;r{Rg+1GJuwC6QKZFWY(`Q6%7!+<*qG9y% z(l_!Jq41cc%uTeA?vCY-fn#zOK+8VnR7LOIlt(ed!N1Z!jRThU1~o`@_p)_Ban+nJ*n*6tn2XA%`Sv$s1QsMK+ ztVort04fyirqf{2eh>{6Z4D|I&`80Iu4I3MM(6FAsB9>sMY}yTRxa4@Gh=|(JZij$ znlLD*b20TM^XN)H`cCIU9mZ6iF@1UdnLK*7ADxNLqpDXz&E@-_&!ZN4s6~TXv|DJC jE)D$YF#B{b=d(EdSu#oIJC3M*KoDDFpxk=Z-|) literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/ignition/global-props/resource.json b/project/dcframe1-hmi1/Core/ignition/global-props/resource.json new file mode 100644 index 0000000..a082ddc --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/global-props/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "A", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "e0636654e57f50dbea12115d611b014427f30ef25e4f3c037c89f4625cf5becc", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:49:02Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History Report/query.sql b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History Report/query.sql new file mode 100644 index 0000000..97f372b --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History Report/query.sql @@ -0,0 +1,15 @@ +SELECT + DATE_FORMAT(CONVERT_TZ(e.EventTimeStamp, '+00:00', '-05:00'), '%m/%d/%Y %h:%i:%s %p') eventTime, + e.SourceName as SourceName, + e.Message as DisplayPath, + REVERSE(INSERT(Reverse(Trim(CONCAT(CASE WHEN e.Active <> 0 THEN "Active, " ELSE "" END, CASE WHEN e.Acked <> 0 THEN "Acknowledged, " ELSE "" END, CASE WHEN e.Suppressed <> 0 THEN "Suppressed, " ELSE "" END, CASE WHEN e.Shelved <> 0 THEN "Shelved, " ELSE "" END))), 1, 1, "")) as States, + CASE WHEN e.Priority = 0 THEN 'Diagnostic' WHEN e.Priority = 1 THEN 'Low' WHEN e.Priority = 2 THEN 'Medium' WHEN e.Priority = 3 THEN 'High' WHEN e.Priority = 4 THEN 'Critical' ELSE '' END Priority, + e.Tag1Value eventValue, + e.PersonID as ackUser +FROM + allevent e +WHERE + e.EventTimeStamp BETWEEN :startDate AND :endDate AND Priority BETWEEN :minPriority AND :maxPriority AND + ((:active AND e.Active = True) OR (:ack AND e.Acked = True)) +ORDER BY e.EventTimeStamp DESC +LIMIT :limit \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History Report/resource.json b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History Report/resource.json new file mode 100644 index 0000000..58d48b9 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History Report/resource.json @@ -0,0 +1,75 @@ +{ + "scope": "DG", + "version": 2, + "restricted": false, + "overridable": true, + "files": [ + "query.sql" + ], + "attributes": { + "useMaxReturnSize": false, + "autoBatchEnabled": false, + "fallbackValue": "", + "maxReturnSize": 100, + "cacheUnit": "SEC", + "type": "Query", + "enabled": true, + "cacheAmount": 1, + "cacheEnabled": false, + "database": "", + "fallbackEnabled": false, + "lastModificationSignature": "37fb1cc3397bcab6919db02c45977d1896722478e26671373824f5f6d6b1672b", + "permissions": [ + { + "zone": "", + "role": "" + } + ], + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + }, + "parameters": [ + { + "type": "Parameter", + "identifier": "startDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "endDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "active", + "sqlType": 6 + }, + { + "type": "Parameter", + "identifier": "clear", + "sqlType": 6 + }, + { + "type": "Parameter", + "identifier": "ack", + "sqlType": 6 + }, + { + "type": "Parameter", + "identifier": "limit", + "sqlType": 2 + }, + { + "type": "Parameter", + "identifier": "minPriority", + "sqlType": 2 + }, + { + "type": "Parameter", + "identifier": "maxPriority", + "sqlType": 2 + } + ] + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History/query.sql b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History/query.sql new file mode 100644 index 0000000..30ca2a9 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History/query.sql @@ -0,0 +1,18 @@ +SELECT + DATE_FORMAT(e.eventTime, '%m/%d/%Y %h:%i:%s %p') eventTime, + e.displayPath, + SUBSTRING_INDEX(source, '/alm:', -1) name, + e.eventType, + CASE WHEN e.priority = 0 THEN 'Diagnostic' WHEN e.priority = 1 THEN 'Low' WHEN e.priority = 2 THEN 'Medium' WHEN e.priority = 3 THEN 'High' WHEN e.priority = 4 THEN 'Critical' ELSE '' END priority, + COALESCE(COALESCE(COALESCE(d.intvalue, d.floatvalue), d.strvalue), '') eventValue, + COALESCE(ack.strvalue, '') ackUser +FROM + alarm_events e + LEFT JOIN alarm_event_data d ON d.id = e.id AND d.propname = 'eventValue' + LEFT JOIN alarm_event_data ack ON ack.id = e.id AND ack.propname = 'ackUser' +WHERE + eventtime BETWEEN :startDate AND :endDate AND priority BETWEEN :minPriority AND :maxPriority AND + ((:active AND e.eventtype = 0) OR (:clear AND e.eventtype = 1) OR (:ack AND e.eventtype = 2)) +ORDER BY + e.eventTime DESC +LIMIT :limit \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History/resource.json b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History/resource.json new file mode 100644 index 0000000..2bdebaa --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm History/resource.json @@ -0,0 +1,75 @@ +{ + "scope": "DG", + "version": 2, + "restricted": false, + "overridable": true, + "files": [ + "query.sql" + ], + "attributes": { + "useMaxReturnSize": false, + "autoBatchEnabled": false, + "fallbackValue": "", + "maxReturnSize": 100, + "cacheUnit": "SEC", + "type": "Query", + "enabled": true, + "cacheAmount": 1, + "cacheEnabled": false, + "database": "", + "fallbackEnabled": false, + "lastModificationSignature": "340378e09d18ae2e4dd37b9c252822113a192b186683064558c74ac671698700", + "permissions": [ + { + "zone": "", + "role": "" + } + ], + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + }, + "parameters": [ + { + "type": "Parameter", + "identifier": "startDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "endDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "active", + "sqlType": 6 + }, + { + "type": "Parameter", + "identifier": "clear", + "sqlType": 6 + }, + { + "type": "Parameter", + "identifier": "ack", + "sqlType": 6 + }, + { + "type": "Parameter", + "identifier": "limit", + "sqlType": 2 + }, + { + "type": "Parameter", + "identifier": "minPriority", + "sqlType": 2 + }, + { + "type": "Parameter", + "identifier": "maxPriority", + "sqlType": 2 + } + ] + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary Table/query.sql b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary Table/query.sql new file mode 100644 index 0000000..8f753d7 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary Table/query.sql @@ -0,0 +1,27 @@ +SELECT + (CASE a.priority + WHEN 1 THEN "Low" + WHEN 2 THEN "Medium" + WHEN 3 THEN "High" + WHEN 4 THEN "Critical" + ELSE "Diagnostic" + END) as "Priority", + SUM(CASE WHEN c.eventtime IS NULL THEN 1 ELSE 0 END) active, + SUM(CASE WHEN c.eventtime IS NULL THEN 0 ELSE 1 END) cleared, + SUM(CASE WHEN k.eventtime IS NULL THEN 1 ELSE 0 END) unacknowledged, + COUNT(*) total, + AVG(CASE WHEN k.eventtime IS NULL THEN 0 ELSE TIMESTAMPDIFF(SECOND, a.eventtime, COALESCE(k.eventtime, CURRENT_TIMESTAMP)) END) acknowledgeTime, + AVG(CASE WHEN c.eventtime IS NULL THEN 0 ELSE TIMESTAMPDIFF(SECOND, a.eventtime, COALESCE(c.eventtime, CURRENT_TIMESTAMP)) END) clearTime, + SUM(TIMESTAMPDIFF(SECOND, a.eventtime, COALESCE(c.eventtime, CURRENT_TIMESTAMP))) totalTime +FROM + alarm_events a + LEFT JOIN alarm_events c ON c.eventid = a.eventid AND c.eventtype = 1 + LEFT JOIN alarm_events k ON k.eventid = a.eventid AND k.eventtype = 2 +WHERE + a.eventtime + BETWEEN :startDate AND :endDate + AND a.eventtype = 0 +GROUP BY + a.priority +ORDER BY + a.priority ASC \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary Table/resource.json b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary Table/resource.json new file mode 100644 index 0000000..0ac177f --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary Table/resource.json @@ -0,0 +1,45 @@ +{ + "scope": "DG", + "version": 2, + "restricted": false, + "overridable": true, + "files": [ + "query.sql" + ], + "attributes": { + "useMaxReturnSize": false, + "autoBatchEnabled": false, + "fallbackValue": "", + "maxReturnSize": 100, + "cacheUnit": "SEC", + "type": "Query", + "enabled": true, + "cacheAmount": 1, + "cacheEnabled": false, + "database": "", + "fallbackEnabled": false, + "lastModificationSignature": "42dd33c879db17f0e97a2a368ab2edabd5e05ac606f97563030207a183350c9a", + "permissions": [ + { + "zone": "", + "role": "" + } + ], + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + }, + "parameters": [ + { + "type": "Parameter", + "identifier": "startDate", + "sqlType": 7 + }, + { + "type": "Parameter", + "identifier": "endDate", + "sqlType": 7 + } + ] + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary/query.sql b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary/query.sql new file mode 100644 index 0000000..24a30fb --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary/query.sql @@ -0,0 +1,19 @@ +SELECT + a.priority, + SUM(CASE WHEN c.eventtime IS NULL THEN 1 ELSE 0 END) active, + SUM(CASE WHEN c.eventtime IS NULL THEN 0 ELSE 1 END) cleared, + SUM(CASE WHEN k.eventtime IS NULL THEN 1 ELSE 0 END) unacknowledged, + COUNT(*) total, + AVG(CASE WHEN k.eventtime IS NULL THEN 0 ELSE TIMESTAMPDIFF(SECOND, a.eventtime, COALESCE(k.eventtime, CURRENT_TIMESTAMP)) END) acknowledgeTime, + AVG(CASE WHEN c.eventtime IS NULL THEN 0 ELSE TIMESTAMPDIFF(SECOND, a.eventtime, COALESCE(c.eventtime, CURRENT_TIMESTAMP)) END) clearTime, + SUM(TIMESTAMPDIFF(SECOND, a.eventtime, COALESCE(c.eventtime, CURRENT_TIMESTAMP))) totalTime +FROM + alarm_events a + LEFT JOIN alarm_events c ON c.eventid = a.eventid AND c.eventtype = 1 + LEFT JOIN alarm_events k ON k.eventid = a.eventid AND k.eventtype = 2 +WHERE + a.eventtime BETWEEN :startDate AND :endDate AND a.eventtype = 0 +GROUP BY + a.priority +ORDER BY + a.priority ASC \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary/resource.json b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary/resource.json new file mode 100644 index 0000000..0f5466e --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarm Summary/resource.json @@ -0,0 +1,45 @@ +{ + "scope": "DG", + "version": 2, + "restricted": false, + "overridable": true, + "files": [ + "query.sql" + ], + "attributes": { + "useMaxReturnSize": false, + "autoBatchEnabled": false, + "fallbackValue": "", + "maxReturnSize": 100, + "cacheUnit": "SEC", + "type": "Query", + "enabled": true, + "cacheAmount": 1, + "cacheEnabled": false, + "database": "", + "fallbackEnabled": false, + "lastModificationSignature": "1181d784ffa7fad34e065fed7f3facd2bf0f43f0da837d1c7ec1e43637bb3bc6", + "permissions": [ + { + "zone": "", + "role": "" + } + ], + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + }, + "parameters": [ + { + "type": "Parameter", + "identifier": "startDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "endDate", + "sqlType": 8 + } + ] + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms By Hour/query.sql b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms By Hour/query.sql new file mode 100644 index 0000000..9838966 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms By Hour/query.sql @@ -0,0 +1,13 @@ +SELECT + HOUR(a.eventtime) label, + COUNT(*) total, + SUM(TIMESTAMPDIFF(SECOND, a.eventtime, COALESCE(c.eventtime, CURRENT_TIMESTAMP))) duration +FROM + alarm_events a + LEFT JOIN alarm_events c ON c.eventid = a.eventid AND c.eventtype = 1 +WHERE + a.eventtime BETWEEN :startDate AND :endDate AND a.eventtype = 0 +GROUP BY + HOUR(a.eventtime) +ORDER BY + HOUR(a.eventtime) ASC \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms By Hour/resource.json b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms By Hour/resource.json new file mode 100644 index 0000000..fd95f22 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms By Hour/resource.json @@ -0,0 +1,45 @@ +{ + "scope": "DG", + "version": 2, + "restricted": false, + "overridable": true, + "files": [ + "query.sql" + ], + "attributes": { + "useMaxReturnSize": false, + "autoBatchEnabled": false, + "fallbackValue": "", + "maxReturnSize": 100, + "cacheUnit": "SEC", + "type": "Query", + "enabled": true, + "cacheAmount": 1, + "cacheEnabled": false, + "database": "", + "fallbackEnabled": false, + "lastModificationSignature": "19b2eab0c03356a913b1442e185d1f6c6c71b89b541b2a3fb3413fd448aa0901", + "permissions": [ + { + "zone": "", + "role": "" + } + ], + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:09Z" + }, + "parameters": [ + { + "type": "Parameter", + "identifier": "startDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "endDate", + "sqlType": 8 + } + ] + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Duration/query.sql b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Duration/query.sql new file mode 100644 index 0000000..1469926 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Duration/query.sql @@ -0,0 +1,13 @@ +SELECT + CASE WHEN a.displaypath = '' THEN 'Unknown' ELSE a.displaypath END displaypath, + SUM(TIMESTAMPDIFF(SECOND, a.eventtime, COALESCE(c.eventtime, CURRENT_TIMESTAMP))) duration +FROM + alarm_events a + LEFT JOIN alarm_events c ON c.eventid = a.eventid AND c.eventtype = 1 +WHERE + a.eventtime BETWEEN :startDate AND :endDate AND a.eventtype = 0 +GROUP BY + a.displaypath +ORDER BY + duration DESC, a.displaypath ASC +LIMIT :limit \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Duration/resource.json b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Duration/resource.json new file mode 100644 index 0000000..9adf75c --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Duration/resource.json @@ -0,0 +1,50 @@ +{ + "scope": "DG", + "version": 2, + "restricted": false, + "overridable": true, + "files": [ + "query.sql" + ], + "attributes": { + "useMaxReturnSize": false, + "autoBatchEnabled": false, + "fallbackValue": "", + "maxReturnSize": 100, + "cacheUnit": "SEC", + "type": "Query", + "enabled": true, + "cacheAmount": 1, + "cacheEnabled": false, + "database": "", + "fallbackEnabled": false, + "lastModificationSignature": "e3f9129ad9bd3cdd0d5858d9b37c76aecaed9ff6a96d59a644a339a1fd01aec9", + "permissions": [ + { + "zone": "", + "role": "" + } + ], + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + }, + "parameters": [ + { + "type": "Parameter", + "identifier": "startDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "endDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "limit", + "sqlType": 2 + } + ] + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Frequency/query.sql b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Frequency/query.sql new file mode 100644 index 0000000..d521b1e --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Frequency/query.sql @@ -0,0 +1,12 @@ +SELECT + CASE WHEN a.displaypath = '' THEN 'Unknown' ELSE a.displaypath END displaypath, + COUNT(*) cnt +FROM + alarm_events a +WHERE + a.eventtime BETWEEN :startDate AND :endDate AND a.eventtype = 0 +GROUP BY + a.displaypath +ORDER BY + cnt DESC, a.displaypath ASC +LIMIT :limit \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Frequency/resource.json b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Frequency/resource.json new file mode 100644 index 0000000..7cd27c6 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Alarms Frequency/resource.json @@ -0,0 +1,50 @@ +{ + "scope": "DG", + "version": 2, + "restricted": false, + "overridable": true, + "files": [ + "query.sql" + ], + "attributes": { + "useMaxReturnSize": false, + "autoBatchEnabled": false, + "fallbackValue": "", + "maxReturnSize": 100, + "cacheUnit": "SEC", + "type": "Query", + "enabled": true, + "cacheAmount": 1, + "cacheEnabled": false, + "database": "", + "fallbackEnabled": false, + "lastModificationSignature": "9d1d4b1c60d608eee1beecc92dc694b8442cee78174daba9cecddbff6e5b52db", + "permissions": [ + { + "zone": "", + "role": "" + } + ], + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + }, + "parameters": [ + { + "type": "Parameter", + "identifier": "startDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "endDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "limit", + "sqlType": 2 + } + ] + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Longest Duration Alarm/query.sql b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Longest Duration Alarm/query.sql new file mode 100644 index 0000000..21edcd7 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Longest Duration Alarm/query.sql @@ -0,0 +1,12 @@ +SELECT + CASE WHEN a.displaypath = '' THEN 'Unknown' ELSE a.displaypath END displaypath, + SUM(TIMESTAMPDIFF(SECOND, a.eventtime, COALESCE(c.eventtime, CURRENT_TIMESTAMP))) total +FROM + alarm_events a + LEFT JOIN alarm_events c ON c.eventid = a.eventid AND c.eventtype = 1 +WHERE + a.eventtime BETWEEN :startDate AND :endDate AND a.eventtype = 0 +GROUP BY + a.displaypath +ORDER BY total DESC +LIMIT 1 \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Longest Duration Alarm/resource.json b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Longest Duration Alarm/resource.json new file mode 100644 index 0000000..f87fa00 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Longest Duration Alarm/resource.json @@ -0,0 +1,45 @@ +{ + "scope": "DG", + "version": 2, + "restricted": false, + "overridable": true, + "files": [ + "query.sql" + ], + "attributes": { + "useMaxReturnSize": false, + "autoBatchEnabled": false, + "fallbackValue": "", + "maxReturnSize": 100, + "cacheUnit": "SEC", + "type": "Query", + "enabled": true, + "cacheAmount": 1, + "cacheEnabled": false, + "database": "", + "fallbackEnabled": false, + "lastModificationSignature": "7f21d69c6d3e5b30e52bfa459986e75e506189b6e0961afef6b217ef63253be7", + "permissions": [ + { + "zone": "", + "role": "" + } + ], + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + }, + "parameters": [ + { + "type": "Parameter", + "identifier": "startDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "endDate", + "sqlType": 8 + } + ] + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Most Frequent Alarm/query.sql b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Most Frequent Alarm/query.sql new file mode 100644 index 0000000..ec3f8b6 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Most Frequent Alarm/query.sql @@ -0,0 +1,11 @@ +SELECT + CASE WHEN a.displaypath = '' THEN 'Unknown' ELSE a.displaypath END displaypath, + COUNT(*) total +FROM + alarm_events a +WHERE + a.eventtime BETWEEN :startDate AND :endDate AND a.eventtype = 0 +GROUP BY + a.displaypath +ORDER BY total DESC +LIMIT 1 \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Most Frequent Alarm/resource.json b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Most Frequent Alarm/resource.json new file mode 100644 index 0000000..65fa0c3 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Alarms/Most Frequent Alarm/resource.json @@ -0,0 +1,45 @@ +{ + "scope": "DG", + "version": 2, + "restricted": false, + "overridable": true, + "files": [ + "query.sql" + ], + "attributes": { + "useMaxReturnSize": false, + "autoBatchEnabled": false, + "fallbackValue": "", + "maxReturnSize": 100, + "cacheUnit": "SEC", + "type": "Query", + "enabled": true, + "cacheAmount": 1, + "cacheEnabled": false, + "database": "", + "fallbackEnabled": false, + "lastModificationSignature": "6a0d458d37c835ed5aabdd20568c8356396b3857d80909ff823d321b50922001", + "permissions": [ + { + "zone": "", + "role": "" + } + ], + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + }, + "parameters": [ + { + "type": "Parameter", + "identifier": "startDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "endDate", + "sqlType": 8 + } + ] + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Audit Log/Audit Log/query.sql b/project/dcframe1-hmi1/Core/ignition/named-query/Audit Log/Audit Log/query.sql new file mode 100644 index 0000000..1eb7cf9 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Audit Log/Audit Log/query.sql @@ -0,0 +1,18 @@ +SELECT + audit_events_id, + TO_CHAR(event_timestamp, 'FMМM/FMDD/YY FMHH12:MI:SS AM') event_timestamp, + actor, + action, + action_target, + action_value, + actor_host, + status_code, + originating_system, + originating_context +FROM + audit_events +WHERE + event_timestamp BETWEEN :startDate AND :endDate AND + (:search = '' OR (:search != '' AND (actor LIKE :search OR action LIKE :search OR action_target LIKE :search))) +ORDER BY + audit_events_id DESC \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/named-query/Audit Log/Audit Log/resource.json b/project/dcframe1-hmi1/Core/ignition/named-query/Audit Log/Audit Log/resource.json new file mode 100644 index 0000000..0e24525 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/named-query/Audit Log/Audit Log/resource.json @@ -0,0 +1,50 @@ +{ + "scope": "DG", + "version": 2, + "restricted": false, + "overridable": true, + "files": [ + "query.sql" + ], + "attributes": { + "useMaxReturnSize": false, + "autoBatchEnabled": false, + "fallbackValue": "", + "maxReturnSize": 100, + "cacheUnit": "SEC", + "type": "Query", + "enabled": true, + "cacheAmount": 1, + "cacheEnabled": false, + "database": "dcframe-db", + "fallbackEnabled": false, + "lastModificationSignature": "fe98a4bc761e86db97a3ad23e67e090bd580c5d65446829b6cdc0aee7c5518bb", + "permissions": [ + { + "zone": "", + "role": "" + } + ], + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:55:32Z" + }, + "parameters": [ + { + "type": "Parameter", + "identifier": "startDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "endDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "search", + "sqlType": 7 + } + ] + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/script-python/PlantPAX/securityCheck/code.py b/project/dcframe1-hmi1/Core/ignition/script-python/PlantPAX/securityCheck/code.py new file mode 100644 index 0000000..4bbacc4 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/script-python/PlantPAX/securityCheck/code.py @@ -0,0 +1,40 @@ +def verify(roles, security_level): + verification_result = False + + authentication_dictionary = { + "securityDeviceConfigHMI": ["Administrator", "Maintenance", "Operations Supervisor",], + "securityConfigSecurity": ["Administrator", "Maintenance", "Operations Supervisor",], + "securityDeviceConfigBehavior": ["Administrator", "Maintenance", "Operations Supervisor",], + "securityDeviceConfigTimers": ["Administrator", "Maintenance", "Operations Supervisor", "Operator"], + "securityDeviceConfigFailTimers": ["Administrator", "Maintenance", "Operations Supervisor", "Operator"], + "securityBypassFeedback": ["Administrator", "Maintenance", "Operations Supervisor",], + "securityBypassInterlocks": ["Administrator", "Maintenance", "Operations Supervisor",], + "securityDeviceConfigLimits": ["Administrator", "Maintenance", "Operations Supervisor", "Operator"], + "securityDeviceConfigThresholds": ["Administrator", "Maintenance", "Operations Supervisor", "Operator"], + "securityEnableSimulation": ["Administrator", "Maintenance", ], + "securityEnterOperSettings": ["Administrator", "Maintenance", "Operations Supervisor", "Operator"], + "securityOperateEquipment": ["Administrator", "Maintenance", "Operations Supervisor", "Operator"], + "securityOverrideInputs": ["Administrator", "Maintenance", "Operations Supervisor",], + "securityAlarmConfig": ["Administrator", "Maintenance", "Operations Supervisor",], + "securityAlarmDisable": ["Administrator", "Maintenance", "Operations Supervisor",], + "securityAlarmShelve": ["Administrator", "Maintenance", "Operations Supervisor", "Operator"], + "securityCmdSrcMaint": ["Administrator", "Maintenance", ], + "securityCmdSrcOperProg": ["Administrator", "Maintenance", "Operations Supervisor", "Operator"], + "securityCmdSrcOutOfService": ["Administrator", "Maintenance", "Operations Supervisor",], + "securityDeviceConfigTuning": ["Administrator", "Maintenance", "Operations Supervisor",], + "userHasBasic": ["Administrator", "Maintenance", "Operations Supervisor", "Operator"], + "userHasAdvanced": ["Administrator", "Maintenance", "Operations Supervisor",], + } + + try: + level_roles = authentication_dictionary[security_level] + string = "" + + for role in roles: + if role in level_roles: + verification_result = True + + except: + verification_result = False + + return verification_result diff --git a/project/dcframe1-hmi1/Core/ignition/script-python/PlantPAX/securityCheck/resource.json b/project/dcframe1-hmi1/Core/ignition/script-python/PlantPAX/securityCheck/resource.json new file mode 100644 index 0000000..a574a43 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/script-python/PlantPAX/securityCheck/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "A", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "code.py" + ], + "attributes": { + "lastModificationSignature": "44718e8438f3d36d5d6463553d7d4dc03ff9d324d3b2c5a86952dc43f1284fe8", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/ignition/script-python/nav/code.py b/project/dcframe1-hmi1/Core/ignition/script-python/nav/code.py new file mode 100644 index 0000000..090fe07 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/script-python/nav/code.py @@ -0,0 +1,18 @@ +# Encapsulation of system.perspective.openPopup +# Use on button event script - Non-Resizable popup with close Icon. +# This allows for feeding the path of the view and the params for the view. + +def popupBtn(path, popUpParams, popUpTitle, showClose, resize): + import random + # Generate Page ID (random from 1 to 100) + pgID = str(random.randint(1,100)) + popUpParams = dict(popUpParams) + system.perspective.openPopup(pgID, path, params = popUpParams, title = popUpTitle, showCloseIcon = showClose, resizable = resize) + +def hoverLblOpn(path, popUpParams, popUpTitle, showClose, resize, lblPos): + pgID = "hoverLbl" + popUpParams = dict(popUpParams) + system.perspective.openPopup(pgID, path, params = popUpParams, title = popUpTitle, showCloseIcon = showClose, resizable = resize, position = lblPos) + +def hoverLblCls(): + system.perspective.closePopup("hoverLbl") diff --git a/project/dcframe1-hmi1/Core/ignition/script-python/nav/resource.json b/project/dcframe1-hmi1/Core/ignition/script-python/nav/resource.json new file mode 100644 index 0000000..052a450 --- /dev/null +++ b/project/dcframe1-hmi1/Core/ignition/script-python/nav/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "A", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "code.py" + ], + "attributes": { + "lastModificationSignature": "b98496172f63149edff6bbf832da1967f01be0a33c2fe4b7b57b2d004c4b2717", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/mobile/mobile.project.settings/data.bin b/project/dcframe1-hmi1/Core/mobile/mobile.project.settings/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..2cf883785f135d9620831a31308ca39a8ebd6cea GIT binary patch literal 365 zcmV-z0h0b7iwFP!000000F_WpO9L?wo$ZI+e%Y-j5f6Ly5;kgETLr<2h)^n6yq0ZD zCE9G3-E8|S#GCjVya@ga{X<@QaMBcbNR3bVTrh6yy$<6En8VqlRM6IiqAYi zZ5m5K<~&J-iV$)UWi#_x#qJVg1E9d8%sf4W45@@sVJrh2GbM?LZZf9DoQIiKGSt|L zNHq~NPVie|##A&Fw`8yaFB4@HV2I72HGu6=#{EH<_(9vJv=`9c{+{2z8u=*x04a4G zXs8Y@J555#7b>~`p}K&Yx~pvi%+>)8|0U~M@I|Z=J&d*OSH#`4kUZ6)j4`j_+?4Cz zyiKqcg5z4lA@5o(P;~8H;22WLF~*jyVc=|82ccq0s;+Gh^@?Mq+jfoIca4EO12w+@ L5PvAlCjtNf4tuFF literal 0 HcmV?d00001 diff --git a/project/dcframe1-hmi1/Core/mobile/mobile.project.settings/resource.json b/project/dcframe1-hmi1/Core/mobile/mobile.project.settings/resource.json new file mode 100644 index 0000000..b7eae1e --- /dev/null +++ b/project/dcframe1-hmi1/Core/mobile/mobile.project.settings/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModificationSignature": "72ff2521fccd550e51683faa4cb9cc88f5a892c210d614298aaac79b3b43a183", + "lastModification": { + "actor": "admin", + "timestamp": "2025-11-05T22:39:10Z" + } + } +} \ No newline at end of file diff --git a/project/dcframe1-hmi1/Core/project.json b/project/dcframe1-hmi1/Core/project.json new file mode 100644 index 0000000..323d1fe --- /dev/null +++ b/project/dcframe1-hmi1/Core/project.json @@ -0,0 +1,7 @@ +{ + "title": "Core", + "description": "", + "enabled": true, + "inheritable": true, + "parent": "" +} \ No newline at end of file