diff --git a/.resources/02c18f7752596a6b7950338fcd382be5bf09638f6280bad3d945c5a814bae508 b/.resources/02c18f7752596a6b7950338fcd382be5bf09638f6280bad3d945c5a814bae508 new file mode 100644 index 00000000..a116d570 Binary files /dev/null and b/.resources/02c18f7752596a6b7950338fcd382be5bf09638f6280bad3d945c5a814bae508 differ diff --git a/.resources/08057496f0385f5d1d2bdfd90489d90768a831db7dcb3bd33625fcbed2dcafe5 b/.resources/08057496f0385f5d1d2bdfd90489d90768a831db7dcb3bd33625fcbed2dcafe5 new file mode 100644 index 00000000..ff92d10e Binary files /dev/null and b/.resources/08057496f0385f5d1d2bdfd90489d90768a831db7dcb3bd33625fcbed2dcafe5 differ diff --git a/.resources/12ac6c2486e4026c5761ba442a3097c5d11be83908943256100a32a16073c093 b/.resources/12ac6c2486e4026c5761ba442a3097c5d11be83908943256100a32a16073c093 deleted file mode 100644 index ad289198..00000000 Binary files a/.resources/12ac6c2486e4026c5761ba442a3097c5d11be83908943256100a32a16073c093 and /dev/null differ diff --git a/.resources/57bea166d71eb107287bd2b328b1eb0841a8b3da0424af71ac4c042011ea4f8c b/.resources/14ebf4583eb0dd94a2b235cf0ca3d60e9547dce6453147c5eb7433cd803b95d7 similarity index 91% rename from .resources/57bea166d71eb107287bd2b328b1eb0841a8b3da0424af71ac4c042011ea4f8c rename to .resources/14ebf4583eb0dd94a2b235cf0ca3d60e9547dce6453147c5eb7433cd803b95d7 index b8083f94..e3d7e20d 100644 --- a/.resources/57bea166d71eb107287bd2b328b1eb0841a8b3da0424af71ac4c042011ea4f8c +++ b/.resources/14ebf4583eb0dd94a2b235cf0ca3d60e9547dce6453147c5eb7433cd803b95d7 @@ -190,7 +190,7 @@ "dom": { "onClick": { "config": { - "script": "\tautStand.devices.build_device_mapping(self.view.params.tagProps[0])\n\tdevice_table_dataset \u003d autStand.devices.build_device_table(self)\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, self.view.params.tagProps[0])\n\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps, \"devices\": device_table_dataset, \"tags\":tags_table_dataset})" + "script": "\t#create devices and tags lists for the conveyor\n\tautStand.devices.build_device_mapping(self.view.params.tagProps[0])\n\tdevice_table_dataset \u003d autStand.devices.build_device_table(self)\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, self.view.params.tagProps[0])\n\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps, \"devices\": device_table_dataset, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/.resources/1deb2422bd0755d00cd078c6fc47a5b046e01c908764a2fc1252d925164d0016 b/.resources/1deb2422bd0755d00cd078c6fc47a5b046e01c908764a2fc1252d925164d0016 new file mode 100644 index 00000000..45bd23c7 --- /dev/null +++ b/.resources/1deb2422bd0755d00cd078c6fc47a5b046e01c908764a2fc1252d925164d0016 @@ -0,0 +1,1145 @@ +{ + "custom": { + "PLC": "MCM01", + "device": "UL14_1_SIO1", + "showTags": true, + "state": "Closed" + }, + "params": { + "tagProps": [ + "System/MCM01/SIO/UL14_1_SIO1", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ], + "tags": [] + }, + "propConfig": { + "custom.PLC": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "code": "\treturn value.split(\"/\")[1]", + "type": "script" + } + ], + "type": "property" + }, + "persistent": true + }, + "custom.device": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "code": " return value.rsplit(\u0027/\u0027, 1)[-1]", + "type": "script" + } + ], + "type": "property" + }, + "persistent": true + }, + "custom.showTags": { + "binding": { + "config": { + "expression": "len(trim({session.props.auth.user.userName})) \u003e 0 \u0026\u0026 lower({session.props.auth.user.userName}) !\u003d \"null\"" + }, + "type": "expr" + }, + "onChange": { + "enabled": null, + "script": "\ttabsComp \u003d self.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"Main\").getChild(\"tabs\").props.tabs\n\ttabs \u003d list(tabsComp) # copy to modify\n\t\n\tif currentValue.value: # user logged in\n\t if \"Tags\" not in tabs:\n\t tabs.append(\"Tags\") # add the \"Tags\" tab\n\t self.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"Main\").getChild(\"tabs\").props.tabs \u003d tabs\n\telse: # user logged out\n\t if \"Tags\" in tabs:\n\t tabs.remove(\"Tags\") # remove the \"Tags\" tab\n\t self.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"Main\").getChild(\"tabs\").props.tabs \u003d tabs\n\t \n\t\n\t" + }, + "persistent": true + }, + "custom.state": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "0": "{view.params.tagProps[0]}", + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/State" + }, + "transforms": [ + { + "expression": "coalesce({value},0)", + "type": "expression" + }, + { + "fallback": "Unknown", + "inputType": "scalar", + "mappings": [ + { + "input": 0, + "output": "Closed" + }, + { + "input": 1, + "output": "Actuated" + }, + { + "input": 2, + "output": "Communication Faulted" + }, + { + "input": 3, + "output": "Conveyor Running In Maintenance Mode" + }, + { + "input": 4, + "output": "Disabled" + }, + { + "input": 5, + "output": "Disconnected" + }, + { + "input": 6, + "output": "Stopped" + }, + { + "input": 7, + "output": "Enabled Not Running" + }, + { + "input": 8, + "output": "Encoder Fault" + }, + { + "input": 9, + "output": "Energy Management" + }, + { + "input": 10, + "output": "ESTOP Was Actuated" + }, + { + "input": 11, + "output": "EStopped" + }, + { + "input": 12, + "output": "EStopped Locally" + }, + { + "input": 13, + "output": "Extended Faulted" + }, + { + "input": 14, + "output": "Full" + }, + { + "input": 15, + "output": "Gaylord Start Pressed" + }, + { + "input": 16, + "output": "Jam Fault" + }, + { + "input": 17, + "output": "Jammed" + }, + { + "input": 18, + "output": "Loading Allowed" + }, + { + "input": 19, + "output": "Loading Not Allowed" + }, + { + "input": 20, + "output": "Low Air Pressure Fault Was Present" + }, + { + "input": 21, + "output": "Maintenance Mode" + }, + { + "input": 22, + "output": "Conveyor Stopped In Maintenance Mode" + }, + { + "input": 23, + "output": "Motor Faulted" + }, + { + "input": 24, + "output": "Motor Was Faulted" + }, + { + "input": 25, + "output": "Normal" + }, + { + "input": 26, + "output": "Off Inactive" + }, + { + "input": 27, + "output": "Open" + }, + { + "input": 28, + "output": "PLC Ready To Run" + }, + { + "input": 29, + "output": "Package Release Pressed" + }, + { + "input": 30, + "output": "Power Branch Was Faulted" + }, + { + "input": 31, + "output": "Pressed" + }, + { + "input": 32, + "output": "Ready To Receive" + }, + { + "input": 33, + "output": "Running" + }, + { + "input": 34, + "output": "Started" + }, + { + "input": 35, + "output": "Stopped" + }, + { + "input": 36, + "output": "System Started" + }, + { + "input": 37, + "output": "Unknown" + }, + { + "input": 38, + "output": "VFD Fault" + }, + { + "input": 39, + "output": "Conveyor Running In Power Saving Mode" + }, + { + "input": 40, + "output": "Conveyor Jogging In Maintenance Mode" + }, + { + "input": 41, + "output": "VFD Reset Required" + }, + { + "input": 42, + "output": "Jam Reset Push Button Pressed" + }, + { + "input": 43, + "output": "Start Push Button Pressed" + }, + { + "input": 44, + "output": "Stop Push Button Pressed" + }, + { + "input": 45, + "output": "No Container" + }, + { + "input": 46, + "output": "Ready To Be Enabled" + }, + { + "input": 47, + "output": "Half Full" + }, + { + "input": 48, + "output": "Enabled" + }, + { + "input": 49, + "output": "Tipper Faulted" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + }, + "persistent": true + }, + "params.tagProps": { + "paramDirection": "input", + "persistent": true + }, + "params.tags": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "width": 600 + } + }, + "root": { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\u0027Source ID: \u0027 + {view.params.tagProps[0]}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFF", + "fontFamily": "Arial", + "fontSize": 14, + "fontWeight": "bold", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.perspective.closeDock(\u0027Docked-East-Device\u0027)\n\tself.getSibling(\"tabs\").props.currentTabIndex \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Icon", + "tooltip": { + "enabled": true, + "style": { + "cursor": "pointer" + }, + "text": "Close faceplate" + } + }, + "props": { + "path": "material/close", + "style": { + "cursor": "pointer", + "marginBottom": 5, + "marginLeft": 5, + "marginRight": 5, + "marginTop": 5 + } + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "30px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "32px", + "display": false + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "if({../AlarmTable.props.params.length_of_table_data} \u003d 0, True, False)" + }, + "enabled": false, + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Labels/Label_1", + "marginTop": 20 + }, + "text": "No Active Alarms" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmStatusTable" + }, + "position": { + "basis": "400px", + "grow": 1 + }, + "propConfig": { + "props.filters.active.text": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "code": "\treturn value[1:]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "columns": { + "active": { + "displayPath": { + "enabled": false + }, + "priority": { + "enabled": false + }, + "source": { + "enabled": false + }, + "state": { + "enabled": false + } + } + }, + "filters": { + "active": { + "priorities": { + "critical": false, + "high": false, + "low": false, + "medium": false + }, + "states": { + "clearUnacked": false + } + } + }, + "refreshRate": 500, + "toolbar": { + "enabled": false + } + }, + "type": "ia.display.alarmstatustable" + } + ], + "meta": { + "name": "Active_tab" + }, + "props": { + "direction": "column", + "style": { + "key": "value" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NameField" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "props": { + "style": { + "paddingLeft": 20 + }, + "text": "NAME" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "DeviceName" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.custom.device" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Name" + }, + "position": { + "basis": "35px" + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_0" + }, + "position": { + "basis": "35px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NameField" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "props": { + "style": { + "paddingLeft": 20 + }, + "text": "STATUS" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "PB_Light" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.custom.state" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + }, + "textStyle": { + "color": "#000000" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Property" + }, + "position": { + "basis": "35px", + "shrink": 2 + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_1" + }, + "position": { + "basis": "35px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NameField" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "props": { + "style": { + "paddingLeft": 20 + }, + "text": "PANEL" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MCM" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.custom.PLC" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + }, + "textStyle": { + "color": "#000000" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Property" + }, + "position": { + "basis": "35px", + "shrink": 2 + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_2" + }, + "position": { + "basis": "35px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Status_tab" + }, + "position": { + "tabIndex": 1 + }, + "props": { + "direction": "column", + "style": { + "margin-left": "" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Table" + }, + "position": { + "basis": "400px", + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "props.data": { + "binding": { + "config": { + "path": "view.params.tags" + }, + "type": "property" + } + } + }, + "props": { + "columns": [ + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "Name", + "filter": { + "boolean": { + "condition": "" + }, + "date": { + "condition": "", + "value": "" + }, + "enabled": false, + "number": { + "condition": "", + "value": "" + }, + "string": { + "condition": "", + "value": "" + }, + "visible": "on-hover" + }, + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Name" + }, + "justify": "center", + "nullFormat": { + "includeNullStrings": false, + "nullFormatValue": "", + "strict": false + }, + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 130 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "OPC Path", + "filter": { + "boolean": { + "condition": "" + }, + "date": { + "condition": "", + "value": "" + }, + "enabled": false, + "number": { + "condition": "", + "value": "" + }, + "string": { + "condition": "", + "value": "" + }, + "visible": "on-hover" + }, + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "OPC Path" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "OPC Path" + }, + "justify": "center", + "nullFormat": { + "includeNullStrings": false, + "nullFormatValue": "", + "strict": false + }, + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 350 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "Value", + "filter": { + "boolean": { + "condition": "" + }, + "date": { + "condition": "", + "value": "" + }, + "enabled": false, + "number": { + "condition": "", + "value": "" + }, + "string": { + "condition": "", + "value": "" + }, + "visible": "on-hover" + }, + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Value" + }, + "justify": "center", + "nullFormat": { + "includeNullStrings": false, + "nullFormatValue": "", + "strict": false + }, + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 100 + } + ], + "pager": { + "bottom": false + }, + "selection": { + "enableRowSelection": false + }, + "virtualized": false + }, + "type": "ia.display.table" + } + ], + "meta": { + "name": "Tags_tab" + }, + "position": { + "tabIndex": 2 + }, + "props": { + "alignItems": "flex-start", + "justify": "space-evenly" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "tabs" + }, + "position": { + "grow": 1 + }, + "props": { + "menuType": "modern", + "tabSize": { + "width": 1000 + }, + "tabStyle": { + "active": { + "classes": "", + "color": "#FFFFFF", + "fontFamily": "Arial", + "fontSize": 14, + "fontWeight": "bold", + "paddingLeft": 10 + }, + "inactive": { + "classes": "", + "color": "#B8B8B8", + "fontFamily": "Arial", + "fontSize": 14, + "fontWeight": "bold", + "paddingLeft": 10 + } + }, + "tabs": [ + "Alarms", + "Status", + "Tags" + ] + }, + "type": "ia.container.tab" + } + ], + "meta": { + "name": "Main" + }, + "position": { + "basis": "670px", + "grow": 1 + }, + "props": { + "style": { + "border-top": "1px solid white", + "gap": "" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "800px", + "grow": 1 + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Buttons/Button-Menu" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/.resources/c6d329483973d2dc56243bac4ec2f7d0eb5fe86ab4c720aaa9abfcdb0c1b1205 b/.resources/24eb84cce21cd506df5435e36894b5fa7778c99701930fed2dc00ddf49de092d similarity index 92% rename from .resources/c6d329483973d2dc56243bac4ec2f7d0eb5fe86ab4c720aaa9abfcdb0c1b1205 rename to .resources/24eb84cce21cd506df5435e36894b5fa7778c99701930fed2dc00ddf49de092d index ec386add..909d4b72 100644 --- a/.resources/c6d329483973d2dc56243bac4ec2f7d0eb5fe86ab4c720aaa9abfcdb0c1b1205 +++ b/.resources/24eb84cce21cd506df5435e36894b5fa7778c99701930fed2dc00ddf49de092d @@ -1,7 +1,7 @@ { "custom": { "color": "ffffff", - "state": 15, + "state": 0, "string": "Non Powered Equipment" }, "params": { @@ -246,7 +246,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + "script": "\t#create devices and tags lists for the conveyor\n\tprops \u003d self.view.params.tagProps[0]\n\tautStand.devices.build_device_mapping(props)\n\tdevice_table_dataset \u003d autStand.devices.build_device_table(self)\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props)\n\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps, \"devices\": device_table_dataset, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/.resources/2a16a05a8ca529e1a687826e660d4707dcf6bdbd5270f4dfbab5409530a02050 b/.resources/2a16a05a8ca529e1a687826e660d4707dcf6bdbd5270f4dfbab5409530a02050 deleted file mode 100644 index b5d06c15..00000000 Binary files a/.resources/2a16a05a8ca529e1a687826e660d4707dcf6bdbd5270f4dfbab5409530a02050 and /dev/null differ diff --git a/.resources/43ec9ec97abea919ec10d1c832a279de9c5d53dada9058e6a0cbd82277147509 b/.resources/43ec9ec97abea919ec10d1c832a279de9c5d53dada9058e6a0cbd82277147509 new file mode 100644 index 00000000..4a7b2064 Binary files /dev/null and b/.resources/43ec9ec97abea919ec10d1c832a279de9c5d53dada9058e6a0cbd82277147509 differ diff --git a/.resources/5364c091f830834b366843a110e56b15cce76e29552f22be76a8d28f387326bf b/.resources/5364c091f830834b366843a110e56b15cce76e29552f22be76a8d28f387326bf deleted file mode 100644 index 59d4c8d6..00000000 Binary files a/.resources/5364c091f830834b366843a110e56b15cce76e29552f22be76a8d28f387326bf and /dev/null differ diff --git a/.resources/904843e5a17994295f43863a20b7a0d3fe523aa9e1f6704688b53789de75fb2e b/.resources/55e631162acfa70618005045be278b7f5fee9a75db1f8773ddec23aec7fde08e similarity index 80% rename from .resources/904843e5a17994295f43863a20b7a0d3fe523aa9e1f6704688b53789de75fb2e rename to .resources/55e631162acfa70618005045be278b7f5fee9a75db1f8773ddec23aec7fde08e index c014535e..d4dbe206 100644 --- a/.resources/904843e5a17994295f43863a20b7a0d3fe523aa9e1f6704688b53789de75fb2e +++ b/.resources/55e631162acfa70618005045be278b7f5fee9a75db1f8773ddec23aec7fde08e @@ -179,22 +179,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onDoubleClick": { - "config": { - "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})\n\t" - }, - "enabled": false, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" + "script": "\t#create tags lists for the device\n\tprops \u003d self.view.params.tagProps\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props[0])\n\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:props, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/.resources/64addcc17820e21eaecaa88f7bed729f813f363350c9b0ebfd7c14601394bb30 b/.resources/64addcc17820e21eaecaa88f7bed729f813f363350c9b0ebfd7c14601394bb30 deleted file mode 100644 index bbd91af2..00000000 Binary files a/.resources/64addcc17820e21eaecaa88f7bed729f813f363350c9b0ebfd7c14601394bb30 and /dev/null differ diff --git a/.resources/68f8f18abb7ce5e41ffc50ae11a5ecc9ebf4d81cddbaa1c077d8b247725a6541 b/.resources/664fd080a5366c6676dfa51c9e6cd6b85aa93208ef18cbd0416680df1d765cb5 similarity index 99% rename from .resources/68f8f18abb7ce5e41ffc50ae11a5ecc9ebf4d81cddbaa1c077d8b247725a6541 rename to .resources/664fd080a5366c6676dfa51c9e6cd6b85aa93208ef18cbd0416680df1d765cb5 index 3bb37e1f..b245a5c0 100644 --- a/.resources/68f8f18abb7ce5e41ffc50ae11a5ecc9ebf4d81cddbaa1c077d8b247725a6541 +++ b/.resources/664fd080a5366c6676dfa51c9e6cd6b85aa93208ef18cbd0416680df1d765cb5 @@ -1,12 +1,13 @@ { "custom": { + "alarm_message": null, "color": "#C2C2C2", "priority": "No Active Alarms", "state": "Closed" }, "params": { "angle": 0, - "directionLeft": true, + "directionLeft": false, "tagProps": [ "System/MCM01/Conveyor/VFD/UL1_3_VFD1", "value", diff --git a/.resources/6ce857e246f155ada6b8cdd095e00dc81df731c15e0240cf7f75d588800cd64b b/.resources/6ce857e246f155ada6b8cdd095e00dc81df731c15e0240cf7f75d588800cd64b new file mode 100644 index 00000000..8ae13548 Binary files /dev/null and b/.resources/6ce857e246f155ada6b8cdd095e00dc81df731c15e0240cf7f75d588800cd64b differ diff --git a/.resources/38a44702ec0783e62554374cab3762747d730fb2c892a6d44f9764b2871eb1ee b/.resources/75156c9b00d7919d4f3a099ac0e995aad59eefd00839e6bc1e7ceb735ed34636 similarity index 92% rename from .resources/38a44702ec0783e62554374cab3762747d730fb2c892a6d44f9764b2871eb1ee rename to .resources/75156c9b00d7919d4f3a099ac0e995aad59eefd00839e6bc1e7ceb735ed34636 index ad363a54..90c8f390 100644 --- a/.resources/38a44702ec0783e62554374cab3762747d730fb2c892a6d44f9764b2871eb1ee +++ b/.resources/75156c9b00d7919d4f3a099ac0e995aad59eefd00839e6bc1e7ceb735ed34636 @@ -1,7 +1,7 @@ { "custom": { "color": "ffffff", - "state": 15, + "state": 0, "string": "Non Powered Equipment" }, "params": { @@ -244,7 +244,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})\t" + "script": "\t#create devices and tags lists for the conveyor\n\tprops \u003d self.view.params.tagProps[0]\n\tautStand.devices.build_device_mapping(props)\n\tdevice_table_dataset \u003d autStand.devices.build_device_table(self)\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props)\n\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps, \"devices\": device_table_dataset, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/.resources/aaf614d7fb4af32bc46a8f94cea5440f083aa18cb04e784296010d57e495a155 b/.resources/84277024b1f17277447753bed0b8930bcae2b9eceb300db3abda6b542e623dd5 similarity index 99% rename from .resources/aaf614d7fb4af32bc46a8f94cea5440f083aa18cb04e784296010d57e495a155 rename to .resources/84277024b1f17277447753bed0b8930bcae2b9eceb300db3abda6b542e623dd5 index 24c98cc9..a589536e 100644 --- a/.resources/aaf614d7fb4af32bc46a8f94cea5440f083aa18cb04e784296010d57e495a155 +++ b/.resources/84277024b1f17277447753bed0b8930bcae2b9eceb300db3abda6b542e623dd5 @@ -372,7 +372,7 @@ "modal": false, "resizable": false, "show": "onDemand", - "size": 400, + "size": 600, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device" }, @@ -540,7 +540,7 @@ "modal": false, "resizable": false, "show": "onDemand", - "size": 400, + "size": 600, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device" }, @@ -747,7 +747,7 @@ "modal": false, "resizable": false, "show": "onDemand", - "size": 400, + "size": 600, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device" } diff --git a/.resources/2ca683d262f1933c96ef4d9306036d3c769a0fdfa38c546fd05fa08b166605b4 b/.resources/8806e52cb538a535295f2d07ce60bdb0da2ad4a83320519b2956b210df9b5bf3 similarity index 92% rename from .resources/2ca683d262f1933c96ef4d9306036d3c769a0fdfa38c546fd05fa08b166605b4 rename to .resources/8806e52cb538a535295f2d07ce60bdb0da2ad4a83320519b2956b210df9b5bf3 index 6dae5db1..34c916c6 100644 --- a/.resources/2ca683d262f1933c96ef4d9306036d3c769a0fdfa38c546fd05fa08b166605b4 +++ b/.resources/8806e52cb538a535295f2d07ce60bdb0da2ad4a83320519b2956b210df9b5bf3 @@ -1,7 +1,7 @@ { "custom": { "color": "ffffff", - "state": 15, + "state": 0, "string": "Non Powered Equipment" }, "params": { @@ -244,7 +244,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + "script": "\t#create devices and tags lists for the conveyor\n\tprops \u003d self.view.params.tagProps[0]\n\tautStand.devices.build_device_mapping(props)\n\tdevice_table_dataset \u003d autStand.devices.build_device_table(self)\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props)\n\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps, \"devices\": device_table_dataset, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/.resources/a5cd747873802f73564c0aba32016333f1580eb9e337ec9e3929b253f5c3c753 b/.resources/a5cd747873802f73564c0aba32016333f1580eb9e337ec9e3929b253f5c3c753 new file mode 100644 index 00000000..97607ba3 Binary files /dev/null and b/.resources/a5cd747873802f73564c0aba32016333f1580eb9e337ec9e3929b253f5c3c753 differ diff --git a/.resources/a5f81be3b246e177455c21bccfc9d233be861b4ac1995e73aba3ac788ad8c756 b/.resources/a5f81be3b246e177455c21bccfc9d233be861b4ac1995e73aba3ac788ad8c756 deleted file mode 100644 index 910276d3..00000000 Binary files a/.resources/a5f81be3b246e177455c21bccfc9d233be861b4ac1995e73aba3ac788ad8c756 and /dev/null differ diff --git a/.resources/21f00fb185fd9d8e5cd88f8f1fd71da189ff01598ed293648c0764d27d2c4345 b/.resources/a7e8d34377d5ea1fb38f375d25a492748de3f057625028de884b47dc0ad28159 similarity index 80% rename from .resources/21f00fb185fd9d8e5cd88f8f1fd71da189ff01598ed293648c0764d27d2c4345 rename to .resources/a7e8d34377d5ea1fb38f375d25a492748de3f057625028de884b47dc0ad28159 index 8899876c..3602994a 100644 --- a/.resources/21f00fb185fd9d8e5cd88f8f1fd71da189ff01598ed293648c0764d27d2c4345 +++ b/.resources/a7e8d34377d5ea1fb38f375d25a492748de3f057625028de884b47dc0ad28159 @@ -130,13 +130,6 @@ }, "scope": "G", "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" - }, - "scope": "G", - "type": "script" } } }, diff --git a/.resources/2c7adc8508e830417239bf547124fc6aa25b3da4f0539d72ddeb92141d1cc6a8 b/.resources/ab76162f6796a6365c20f2c12806c8b2508c95a175a33ad2bfd2d980313cfd68 similarity index 82% rename from .resources/2c7adc8508e830417239bf547124fc6aa25b3da4f0539d72ddeb92141d1cc6a8 rename to .resources/ab76162f6796a6365c20f2c12806c8b2508c95a175a33ad2bfd2d980313cfd68 index 4192d8b2..472f7aa5 100644 --- a/.resources/2c7adc8508e830417239bf547124fc6aa25b3da4f0539d72ddeb92141d1cc6a8 +++ b/.resources/ab76162f6796a6365c20f2c12806c8b2508c95a175a33ad2bfd2d980313cfd68 @@ -200,14 +200,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-EPC\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" + "script": "\t#create tags lists for the device\n\tprops \u003d self.view.params.tagProps\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props[0])\n\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:props, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/.resources/10bb92de3edf9de6235c4bcaf4549d1bb43dc10b02392e4047e52bd12718fa4a b/.resources/ac39d67f473d8fd3cc5c4d318a50097577c1c697aa5c91581ed883123c24498d similarity index 94% rename from .resources/10bb92de3edf9de6235c4bcaf4549d1bb43dc10b02392e4047e52bd12718fa4a rename to .resources/ac39d67f473d8fd3cc5c4d318a50097577c1c697aa5c91581ed883123c24498d index 121a46f0..cb104411 100644 --- a/.resources/10bb92de3edf9de6235c4bcaf4549d1bb43dc10b02392e4047e52bd12718fa4a +++ b/.resources/ac39d67f473d8fd3cc5c4d318a50097577c1c697aa5c91581ed883123c24498d @@ -177,7 +177,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-BTN\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + "script": "\tautStand.devices.build_device_mapping(self.view.params.tagProps[0])\n\tdevice_table_dataset \u003d autStand.devices.build_device_table(self)\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, self.view.params.tagProps[0])\n\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/.resources/3658254c84837ed75aaa6a0d01d6989c67f09aa5552888a226ac3ce3a9d91a13 b/.resources/bc4201923f0c8681156ddca15b557484142f9caaa02758fb02899f925e170d4c similarity index 59% rename from .resources/3658254c84837ed75aaa6a0d01d6989c67f09aa5552888a226ac3ce3a9d91a13 rename to .resources/bc4201923f0c8681156ddca15b557484142f9caaa02758fb02899f925e170d4c index b29e27df..f36705be 100644 --- a/.resources/3658254c84837ed75aaa6a0d01d6989c67f09aa5552888a226ac3ce3a9d91a13 +++ b/.resources/bc4201923f0c8681156ddca15b557484142f9caaa02758fb02899f925e170d4c @@ -2,6 +2,7 @@ "custom": { "PLC": "MCM01", "color": "#C2C2C2", + "showTags": true, "state": "Actuated" }, "params": { @@ -153,6 +154,19 @@ }, "persistent": true }, + "custom.showTags": { + "binding": { + "config": { + "expression": "len(trim({session.props.auth.user.userName})) \u003e 0 \u0026\u0026 lower({session.props.auth.user.userName}) !\u003d \"null\"" + }, + "type": "expr" + }, + "onChange": { + "enabled": null, + "script": "\ttabsComp \u003d self.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"Main\").getChild(\"tabs\").props.tabs\n\ttabs \u003d list(tabsComp) # copy to modify\n\t\n\tif currentValue.value: # user logged in\n\t if \"Tags\" not in tabs:\n\t tabs.append(\"Tags\") # add the \"Tags\" tab\n\t self.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"Main\").getChild(\"tabs\").props.tabs \u003d tabs\n\telse: # user logged out\n\t if \"Tags\" in tabs:\n\t tabs.remove(\"Tags\") # remove the \"Tags\" tab\n\t self.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"Main\").getChild(\"tabs\").props.tabs \u003d tabs" + }, + "persistent": true + }, "custom.state": { "binding": { "config": { @@ -702,7 +716,7 @@ } ], "meta": { - "name": "VFD" + "name": "Name" }, "position": { "basis": "35px" @@ -741,28 +755,6 @@ "grow": 1 }, "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, "props.text": { "binding": { "config": { @@ -770,14 +762,6 @@ }, "type": "expr" } - }, - "props.textStyle.color": { - "binding": { - "config": { - "expression": "if({view.custom.state}\u003d\"Closed\", \"#000000\", {view.custom.color})" - }, - "type": "expr" - } } }, "props": { @@ -835,7 +819,7 @@ "style": { "paddingLeft": 20 }, - "text": "FPM" + "text": "PANEL" }, "type": "ia.display.label" }, @@ -848,51 +832,18 @@ "grow": 1 }, "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, "props.text": { "binding": { "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/FPM" + "path": "view.custom.PLC" }, - "transforms": [ - { - "expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027) \u003d \u0027UNKNOWN\u0027, \u0027UNKNOWN\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" FPM\")", - "type": "expression" - } - ], - "type": "tag" + "type": "property" } } }, "props": { "style": { + "backgroundColor": "#FFFFFF", "classes": "Text-Styles/Ariel-Bold-12pt", "paddingLeft": 10 } @@ -916,686 +867,7 @@ } ], "meta": { - "name": "FPM" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/VFD_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN (FREQ/VELOCITY)\u0027)", - "type": "expression" - }, - { - "fallback": "UNKNOWN (FREQ/VELOCITY)", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "VELOCITY" - }, - { - "input": 0, - "output": "FREQUENCY" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "paddingLeft": 20 - } - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Frequency_Velocity" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/VFD_Type" - }, - "transforms": [ - { - "code": " provider \u003d self.session.custom.fc + \"_SCADA_TAG_PROVIDER\"\n baseTag \u003d self.view.params.tagProps[0]\n basePath \u003d \"[\"+ provider + \"]\" + baseTag\n child \u003d \"\"\n unit \u003d \"\"\n \n\n if value \u003d\u003d 1:\n child \u003d \"Velocity\"\n unit \u003d \" Rev/s\"\n else:\n child \u003d \"Frequency\"\n unit \u003d \" Hz\"\n\n fullPath \u003d basePath + \"/\" + child\n tagValue \u003d system.tag.readBlocking([fullPath])[0]\n result \u003d tagValue.value\n\t\n if result is None or str(result) \u003d\u003d \"None\":\n return \"UNKNOWN\"\n else:\n return str(result) + unit", - "type": "script" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Frequency_Velocity" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "AMPERAGE" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Amperage" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" - }, - "transforms": [ - { - "expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027) \u003d \u0027UNKNOWN\u0027, \u0027UNKNOWN\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" A\")", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Amperage" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "VOLTAGE" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Voltage" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Voltage" - }, - "transforms": [ - { - "expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027) \u003d \u0027UNKNOWN\u0027, \u0027UNKNOWN\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" V\")", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Voltage" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "COMMUNICATION FAULT CODE" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Communication_Fault_Code" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Communication_Fault_Code" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Communication_Fault_Code" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "VFD FAULT CODE" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "VFD_Fault_Code" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/VFD_Fault_Code" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "VFD_Fault_Code" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "LAST VFD FAULT CODE" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Last_VFD_Fault_Code" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Last_VFD_Fault_Code" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Last_VFD_Fault_Code" + "name": "Panel" }, "position": { "basis": "35px" @@ -1607,7 +879,7 @@ } ], "meta": { - "name": "Info_tab" + "name": "Status_tab" }, "position": { "tabIndex": 1 @@ -2182,7 +1454,6 @@ "grow": 1 }, "props": { - "currentTabIndex": 3, "menuType": "modern", "tabSize": { "width": 1000 @@ -2207,7 +1478,7 @@ }, "tabs": [ "Alarms", - "Info", + "Status", "Devices", "Tags" ] diff --git a/.resources/cb451ffd12ff1e2efb789147bc8d9e0d8a24e08b45cfd404e83428b0d23e5ad9 b/.resources/cb451ffd12ff1e2efb789147bc8d9e0d8a24e08b45cfd404e83428b0d23e5ad9 deleted file mode 100644 index fba9a004..00000000 Binary files a/.resources/cb451ffd12ff1e2efb789147bc8d9e0d8a24e08b45cfd404e83428b0d23e5ad9 and /dev/null differ diff --git a/.resources/dd885607592dd2376f1ccdfa597e7b3f37baf6490f6927840d7663097c809635 b/.resources/dd885607592dd2376f1ccdfa597e7b3f37baf6490f6927840d7663097c809635 deleted file mode 100644 index 169c7c50..00000000 --- a/.resources/dd885607592dd2376f1ccdfa597e7b3f37baf6490f6927840d7663097c809635 +++ /dev/null @@ -1,611 +0,0 @@ -{ - "custom": { - "PLC_list": [ - "MCM01", - "MCM02" - ], - "state": 0 - }, - "params": { - "tagProps": [ - "/System/MCM01/SIO/UL14_1_SIO1", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value" - ] - }, - "propConfig": { - "custom.PLC_list": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]Configuration/PLC" - }, - "transforms": [ - { - "code": "\tdevices \u003d system.util.jsonDecode(value)\n\tplcList \u003d []\n\tfor k in devices.keys():\n\t\tplcList.append(k)\n\t\t\n\treturn(sorted(set(plcList)))\n", - "type": "script" - } - ], - "type": "tag" - }, - "persistent": true - }, - "custom.state": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" - }, - "transforms": [ - { - "expression": "if(isNull({value}), 0, {value})", - "type": "expression" - }, - { - "fallback": null, - "inputType": "scalar", - "mappings": [ - { - "input": 3, - "output": 3 - }, - { - "input": 2, - "output": 2 - }, - { - "input": 1, - "output": 1 - }, - { - "input": 0, - "output": 0 - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "params.tagProps": { - "paramDirection": "input", - "persistent": true - } - }, - "props": { - "defaultSize": { - "width": 400 - } - }, - "root": { - "children": [ - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "grow": 1 - }, - "propConfig": { - "props.text": { - "binding": { - "config": { - "expression": "\u0027Source ID: \u0027 + {view.params.tagProps[0]}" - }, - "type": "expr" - } - } - }, - "props": { - "style": { - "color": "#FFFF", - "fontFamily": "Arial", - "fontSize": 14, - "fontWeight": "bold", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - }, - { - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.closeDock(\u0027Docked-East-Device\u0027)\n\tself.getSibling(\"tabs\").props.currentTabIndex \u003d 0" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Icon", - "tooltip": { - "enabled": true, - "style": { - "cursor": "pointer" - }, - "text": "Close faceplate" - } - }, - "props": { - "path": "material/close", - "style": { - "cursor": "pointer", - "marginBottom": 5, - "marginLeft": 5, - "marginRight": 5, - "marginTop": 5 - } - }, - "type": "ia.display.icon" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "30px", - "shrink": 0 - }, - "props": { - "style": { - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "32px", - "display": false - }, - "propConfig": { - "position.display": { - "binding": { - "config": { - "expression": "if({../AlarmTable.props.params.length_of_table_data} \u003d 0, True, False)" - }, - "enabled": false, - "type": "expr" - } - } - }, - "props": { - "style": { - "classes": "Labels/Label_1", - "marginTop": 20 - }, - "text": "No Active Alarms" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "AlarmStatusTable" - }, - "position": { - "basis": "400px", - "grow": 1 - }, - "propConfig": { - "props.filters.active.text": { - "binding": { - "config": { - "path": "view.params.tagProps[0]" - }, - "transforms": [ - { - "code": "\treturn value[1:]", - "type": "script" - } - ], - "type": "property" - } - } - }, - "props": { - "columns": { - "active": { - "displayPath": { - "enabled": false - }, - "priority": { - "enabled": false - }, - "source": { - "enabled": false - }, - "state": { - "enabled": false - } - } - }, - "filters": { - "active": { - "priorities": { - "critical": false, - "high": false, - "low": false, - "medium": false - }, - "states": { - "clearUnacked": false - } - } - }, - "refreshRate": 500, - "toolbar": { - "enabled": false - } - }, - "type": "ia.display.alarmstatustable" - } - ], - "meta": { - "name": "Active_tab" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "NAME" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "DeviceName" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.text": { - "binding": { - "config": { - "path": "view.params.tagProps[0]" - }, - "transforms": [ - { - "code": " return value.rsplit(\u0027/\u0027, 1)[-1]", - "type": "script" - } - ], - "type": "property" - } - } - }, - "props": { - "style": { - "backgroundColor": "#FFFFFF", - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Name" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "COMMUNICATION FAULTED" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "PB_Light" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" - }, - "transforms": [ - { - "expression": "coalesce({value},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "FAULTED" - }, - { - "input": 0, - "output": "NOT FAULTED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "NOT FAULTED", - "output": "#47FF47" - }, - { - "input": "FAULTED", - "output": "#FF0000" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px", - "shrink": 2 - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer_1" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Info_tab" - }, - "position": { - "tabIndex": 1 - }, - "props": { - "direction": "column", - "style": { - "margin-left": "" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "tabs" - }, - "position": { - "grow": 1 - }, - "props": { - "currentTabIndex": 1, - "menuType": "modern", - "tabSize": { - "width": 1000 - }, - "tabStyle": { - "active": { - "classes": "", - "color": "#FFFFFF", - "fontFamily": "Arial", - "fontSize": 14, - "fontWeight": "bold", - "paddingLeft": 10 - }, - "inactive": { - "classes": "", - "color": "#B8B8B8", - "fontFamily": "Arial", - "fontSize": 14, - "fontWeight": "bold", - "paddingLeft": 10 - } - }, - "tabs": [ - "Alarms", - "Info" - ] - }, - "type": "ia.container.tab" - } - ], - "meta": { - "name": "FlexContainer_1" - }, - "position": { - "basis": "670px", - "grow": 1 - }, - "props": { - "style": { - "border-top": "1px solid white", - "gap": "" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "800px", - "grow": 1 - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "root" - }, - "props": { - "direction": "column", - "style": { - "classes": "Buttons/Button-Menu" - } - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/dfcf5f8279cd5574128f22ab8207fe14c96b0feb7c37d0cc884a6ca4d2887f8e b/.resources/dfcf5f8279cd5574128f22ab8207fe14c96b0feb7c37d0cc884a6ca4d2887f8e new file mode 100644 index 00000000..ca21a8fc Binary files /dev/null and b/.resources/dfcf5f8279cd5574128f22ab8207fe14c96b0feb7c37d0cc884a6ca4d2887f8e differ diff --git a/BNA8/com.inductiveautomation.perspective/page-config/config.json b/BNA8/com.inductiveautomation.perspective/page-config/config.json index 24c98cc9..a589536e 100644 --- a/BNA8/com.inductiveautomation.perspective/page-config/config.json +++ b/BNA8/com.inductiveautomation.perspective/page-config/config.json @@ -372,7 +372,7 @@ "modal": false, "resizable": false, "show": "onDemand", - "size": 400, + "size": 600, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device" }, @@ -540,7 +540,7 @@ "modal": false, "resizable": false, "show": "onDemand", - "size": 400, + "size": 600, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device" }, @@ -747,7 +747,7 @@ "modal": false, "resizable": false, "show": "onDemand", - "size": 400, + "size": 600, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device" } diff --git a/BNA8/com.inductiveautomation.perspective/page-config/resource.json b/BNA8/com.inductiveautomation.perspective/page-config/resource.json index dd622a1a..bf97c53f 100644 --- a/BNA8/com.inductiveautomation.perspective/page-config/resource.json +++ b/BNA8/com.inductiveautomation.perspective/page-config/resource.json @@ -9,8 +9,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-10T08:20:09Z" + "timestamp": "2025-09-11T15:37:32Z" }, - "lastModificationSignature": "4604c221ea422bc2df7f817693ca918ac76a7b6deea75cc0f98f02304c3f589b" + "lastModificationSignature": "ce35afedf70a940db0c8a3d5bad825e3f65e71552694ac845a5512bd5e146843" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/resource.json index 255ea84e..30517cf3 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-10T10:52:17Z" + "timestamp": "2025-09-11T15:34:25Z" }, - "lastModificationSignature": "be8f9b14912997311b30491445b083d73b6008d021f37e0063c8cb4e7301b51a" + "lastModificationSignature": "fa75d2234d657ae4126d00111115632c0f43d0ae0975c05078fb07db169423fb" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/thumbnail.png index 59d4c8d6..4a7b2064 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/resource.json index ddc60fa0..a041e12f 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-10T06:48:01Z" + "timestamp": "2025-09-11T15:46:43Z" }, - "lastModificationSignature": "4423d420cc73c6f9f9ad8bb4babb31cf94b3c4dd6a4afca886ac354ae671f392" + "lastModificationSignature": "fa50d892e615152818b62bdc2e1bac430c9f9b93ced70518e6bb2c93d0d48687" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/thumbnail.png index bbd91af2..ca21a8fc 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/resource.json index f3929f3a..2c6ff4a0 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T13:01:44Z" + "timestamp": "2025-09-11T15:31:23Z" }, - "lastModificationSignature": "7215589c3e5c9b821785c5dcd647dc4ee14457935caeb7ebcd3510c04a2b1ecc" + "lastModificationSignature": "3b6ec724310321bc4aafa38262020118c4b3c64e4497045fa1040c43af6ff0f3" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/view.json index 121a46f0..cb104411 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/view.json @@ -177,7 +177,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-BTN\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + "script": "\tautStand.devices.build_device_mapping(self.view.params.tagProps[0])\n\tdevice_table_dataset \u003d autStand.devices.build_device_table(self)\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, self.view.params.tagProps[0])\n\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor/resource.json index d0487312..ff33288c 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor/resource.json @@ -9,8 +9,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-11T13:36:49Z" + "timestamp": "2025-09-12T07:51:34Z" }, - "lastModificationSignature": "9651f468fd3cab1023dfd80b86ab1fd43ea4b0f43b8ba04bd3c59ddd2bb652a3" + "lastModificationSignature": "77378b0ed93d124454ddc7eb1575c35c5fa13de59529e85e8e15d8909205e51a" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor/view.json index b8083f94..e3d7e20d 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor/view.json @@ -190,7 +190,7 @@ "dom": { "onClick": { "config": { - "script": "\tautStand.devices.build_device_mapping(self.view.params.tagProps[0])\n\tdevice_table_dataset \u003d autStand.devices.build_device_table(self)\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, self.view.params.tagProps[0])\n\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps, \"devices\": device_table_dataset, \"tags\":tags_table_dataset})" + "script": "\t#create devices and tags lists for the conveyor\n\tautStand.devices.build_device_mapping(self.view.params.tagProps[0])\n\tdevice_table_dataset \u003d autStand.devices.build_device_table(self)\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, self.view.params.tagProps[0])\n\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps, \"devices\": device_table_dataset, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor45/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor45/resource.json index bc2e0efd..e5c866be 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor45/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor45/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T14:56:59Z" + "timestamp": "2025-09-12T08:00:13Z" }, - "lastModificationSignature": "b7f06e25fbba213c1068feaa7e250e969c94d5d78499021fea105d3b4b5f2ecb" + "lastModificationSignature": "da962e78a9c5b1f971b066500fc3ba4400743c55826945b7fc68c74eea282214" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor45/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor45/view.json index ad363a54..90c8f390 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor45/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor45/view.json @@ -1,7 +1,7 @@ { "custom": { "color": "ffffff", - "state": 15, + "state": 0, "string": "Non Powered Equipment" }, "params": { @@ -244,7 +244,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})\t" + "script": "\t#create devices and tags lists for the conveyor\n\tprops \u003d self.view.params.tagProps[0]\n\tautStand.devices.build_device_mapping(props)\n\tdevice_table_dataset \u003d autStand.devices.build_device_table(self)\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props)\n\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps, \"devices\": device_table_dataset, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Left90/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Left90/resource.json index c9abb5a6..f0983f92 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Left90/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Left90/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T14:56:34Z" + "timestamp": "2025-09-12T08:00:20Z" }, - "lastModificationSignature": "152342aaca622b3f2beb2c01caf895596e3f90bf71c00c939620a86e7d3f6e54" + "lastModificationSignature": "5cc7e9a4226f51d1911fcd2e7bc247f5477fd230c39c66b4563a72b108eb5aae" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Left90/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Left90/view.json index ec386add..909d4b72 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Left90/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Left90/view.json @@ -1,7 +1,7 @@ { "custom": { "color": "ffffff", - "state": 15, + "state": 0, "string": "Non Powered Equipment" }, "params": { @@ -246,7 +246,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + "script": "\t#create devices and tags lists for the conveyor\n\tprops \u003d self.view.params.tagProps[0]\n\tautStand.devices.build_device_mapping(props)\n\tdevice_table_dataset \u003d autStand.devices.build_device_table(self)\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props)\n\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps, \"devices\": device_table_dataset, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Right90/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Right90/resource.json index 5602bd26..9fed86a5 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Right90/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Right90/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T14:56:44Z" + "timestamp": "2025-09-12T08:00:30Z" }, - "lastModificationSignature": "28d38e0253652bd66ec2038d0f6e2f6d0a83edc918d8fdd713bf01182174463d" + "lastModificationSignature": "a46c100ec0446ee809d0237ffac81ac1a75ed53035b2783b07489d1b36985af4" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Right90/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Right90/view.json index 6dae5db1..34c916c6 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Right90/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Conveyor_Right90/view.json @@ -1,7 +1,7 @@ { "custom": { "color": "ffffff", - "state": 15, + "state": 0, "string": "Non Powered Equipment" }, "params": { @@ -244,7 +244,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + "script": "\t#create devices and tags lists for the conveyor\n\tprops \u003d self.view.params.tagProps[0]\n\tautStand.devices.build_device_mapping(props)\n\tdevice_table_dataset \u003d autStand.devices.build_device_table(self)\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props)\n\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps, \"devices\": device_table_dataset, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/resource.json index 941a6aa0..bf4608bc 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T13:05:29Z" + "timestamp": "2025-09-12T08:04:04Z" }, - "lastModificationSignature": "1ba01e2c6fae8e8e55e668429ad8ee37a9bb14d58f59ca320085628589d75ce4" + "lastModificationSignature": "4e9558cd223b2ec5cfa86f256b62598b59bfafef0c8d8dafbf7d46a169d45fc6" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/thumbnail.png index 910276d3..97607ba3 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/view.json index c014535e..d4dbe206 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/view.json @@ -179,22 +179,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onDoubleClick": { - "config": { - "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})\n\t" - }, - "enabled": false, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" + "script": "\t#create tags lists for the device\n\tprops \u003d self.view.params.tagProps\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props[0])\n\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:props, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/resource.json index e02a67d6..9fad6108 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/resource.json @@ -9,9 +9,9 @@ ], "attributes": { "lastModification": { - "actor": "external", - "timestamp": "2025-08-28T09:46:53Z" + "actor": "admin", + "timestamp": "2025-09-12T08:04:49Z" }, - "lastModificationSignature": "3a20cedc8864e3e481fb4df4aef8f4f0048c6b9c3464450317139a9c527cc1a7" + "lastModificationSignature": "a406cd355a0a8695252790325d0e7d2cb522ac88b78e71b3ee3b62b599262b70" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/view.json index 4192d8b2..472f7aa5 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/view.json @@ -200,14 +200,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-EPC\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" + "script": "\t#create tags lists for the device\n\tprops \u003d self.view.params.tagProps\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props[0])\n\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:props, \"tags\":tags_table_dataset})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/resource.json index c4790ab3..77781c01 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/resource.json @@ -9,8 +9,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-03T15:51:16Z" + "timestamp": "2025-09-12T07:54:01Z" }, - "lastModificationSignature": "32937641e82bcd90161040e95a87728f32508568b344bb807cfa63df3fb14d9e" + "lastModificationSignature": "f78015de0c193b861735f5e23766696a2377171ca5b80cfe9b0d515cfbe9d202" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/view.json index 8899876c..3602994a 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/view.json @@ -130,13 +130,6 @@ }, "scope": "G", "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" - }, - "scope": "G", - "type": "script" } } }, diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Conv/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Conv/resource.json index 1314e9c9..2201eabd 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Conv/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Conv/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-11T14:00:54Z" + "timestamp": "2025-09-12T07:54:51Z" }, - "lastModificationSignature": "cc7f5bc89bdbc61531f44eaa129785367a39a4c2b85cb158444ecb538d8348d4" + "lastModificationSignature": "55743ddeee1803b2bd6ae78ef3263581eb9bd267c70b114d2c3caf4a416af66c" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Conv/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Conv/thumbnail.png index fba9a004..a116d570 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Conv/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Conv/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Conv/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Conv/view.json index b29e27df..f36705be 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Conv/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Conv/view.json @@ -2,6 +2,7 @@ "custom": { "PLC": "MCM01", "color": "#C2C2C2", + "showTags": true, "state": "Actuated" }, "params": { @@ -153,6 +154,19 @@ }, "persistent": true }, + "custom.showTags": { + "binding": { + "config": { + "expression": "len(trim({session.props.auth.user.userName})) \u003e 0 \u0026\u0026 lower({session.props.auth.user.userName}) !\u003d \"null\"" + }, + "type": "expr" + }, + "onChange": { + "enabled": null, + "script": "\ttabsComp \u003d self.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"Main\").getChild(\"tabs\").props.tabs\n\ttabs \u003d list(tabsComp) # copy to modify\n\t\n\tif currentValue.value: # user logged in\n\t if \"Tags\" not in tabs:\n\t tabs.append(\"Tags\") # add the \"Tags\" tab\n\t self.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"Main\").getChild(\"tabs\").props.tabs \u003d tabs\n\telse: # user logged out\n\t if \"Tags\" in tabs:\n\t tabs.remove(\"Tags\") # remove the \"Tags\" tab\n\t self.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"Main\").getChild(\"tabs\").props.tabs \u003d tabs" + }, + "persistent": true + }, "custom.state": { "binding": { "config": { @@ -702,7 +716,7 @@ } ], "meta": { - "name": "VFD" + "name": "Name" }, "position": { "basis": "35px" @@ -741,28 +755,6 @@ "grow": 1 }, "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, "props.text": { "binding": { "config": { @@ -770,14 +762,6 @@ }, "type": "expr" } - }, - "props.textStyle.color": { - "binding": { - "config": { - "expression": "if({view.custom.state}\u003d\"Closed\", \"#000000\", {view.custom.color})" - }, - "type": "expr" - } } }, "props": { @@ -835,7 +819,7 @@ "style": { "paddingLeft": 20 }, - "text": "FPM" + "text": "PANEL" }, "type": "ia.display.label" }, @@ -848,51 +832,18 @@ "grow": 1 }, "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, "props.text": { "binding": { "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/FPM" + "path": "view.custom.PLC" }, - "transforms": [ - { - "expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027) \u003d \u0027UNKNOWN\u0027, \u0027UNKNOWN\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" FPM\")", - "type": "expression" - } - ], - "type": "tag" + "type": "property" } } }, "props": { "style": { + "backgroundColor": "#FFFFFF", "classes": "Text-Styles/Ariel-Bold-12pt", "paddingLeft": 10 } @@ -916,686 +867,7 @@ } ], "meta": { - "name": "FPM" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/VFD_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN (FREQ/VELOCITY)\u0027)", - "type": "expression" - }, - { - "fallback": "UNKNOWN (FREQ/VELOCITY)", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "VELOCITY" - }, - { - "input": 0, - "output": "FREQUENCY" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "paddingLeft": 20 - } - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Frequency_Velocity" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/VFD_Type" - }, - "transforms": [ - { - "code": " provider \u003d self.session.custom.fc + \"_SCADA_TAG_PROVIDER\"\n baseTag \u003d self.view.params.tagProps[0]\n basePath \u003d \"[\"+ provider + \"]\" + baseTag\n child \u003d \"\"\n unit \u003d \"\"\n \n\n if value \u003d\u003d 1:\n child \u003d \"Velocity\"\n unit \u003d \" Rev/s\"\n else:\n child \u003d \"Frequency\"\n unit \u003d \" Hz\"\n\n fullPath \u003d basePath + \"/\" + child\n tagValue \u003d system.tag.readBlocking([fullPath])[0]\n result \u003d tagValue.value\n\t\n if result is None or str(result) \u003d\u003d \"None\":\n return \"UNKNOWN\"\n else:\n return str(result) + unit", - "type": "script" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Frequency_Velocity" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "AMPERAGE" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Amperage" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" - }, - "transforms": [ - { - "expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027) \u003d \u0027UNKNOWN\u0027, \u0027UNKNOWN\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" A\")", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Amperage" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "VOLTAGE" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Voltage" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Voltage" - }, - "transforms": [ - { - "expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027) \u003d \u0027UNKNOWN\u0027, \u0027UNKNOWN\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" V\")", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Voltage" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "COMMUNICATION FAULT CODE" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Communication_Fault_Code" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Communication_Fault_Code" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Communication_Fault_Code" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "VFD FAULT CODE" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "VFD_Fault_Code" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/VFD_Fault_Code" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "VFD_Fault_Code" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "LAST VFD FAULT CODE" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Last_VFD_Fault_Code" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Last_VFD_Fault_Code" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Last_VFD_Fault_Code" + "name": "Panel" }, "position": { "basis": "35px" @@ -1607,7 +879,7 @@ } ], "meta": { - "name": "Info_tab" + "name": "Status_tab" }, "position": { "tabIndex": 1 @@ -2182,7 +1454,6 @@ "grow": 1 }, "props": { - "currentTabIndex": 3, "menuType": "modern", "tabSize": { "width": 1000 @@ -2207,7 +1478,7 @@ }, "tabs": [ "Alarms", - "Info", + "Status", "Devices", "Tags" ] diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/resource.json index 2414ad2d..b5f293e2 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T13:45:37Z" + "timestamp": "2025-09-12T07:54:39Z" }, - "lastModificationSignature": "9a702d410bb09e55752bf764b5a9ae3e1b85e83aee01b92e1a0a4cd5fc68bc34" + "lastModificationSignature": "324b26f1e63ed8e580b1d2213a797428664651480c476de1daf6ebbf7b634d1b" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/thumbnail.png index b5d06c15..8ae13548 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/view.json index 169c7c50..45bd23c7 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/view.json @@ -1,14 +1,13 @@ { "custom": { - "PLC_list": [ - "MCM01", - "MCM02" - ], - "state": 0 + "PLC": "MCM01", + "device": "UL14_1_SIO1", + "showTags": true, + "state": "Closed" }, "params": { "tagProps": [ - "/System/MCM01/SIO/UL14_1_SIO1", + "System/MCM01/SIO/UL14_1_SIO1", "value", "value", "value", @@ -18,26 +17,50 @@ "value", "value", "value" - ] + ], + "tags": [] }, "propConfig": { - "custom.PLC_list": { + "custom.PLC": { "binding": { "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]Configuration/PLC" + "path": "view.params.tagProps[0]" }, "transforms": [ { - "code": "\tdevices \u003d system.util.jsonDecode(value)\n\tplcList \u003d []\n\tfor k in devices.keys():\n\t\tplcList.append(k)\n\t\t\n\treturn(sorted(set(plcList)))\n", + "code": "\treturn value.split(\"/\")[1]", "type": "script" } ], - "type": "tag" + "type": "property" + }, + "persistent": true + }, + "custom.device": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "code": " return value.rsplit(\u0027/\u0027, 1)[-1]", + "type": "script" + } + ], + "type": "property" + }, + "persistent": true + }, + "custom.showTags": { + "binding": { + "config": { + "expression": "len(trim({session.props.auth.user.userName})) \u003e 0 \u0026\u0026 lower({session.props.auth.user.userName}) !\u003d \"null\"" + }, + "type": "expr" + }, + "onChange": { + "enabled": null, + "script": "\ttabsComp \u003d self.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"Main\").getChild(\"tabs\").props.tabs\n\ttabs \u003d list(tabsComp) # copy to modify\n\t\n\tif currentValue.value: # user logged in\n\t if \"Tags\" not in tabs:\n\t tabs.append(\"Tags\") # add the \"Tags\" tab\n\t self.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"Main\").getChild(\"tabs\").props.tabs \u003d tabs\n\telse: # user logged out\n\t if \"Tags\" in tabs:\n\t tabs.remove(\"Tags\") # remove the \"Tags\" tab\n\t self.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"Main\").getChild(\"tabs\").props.tabs \u003d tabs\n\t \n\t\n\t" }, "persistent": true }, @@ -50,32 +73,216 @@ "0": "{view.params.tagProps[0]}", "fc": "{session.custom.fc}" }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/State" }, "transforms": [ { - "expression": "if(isNull({value}), 0, {value})", + "expression": "coalesce({value},0)", "type": "expression" }, { - "fallback": null, + "fallback": "Unknown", "inputType": "scalar", "mappings": [ { - "input": 3, - "output": 3 - }, - { - "input": 2, - "output": 2 + "input": 0, + "output": "Closed" }, { "input": 1, - "output": 1 + "output": "Actuated" }, { - "input": 0, - "output": 0 + "input": 2, + "output": "Communication Faulted" + }, + { + "input": 3, + "output": "Conveyor Running In Maintenance Mode" + }, + { + "input": 4, + "output": "Disabled" + }, + { + "input": 5, + "output": "Disconnected" + }, + { + "input": 6, + "output": "Stopped" + }, + { + "input": 7, + "output": "Enabled Not Running" + }, + { + "input": 8, + "output": "Encoder Fault" + }, + { + "input": 9, + "output": "Energy Management" + }, + { + "input": 10, + "output": "ESTOP Was Actuated" + }, + { + "input": 11, + "output": "EStopped" + }, + { + "input": 12, + "output": "EStopped Locally" + }, + { + "input": 13, + "output": "Extended Faulted" + }, + { + "input": 14, + "output": "Full" + }, + { + "input": 15, + "output": "Gaylord Start Pressed" + }, + { + "input": 16, + "output": "Jam Fault" + }, + { + "input": 17, + "output": "Jammed" + }, + { + "input": 18, + "output": "Loading Allowed" + }, + { + "input": 19, + "output": "Loading Not Allowed" + }, + { + "input": 20, + "output": "Low Air Pressure Fault Was Present" + }, + { + "input": 21, + "output": "Maintenance Mode" + }, + { + "input": 22, + "output": "Conveyor Stopped In Maintenance Mode" + }, + { + "input": 23, + "output": "Motor Faulted" + }, + { + "input": 24, + "output": "Motor Was Faulted" + }, + { + "input": 25, + "output": "Normal" + }, + { + "input": 26, + "output": "Off Inactive" + }, + { + "input": 27, + "output": "Open" + }, + { + "input": 28, + "output": "PLC Ready To Run" + }, + { + "input": 29, + "output": "Package Release Pressed" + }, + { + "input": 30, + "output": "Power Branch Was Faulted" + }, + { + "input": 31, + "output": "Pressed" + }, + { + "input": 32, + "output": "Ready To Receive" + }, + { + "input": 33, + "output": "Running" + }, + { + "input": 34, + "output": "Started" + }, + { + "input": 35, + "output": "Stopped" + }, + { + "input": 36, + "output": "System Started" + }, + { + "input": 37, + "output": "Unknown" + }, + { + "input": 38, + "output": "VFD Fault" + }, + { + "input": 39, + "output": "Conveyor Running In Power Saving Mode" + }, + { + "input": 40, + "output": "Conveyor Jogging In Maintenance Mode" + }, + { + "input": 41, + "output": "VFD Reset Required" + }, + { + "input": 42, + "output": "Jam Reset Push Button Pressed" + }, + { + "input": 43, + "output": "Start Push Button Pressed" + }, + { + "input": 44, + "output": "Stop Push Button Pressed" + }, + { + "input": 45, + "output": "No Container" + }, + { + "input": 46, + "output": "Ready To Be Enabled" + }, + { + "input": 47, + "output": "Half Full" + }, + { + "input": 48, + "output": "Enabled" + }, + { + "input": 49, + "output": "Tipper Faulted" } ], "outputType": "scalar", @@ -89,11 +296,15 @@ "params.tagProps": { "paramDirection": "input", "persistent": true + }, + "params.tags": { + "paramDirection": "input", + "persistent": true } }, "props": { "defaultSize": { - "width": 400 + "width": 600 } }, "root": { @@ -279,7 +490,10 @@ "name": "Active_tab" }, "props": { - "direction": "column" + "direction": "column", + "style": { + "key": "value" + } }, "type": "ia.container.flex" }, @@ -317,14 +531,8 @@ "props.text": { "binding": { "config": { - "path": "view.params.tagProps[0]" + "path": "view.custom.device" }, - "transforms": [ - { - "code": " return value.rsplit(\u0027/\u0027, 1)[-1]", - "type": "script" - } - ], "type": "property" } } @@ -381,7 +589,7 @@ "style": { "paddingLeft": 20 }, - "text": "COMMUNICATION FAULTED" + "text": "STATUS" }, "type": "ia.display.label" }, @@ -394,87 +602,11 @@ "grow": 1 }, "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#D5D5D5", - "inputType": "scalar", - "mappings": [ - { - "input": "UNKNOWN", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, "props.text": { "binding": { "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" + "path": "view.custom.state" }, - "transforms": [ - { - "expression": "coalesce({value},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "FAULTED" - }, - { - "input": 0, - "output": "NOT FAULTED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "NOT FAULTED", - "output": "#47FF47" - }, - { - "input": "FAULTED", - "output": "#FF0000" - } - ], - "outputType": "color", - "type": "map" - } - ], "type": "property" } } @@ -483,6 +615,9 @@ "style": { "classes": "Text-Styles/Ariel-Bold-12pt", "paddingLeft": 10 + }, + "textStyle": { + "color": "#000000" } }, "type": "ia.display.label" @@ -513,10 +648,86 @@ "direction": "column" }, "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NameField" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "props": { + "style": { + "paddingLeft": 20 + }, + "text": "PANEL" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "MCM" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.custom.PLC" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + }, + "textStyle": { + "color": "#000000" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Property" + }, + "position": { + "basis": "35px", + "shrink": 2 + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_2" + }, + "position": { + "basis": "35px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" } ], "meta": { - "name": "Info_tab" + "name": "Status_tab" }, "position": { "tabIndex": 1 @@ -528,6 +739,329 @@ } }, "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Table" + }, + "position": { + "basis": "400px", + "grow": 1, + "shrink": 0 + }, + "propConfig": { + "props.data": { + "binding": { + "config": { + "path": "view.params.tags" + }, + "type": "property" + } + } + }, + "props": { + "columns": [ + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "Name", + "filter": { + "boolean": { + "condition": "" + }, + "date": { + "condition": "", + "value": "" + }, + "enabled": false, + "number": { + "condition": "", + "value": "" + }, + "string": { + "condition": "", + "value": "" + }, + "visible": "on-hover" + }, + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Name" + }, + "justify": "center", + "nullFormat": { + "includeNullStrings": false, + "nullFormatValue": "", + "strict": false + }, + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 130 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "OPC Path", + "filter": { + "boolean": { + "condition": "" + }, + "date": { + "condition": "", + "value": "" + }, + "enabled": false, + "number": { + "condition": "", + "value": "" + }, + "string": { + "condition": "", + "value": "" + }, + "visible": "on-hover" + }, + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "OPC Path" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "OPC Path" + }, + "justify": "center", + "nullFormat": { + "includeNullStrings": false, + "nullFormatValue": "", + "strict": false + }, + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 350 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "Value", + "filter": { + "boolean": { + "condition": "" + }, + "date": { + "condition": "", + "value": "" + }, + "enabled": false, + "number": { + "condition": "", + "value": "" + }, + "string": { + "condition": "", + "value": "" + }, + "visible": "on-hover" + }, + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Value" + }, + "justify": "center", + "nullFormat": { + "includeNullStrings": false, + "nullFormatValue": "", + "strict": false + }, + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 100 + } + ], + "pager": { + "bottom": false + }, + "selection": { + "enableRowSelection": false + }, + "virtualized": false + }, + "type": "ia.display.table" + } + ], + "meta": { + "name": "Tags_tab" + }, + "position": { + "tabIndex": 2 + }, + "props": { + "alignItems": "flex-start", + "justify": "space-evenly" + }, + "type": "ia.container.flex" } ], "meta": { @@ -537,7 +1071,6 @@ "grow": 1 }, "props": { - "currentTabIndex": 1, "menuType": "modern", "tabSize": { "width": 1000 @@ -562,14 +1095,15 @@ }, "tabs": [ "Alarms", - "Info" + "Status", + "Tags" ] }, "type": "ia.container.tab" } ], "meta": { - "name": "FlexContainer_1" + "name": "Main" }, "position": { "basis": "670px", diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Photoeye/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Photoeye/resource.json index a4aaf942..ab587f8c 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Photoeye/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Photoeye/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-03T16:21:36Z" + "timestamp": "2025-09-12T07:49:42Z" }, - "lastModificationSignature": "0577ced50b98c06ae971724d931d3f0e18d2d51ce8cd4a4bd65137f751a9bbf2" + "lastModificationSignature": "c5f1c54becfb89a625f520f166489d28c5d48b747974ce279b37bca0b1249b7f" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Photoeye/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Photoeye/thumbnail.png index ad289198..ff92d10e 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Photoeye/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Photoeye/thumbnail.png differ