diff --git a/MTN6_Simulation/com.inductiveautomation.perspective/views/Simulations/Field_Devices/resource.json b/MTN6_Simulation/com.inductiveautomation.perspective/views/Simulations/Field_Devices/resource.json new file mode 100644 index 0000000..8b1ba80 --- /dev/null +++ b/MTN6_Simulation/com.inductiveautomation.perspective/views/Simulations/Field_Devices/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModification": { + "actor": "admin", + "timestamp": "2025-06-16T14:52:21Z" + }, + "lastModificationSignature": "25609014d2bcfa045b307b870584e8a2a7f511f9ecf172210a858cec28f88220" + } +} \ No newline at end of file diff --git a/MTN6_Simulation/com.inductiveautomation.perspective/views/Simulations/Field_Devices/thumbnail.png b/MTN6_Simulation/com.inductiveautomation.perspective/views/Simulations/Field_Devices/thumbnail.png new file mode 100644 index 0000000..25fb6b9 Binary files /dev/null and b/MTN6_Simulation/com.inductiveautomation.perspective/views/Simulations/Field_Devices/thumbnail.png differ diff --git a/MTN6_Simulation/com.inductiveautomation.perspective/views/Simulations/Field_Devices/view.json b/MTN6_Simulation/com.inductiveautomation.perspective/views/Simulations/Field_Devices/view.json new file mode 100644 index 0000000..cc14d1b --- /dev/null +++ b/MTN6_Simulation/com.inductiveautomation.perspective/views/Simulations/Field_Devices/view.json @@ -0,0 +1,166 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "height": 1080, + "width": 1920 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "SIO" + }, + "position": { + "height": 0.2083, + "width": 0.1255, + "x": 0.2996, + "y": 0.3797 + }, + "props": { + "params": { + "directionLeft": false, + "forceFaultStatus": null, + "forceRunningStatus": null, + "tagProps": [ + "/System/Field_Devices/SIO/SIO1", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Device-Views/DeviceStatus" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "FIO" + }, + "position": { + "height": 0.2083, + "width": 0.1255, + "x": 0.4314, + "y": 0.3797 + }, + "props": { + "params": { + "directionLeft": false, + "forceFaultStatus": null, + "forceRunningStatus": null, + "tagProps": [ + "/System/Field_Devices/FIO/FIO1", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Device-Views/DeviceStatus" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "HUB" + }, + "position": { + "height": 0.2083, + "width": 0.1255, + "x": 0.5621, + "y": 0.3806 + }, + "props": { + "params": { + "directionLeft": false, + "forceFaultStatus": null, + "forceRunningStatus": null, + "tagProps": [ + "/System/Field_Devices/HUB/HUB1", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Device-Views/DeviceStatus" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 0.0296, + "width": 0.026, + "x": 0.3557, + "y": 0.3241 + }, + "props": { + "text": "SIO" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_0" + }, + "position": { + "height": 0.0296, + "width": 0.026, + "x": 0.4855, + "y": 0.3241 + }, + "props": { + "text": "FIO" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Label_1" + }, + "position": { + "height": 0.0296, + "width": 0.026, + "x": 0.6152, + "y": 0.3241 + }, + "props": { + "text": "HUB" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "position": { + "x": 0.676, + "y": 0.5167 + }, + "props": { + "mode": "percent" + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-DeviceStatus/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-DeviceStatus/view.json new file mode 100644 index 0000000..19a00cb --- /dev/null +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-DeviceStatus/view.json @@ -0,0 +1,637 @@ +{ + "custom": { + "PLC_list": [ + "MCM01", + "MCM02", + "MCM03", + "MCM04", + "MCM05", + "MCM06", + "MCM07" + ], + "state": 0, + "views_data": [] + }, + "params": { + "tagProps": [ + "/System/Field_Devices/SIO/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": 1, + "output": 1 + }, + { + "input": 0, + "output": 0 + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + }, + "persistent": true + }, + "custom.views_data": { + "binding": { + "config": { + "struct": { + "equipment_id": "{view.params.tagProps[0]}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\tproject_info \u003d system.perspective.getProjectInfo()\n\t#self.custom.views_data \u003d project_info\n\tviews \u003d project_info.get(\"views\")\n\t#equipment_id \u003d self.view.params.tagProps[0]\n\tviews_data \u003d [i for i in views if i[\"path\"].startswith(\"Custom-Views/\"+ value.equipment_id)]\n\t#self.custom.views_data \u003d views_data\n\t\n\treturn views_data", + "type": "script" + } + ], + "type": "expr-struct" + }, + "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-DS\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 + }, + "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.rsplit(\u0027/\u0027, 1)[-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": "Name" + }, + "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": "CONNECTION STATUS" + }, + "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": "#000000", + "inputType": "scalar", + "mappings": [ + { + "input": "FAULTED", + "output": "#FFFFFF" + }, + { + "input": "NOT FAULTED", + "output": "#D5D5D5" + } + ], + "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},{view.params.forceFaultStatus},0)", + "type": "expression" + }, + { + "fallback": "NOT FAULTED", + "inputType": "scalar", + "mappings": [ + { + "input": 1, + "output": "FAULTED" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "path": "this.props.text" + }, + "transforms": [ + { + "fallback": "#000000", + "inputType": "scalar", + "mappings": [ + { + "input": "FAULTED", + "output": "#FF0000" + }, + { + "input": "NOT FAULTED", + "output": "#47FF47" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Name" + }, + "position": { + "basis": "35px", + "shrink": 2 + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Connection Status" + }, + "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": "Commands_tab" + }, + "position": { + "tabIndex": 2 + }, + "props": { + "direction": "column", + "style": { + "paddingTop": 1 + } + }, + "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", + "Info", + "Commands" + ] + }, + "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/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-StatusNonPowered/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-StatusNonPowered/view.json index f42e133..13840f5 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-StatusNonPowered/view.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-StatusNonPowered/view.json @@ -179,7 +179,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.closeDock(\u0027Docked-East-JR\u0027)\n\tself.getSibling(\"tabs\").props.currentTabIndex \u003d 0" + "script": "\tsystem.perspective.closeDock(\u0027Docked-East-SNP\u0027)\n\tself.getSibling(\"tabs\").props.currentTabIndex \u003d 0" }, "scope": "G", "type": "script" diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Device-Views/DeviceStatus/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Device-Views/DeviceStatus/view.json index 2998733..dd11fa7 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Device-Views/DeviceStatus/view.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Device-Views/DeviceStatus/view.json @@ -1,10 +1,19 @@ { - "custom": {}, + "custom": { + "disconnected": false, + "plc": "", + "priority": 1, + "priority_string": "High", + "searchId": "PLC01", + "state": 1, + "state_string": "Communication Faulted" + }, "params": { + "forceFaultStatus": null, "tagProps": [ - "PLC15/OPC/inAlarms0", - "1_Profinet node fault", - "", + "/System/Field_Devices/SIO/SIO1", + "value", + "value", "value", "value", "value", @@ -15,6 +24,135 @@ ] }, "propConfig": { + "custom.disconnected": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "fc": "{session.custom.fc}", + "plc": "{view.custom.plc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{plc}/DCN" + }, + "transforms": [ + { + "expression": "if(isNull({value}), False, {value})", + "type": "expression" + } + ], + "type": "tag" + }, + "persistent": true + }, + "custom.plc": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "expression": "split({value}, \"/\")[0]", + "type": "expression" + } + ], + "type": "property" + }, + "persistent": true + }, + "custom.priority": { + "binding": { + "config": { + "path": "view.custom.state" + }, + "transforms": [ + { + "fallback": 0, + "inputType": "scalar", + "mappings": [ + { + "input": 1, + "output": 1 + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + }, + "persistent": true + }, + "custom.priority_string": { + "binding": { + "config": { + "path": "view.custom.state" + }, + "transforms": [ + { + "fallback": "Unknown", + "inputType": "scalar", + "mappings": [ + { + "input": 0, + "output": "No Active Alarms" + }, + { + "input": 1, + "output": "High" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + }, + "persistent": true + }, + "custom.searchId": { + "binding": { + "config": { + "path": "session.custom.searchId" + }, + "type": "property" + }, + "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},{view.params.forceFaultStatus},0)", + "type": "expression" + } + ], + "type": "tag" + }, + "persistent": true + }, + "custom.state_string": { + "binding": { + "config": { + "expression": "case({view.custom.state},\r\n0, \"Normal\",\r\n1, \"Communication Faulted\",\r\n\"Unknown\")" + }, + "type": "expr" + }, + "persistent": true + }, + "params.forceFaultStatus": { + "paramDirection": "input", + "persistent": true + }, "params.tagProps": { "paramDirection": "inout", "persistent": true @@ -77,97 +215,54 @@ "basis": "264px" }, "propConfig": { - "meta.visible": { + "props.color": { "binding": { "config": { - "expression": "true" + "path": "view.custom.state" }, - "type": "expr" - } - }, - "props.style.classes": { - "binding": { - "config": { - "expression": "{parent.custom.ref_state}" - }, - "overlayOptOut": true, "transforms": [ { - "fallback": "State-Styles/State106", + "fallback": "#00CC00", "inputType": "scalar", "mappings": [ - { - "input": 0, - "output": "State-Styles/State0" - }, { "input": 1, - "output": "State-Styles/State1" + "output": "#FF0000" }, { - "input": 2, - "output": "State-Styles/State2" - }, - { - "input": 3, - "output": "State-Styles/State3" - }, - { - "input": 4, - "output": "State-Styles/State4" - }, - { - "input": 5, - "output": "State-Styles/State5" - }, - { - "input": 6, - "output": "State-Styles/State6" - }, - { - "input": 101, - "output": "State-Styles/State101" - }, - { - "input": 102, - "output": "State-Styles/State102" - }, - { - "input": 103, - "output": "State-Styles/State103" - }, - { - "input": 104, - "output": "State-Styles/State104" - }, - { - "input": 105, - "output": "State-Styles/State105" - }, - { - "input": 106, - "output": "State-Styles/State106" + "input": 0, + "output": "#00CC00" } ], - "outputType": "style-list", + "outputType": "color", "type": "map" } ], - "type": "expr" + "type": "property" } } }, "props": { - "path": "material/place" + "path": "material/place", + "style": { + "classes": "State-Styles/State1" + } }, "type": "ia.display.icon" } ], "events": { "dom": { + "onClick": { + "config": { + "script": "\t\tsystem.perspective.openDock(\u0027Docked-East-DS\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(\"DevicePopUP\", \"PopUp-Views/Device/Information-Device\", params \u003d{\"tagProps\":tagProps},resizable \u003d 1)\n\t" + "script": "\tsystem.perspective.openDock(\u0027Docked-East-DS\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" @@ -175,98 +270,39 @@ } }, "meta": { - "name": "root" + "name": "root", + "text": "", + "tooltip": { + "style": {} + } }, "propConfig": { - "custom.alarm_active": { + "meta.tooltip.style.classes": { "binding": { "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "1": "{view.params.tagProps[1]}" - }, - "tagPath": "{0}/Alarms/{1}.IsActive" - }, - "type": "tag" - } - }, - "custom.alarm_priority_int": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "1": "{view.params.tagProps[1]}" - }, - "tagPath": "{0}/Alarms/{1}.Priority" + "expression": "{view.custom.priority}" }, "transforms": [ { - "expression": "case({value},\n\"Critical\",1,\n\"High\",1,\n\"Medium\",2,\n\"Low\",3,\n\"Diagnostic\",4,0)", - "type": "expression" + "fallback": "Alarms-Styles/NoAlarm", + "inputType": "scalar", + "mappings": [ + { + "input": 1, + "output": "Alarms-Styles/High" + } + ], + "outputType": "style-list", + "type": "map" } ], - "type": "tag" - } - }, - "custom.alarm_shelved": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "1": "{view.params.tagProps[1]}" - }, - "tagPath": "{0}/Alarms/{1}.IsShelved" - }, - "type": "tag" - } - }, - "custom.covert_mode": { - "binding": { - "config": { - "path": "session.custom.covert" - }, - "type": "property" - } - }, - "custom.isMatch": { - "binding": { - "config": { - "expression": "if({session.custom.deviceSearchId} \u003d {this.custom.search_path},1,0)" - }, - "type": "expr" - }, - "onChange": { - "enabled": null, - "script": "\tif currentValue.value \u003d\u003d 1:\n\t\tself.print(self.custom.search_path)\n\t\tself.session.custom.searchId \u003d \"\"" - }, - "persistent": false - }, - "custom.ref_state": { - "binding": { - "config": { - "expression": "if({this.custom.state}\u003d1 \u0026\u0026 {this.custom.isMatch}\u003d1,{this.custom.alarm_priority_int} + 100,\nif({this.custom.state}\u003d1 \u0026\u0026 {this.custom.isMatch}\u003d0,{this.custom.alarm_priority_int},\nif({this.custom.state}\u003d0 \u0026\u0026 {this.custom.isMatch}\u003d1,105,5)))" - }, "type": "expr" } }, - "custom.search_path": { + "meta.tooltip.text": { "binding": { "config": { - "expression": "{view.params.tagProps[0]}+\"/\"+{view.params.tagProps[1]}" - }, - "type": "expr" - } - }, - "custom.state": { - "binding": { - "config": { - "expression": "if({this.custom.alarm_shelved},0,\nif({this.custom.alarm_active},1,0))" + "expression": "if(\n {view.custom.disconnected} \u003d false,\n \"Source Id: \" + {view.params.tagProps[0]} + \", Priority: \" + {view.custom.priority_string} + \", State: \" + {view.custom.state_string},\n \"Device Disconnected\"\n)\n" }, "type": "expr" } @@ -278,10 +314,37 @@ }, "type": "property" } + }, + "props.style.classes": { + "binding": { + "config": { + "path": "view.custom.disconnected" + }, + "transforms": [ + { + "fallback": "Disconnects/Device-Connected", + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "Disconnects/Device-Disconnected" + }, + { + "input": false, + "output": "Disconnects/Device-Connected" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "property" + } } }, "props": { - "direction": "column" + "direction": "column", + "style": {} }, "type": "ia.container.flex" } diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/StatusNonPowered/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/StatusNonPowered/view.json index ff46bc0..02e302e 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/StatusNonPowered/view.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/StatusNonPowered/view.json @@ -1,7 +1,7 @@ { "custom": { "alarm_message": null, - "disconnected": true, + "disconnected": false, "plc": "value", "priority": 0, "priority_string": "Medium", @@ -40,7 +40,7 @@ }, "transforms": [ { - "expression": "!isGood({value})", + "expression": "if(isNull({value}), False, {value})", "type": "expression" } ], @@ -264,6 +264,32 @@ ], "type": "property" } + }, + "props.style.classes": { + "binding": { + "config": { + "path": "view.custom.disconnected" + }, + "transforms": [ + { + "fallback": "Disconnects/Device-Connected", + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "Disconnects/Device-Disconnected" + }, + { + "input": false, + "output": "Disconnects/Device-Connected" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "property" + } } }, "props": { diff --git a/tags/Simulation/FieldDevices.json b/tags/Simulation/FieldDevices.json new file mode 100644 index 0000000..1b2fbb8 --- /dev/null +++ b/tags/Simulation/FieldDevices.json @@ -0,0 +1,1416 @@ +{ + "name": "", + "tagType": "Provider", + "tags": [ + { + "name": "Latency", + "tagType": "Folder", + "tags": [ + { + "valueSource": "memory", + "dataType": "StringArray", + "name": "rolling_latency", + "alarmEvalEnabled": true, + "value": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "first_pass", + "value": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "reference", + "dataType": "String", + "sourceTagPath": "[~]System/aws_data.value", + "name": "aws_data_copy", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "prev_key", + "value": "", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "DateTime", + "name": "last_alarm_change_ts", + "formatString": "yyyy-MM-dd h:mm:ss aa", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "avg_latency", + "value": "", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "Configuration", + "tagType": "Folder", + "tags": [ + { + "valueSource": "memory", + "dataType": "String", + "name": "SiteLatLng", + "value": "{\"lat\":40.19567891533845, \"lng\":-74.56542081870408}", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "PLC", + "value": "{ \"MCM07\": { \"Area\": \"Bypass\", \"SubArea\": \"\" }, \t\"MCM06\": { \"Area\": \"Non Con Sorters\", \"SubArea\": \"\" }, \t\"MCM05\": { \"Area\": \"North Bulk Inbound, Fluid Outbound and Problem Solve\", \"SubArea\": \"\" }, \t\"MCM04\": { \"Area\": \"South Bulk Inbound, Fluid Outbound and Problem Solve\", \"SubArea\": \"\" }, \t\"MCM03\": { \"Area\": \"Non Con Merge\", \"SubArea\": \"\" }, \t\"MCM02\": { \"Area\": \"Fluid Inbound Merges 5-7\", \"SubArea\": \"\" }, \t\"MCM01\": { \"Area\": \"Fluid Inbound Merges 1-4\", \"SubArea\": \"\" } }", + "tagType": "AtomicTag" + }, + { + "valueSource": "reference", + "dataType": "String", + "sourceTagPath": "[System]Gateway/SystemName", + "name": "SystemName", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "aws", + "value": "{\"prefix\":\"na\",\"region\":\"us-east-1\"}", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "FC", + "alarmEvalEnabled": false, + "value": "MTN6_SIMULATION", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "DetailedViews", + "value": "{ \"MCM07 Bypass\": [ \"MCM07\" ], \t\"MCM06 Non Con\": [ \"MCM06\" ],\t \t\"MCM05 South Bulk Inbound, Fluid Outbound and Problem Solve\": [ \"MCM05\" ],\t \t\"MCM04 North Bulk Inbound, Fluid Outbound and Problem Solve\": [ \"MCM04\" ], \t\"MCM03 Non Con\": [ \"MCM03\" ], \t\"MCM02 Fluid Inbound Merges 5-7\": [ \"MCM02\" ], \t\"MCM01 Fluid Inbound Merges 1-4\": [ \"MCM01\" ]}", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "BACKEND_EDGE_DEVICE", + "value": "quattro", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "_types_", + "tagType": "Folder", + "tags": [ + { + "name": "Station Chute", + "tagType": "UdtType", + "tags": [ + { + "name": "Maintenance", + "tagType": "Folder", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Maintenance.Start_PB" + }, + "valueSource": "opc", + "name": "Start_PB", + "tagType": "AtomicTag", + "opcServer": "PLC" + } + ] + }, + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarm.Pressed" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Pressed", + "tagType": "AtomicTag", + "opcServer": "PLC" + } + ] + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.STATE" + }, + "valueSource": "opc", + "name": "STATE", + "tagType": "AtomicTag", + "opcServer": "PLC" + } + ] + }, + { + "name": "Chute", + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.STATE" + }, + "valueSource": "opc", + "name": "STATE", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarms.Disabled" + }, + "valueSource": "opc", + "alarms": [ + { + "setpointA": 1.0, + "notes": "Conveyor is Disabled", + "name": "Disabled", + "priority": "Medium" + } + ], + "name": "Disabled", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarms.PKGREL_PB_Pressed" + }, + "valueSource": "opc", + "name": "PKGREL_PB_Pressed", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarms.Full" + }, + "valueSource": "opc", + "alarms": [ + { + "setpointA": 1.0, + "notes": "Conveyor is Full", + "name": "Full", + "priority": "High" + } + ], + "name": "Full", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarms.Half_Full" + }, + "valueSource": "opc", + "alarms": [ + { + "setpointA": 1.0, + "notes": "Conveyor is Half Full", + "name": "Half Full", + "priority": "High" + } + ], + "name": "Half_Full", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarms.Jam" + }, + "valueSource": "opc", + "alarms": [ + { + "setpointA": 1.0, + "notes": "Conveyor is Jammed", + "name": "Jammed", + "label": "", + "displayPath": "", + "priority": "High" + } + ], + "name": "Jam", + "tagType": "AtomicTag", + "opcServer": "PLC" + } + ] + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Enable_Chute_Pressed" + }, + "valueSource": "opc", + "name": "Enable_Chute_Pressed", + "tagType": "AtomicTag", + "opcServer": "PLC" + } + ] + }, + { + "name": "Field_Devices", + "typeId": "", + "tagType": "UdtType", + "tags": [ + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarm.Communication_Fault" + }, + "valueSource": "opc", + "alarms": [ + { + "setpointA": 1.0, + "name": "CommunictaionFaulted", + "priority": "High" + } + ], + "name": "Communication_Fault", + "tagType": "AtomicTag", + "opcServer": "PLC" + } + ] + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.STATE" + }, + "valueSource": "opc", + "name": "STATE", + "tagType": "AtomicTag", + "opcServer": "PLC" + } + ] + }, + { + "name": "TagProp", + "tagType": "UdtType", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "{InstanceName}.Disconnected" + }, + "valueSource": "opc", + "name": "Disconnected", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.ALARMST" + }, + "valueSource": "opc", + "name": "ALARMST", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.STATE" + }, + "valueSource": "opc", + "name": "STATE", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.DISC" + }, + "valueSource": "opc", + "name": "DCN", + "tagType": "AtomicTag", + "opcServer": "PLC" + } + ] + }, + { + "name": "PE", + "tagType": "UdtType", + "tags": [ + { + "valueSource": "memory", + "name": "TimeOut", + "tagType": "AtomicTag" + }, + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarm.Full" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Full", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Jammed", + "tagType": "AtomicTag" + } + ] + } + ] + }, + { + "name": "Conveyor", + "tagType": "UdtType", + "tags": [ + { + "name": "Maintenance", + "tagType": "Folder", + "tags": [ + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Maintenance_Mode", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Direction", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Direction_PB_Pressed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Stop_LT", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Jog_PB_Pressed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Stop_PB_Pressed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Start_PB_Pressed", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Run_LT", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Speed_FPM", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "Alarms", + "tagType": "Folder", + "tags": [ + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Disconnected", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "VFD_Fault", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Communication_Fault", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "VFD_Reset_Required", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Communication_Fault_Reset_Required", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "Safe_Off_Fault", + "tagType": "AtomicTag" + } + ] + }, + { + "valueSource": "memory", + "name": "FPM", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "name": "Last_VFD_Fault_Code", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "name": "STATE", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "name": "Voltage", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "name": "Amperage", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "name": "Communication_Fault_Code", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "name": "VFD_Fault_Code", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "name": "Frequenncy", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "name": "Power_Save_Time", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "name": "Speed_At_60Hz", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "Station", + "tagType": "UdtType", + "tags": [ + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarm.Pressed" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Pressed", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarm.Stopped" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Stopped", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarm.EStopped" + }, + "valueSource": "opc", + "dataType": "Boolean", + "name": "Estopped", + "tagType": "AtomicTag", + "opcServer": "PLC" + } + ] + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.STATE" + }, + "valueSource": "opc", + "name": "STATE", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "name": "Maintenance", + "tagType": "Folder", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Maintenance.Start_PB" + }, + "valueSource": "opc", + "name": "Start_PB", + "tagType": "AtomicTag", + "opcServer": "PLC" + }, + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Maintenance.Stop_PB" + }, + "valueSource": "opc", + "name": "Stop_PB", + "tagType": "AtomicTag", + "opcServer": "PLC" + } + ] + } + ] + } + ] + }, + { + "name": "System", + "tagType": "Folder", + "tags": [ + { + "valueSource": "memory", + "dataType": "String", + "name": "download", + "value": "", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "device_count", + "value": "{}", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "thread_id", + "value": "313", + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "aws_data", + "value": "{}", + "tagType": "AtomicTag" + }, + { + "name": "Conveyor", + "tagType": "Folder", + "tags": [ + { + "name": "UL1_3_VFD1", + "typeId": "Conveyor", + "tagType": "UdtInstance", + "tags": [ + { + "name": "Voltage", + "tagType": "AtomicTag" + }, + { + "name": "Speed_At_60Hz", + "tagType": "AtomicTag" + }, + { + "value": 14, + "name": "STATE", + "tagType": "AtomicTag" + }, + { + "name": "Last_VFD_Fault_Code", + "tagType": "AtomicTag" + }, + { + "name": "Maintenance", + "tagType": "Folder", + "tags": [ + { + "name": "Maintenance_Mode", + "tagType": "AtomicTag" + }, + { + "name": "Speed_FPM", + "tagType": "AtomicTag" + }, + { + "name": "Stop_LT", + "tagType": "AtomicTag" + }, + { + "name": "Run_LT", + "tagType": "AtomicTag" + }, + { + "name": "Direction_PB_Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Start_PB_Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Stop_PB_Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Jog_PB_Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Direction", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "Alarms", + "tagType": "Folder", + "tags": [ + { + "name": "Communication_Fault", + "tagType": "AtomicTag" + }, + { + "name": "Safe_Off_Fault", + "tagType": "AtomicTag" + }, + { + "name": "VFD_Fault", + "tagType": "AtomicTag" + }, + { + "name": "Communication_Fault_Reset_Required", + "tagType": "AtomicTag" + }, + { + "name": "VFD_Reset_Required", + "tagType": "AtomicTag" + }, + { + "name": "Disconnected", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "Amperage", + "tagType": "AtomicTag" + }, + { + "name": "Frequenncy", + "tagType": "AtomicTag" + }, + { + "name": "VFD_Fault_Code", + "tagType": "AtomicTag" + }, + { + "name": "FPM", + "tagType": "AtomicTag" + }, + { + "name": "Communication_Fault_Code", + "tagType": "AtomicTag" + }, + { + "name": "Power_Save_Time", + "tagType": "AtomicTag" + } + ] + } + ] + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "wbsckt_running", + "value": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "wbsckt_messages_send", + "value": "{\"message_list\":[{\"action\":\"pageview\",\"parameters\":{\"siteId\":\"MTN6_SIMULATION\",\"sessionId\":\"ab478372-8d3a-4da3-84ef-c15eb88943e9\",\"pageId\":\"Detailed-View: MCM04\",\"timestamp\":1750084259529}}]}", + "tagType": "AtomicTag" + }, + { + "name": "PE", + "tagType": "Folder", + "tags": [ + { + "name": "UL1_3_FPE1", + "typeId": "PE", + "tagType": "UdtInstance", + "tags": [ + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "name": "Jammed", + "tagType": "AtomicTag" + }, + { + "name": "Full", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "TimeOut", + "tagType": "AtomicTag" + } + ] + } + ] + }, + { + "name": "Station", + "tagType": "Folder", + "tags": [ + { + "name": "EPC", + "tagType": "Folder", + "tags": [ + { + "name": "UL1_3_EPC2", + "typeId": "Station", + "tagType": "UdtInstance", + "tags": [ + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "name": "Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Estopped", + "tagType": "AtomicTag" + }, + { + "name": "Stopped", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "STATE", + "tagType": "AtomicTag" + }, + { + "name": "Maintenance", + "tagType": "Folder", + "tags": [ + { + "name": "Start_PB", + "tagType": "AtomicTag" + }, + { + "name": "Stop_PB", + "tagType": "AtomicTag" + } + ] + } + ] + }, + { + "name": "UL1_3_EPC1", + "typeId": "Station", + "tagType": "UdtInstance", + "tags": [ + { + "name": "Maintenance", + "tagType": "Folder", + "tags": [ + { + "name": "Start_PB", + "tagType": "AtomicTag" + }, + { + "name": "Stop_PB", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "name": "Estopped", + "tagType": "AtomicTag" + }, + { + "name": "Stopped", + "tagType": "AtomicTag" + }, + { + "name": "Pressed", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "STATE", + "tagType": "AtomicTag" + } + ] + } + ] + }, + { + "name": "JR", + "tagType": "Folder", + "tags": [ + { + "name": "S011050_JR1", + "typeId": "Station Chute", + "tagType": "UdtInstance", + "tags": [ + { + "name": "STATE", + "tagType": "AtomicTag" + }, + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "name": "Pressed", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "Maintenance", + "tagType": "Folder", + "tags": [ + { + "name": "Start_PB", + "tagType": "AtomicTag" + } + ] + } + ] + }, + { + "name": "UL1_3_JR_PB2", + "typeId": "Station", + "tagType": "UdtInstance", + "tags": [ + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "name": "Stopped", + "tagType": "AtomicTag" + }, + { + "name": "Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Estopped", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "STATE", + "tagType": "AtomicTag" + }, + { + "name": "Maintenance", + "tagType": "Folder", + "tags": [ + { + "name": "Start_PB", + "tagType": "AtomicTag" + }, + { + "name": "Stop_PB", + "tagType": "AtomicTag" + } + ] + } + ] + }, + { + "name": "UL1_3_JR_PB1", + "typeId": "Station", + "tagType": "UdtInstance", + "tags": [ + { + "name": "STATE", + "tagType": "AtomicTag" + }, + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "name": "Stopped", + "tagType": "AtomicTag" + }, + { + "name": "Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Estopped", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "Maintenance", + "tagType": "Folder", + "tags": [ + { + "name": "Stop_PB", + "tagType": "AtomicTag" + }, + { + "name": "Start_PB", + "tagType": "AtomicTag" + } + ] + } + ] + } + ] + } + ] + }, + { + "valueSource": "memory", + "dataType": "String", + "name": "IdToStatus", + "value": "{}", + "tagType": "AtomicTag" + }, + { + "name": "Field_Devices", + "tagType": "Folder", + "tags": [ + { + "name": "SIO", + "tagType": "Folder", + "tags": [ + { + "name": "SIO1", + "typeId": "Field_Devices", + "tagType": "UdtInstance", + "tags": [ + { + "name": "STATE", + "tagType": "AtomicTag" + }, + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarm.Communication_Fault" + }, + "alarms": [ + { + "setpointA": 1.0, + "name": "CommunicationFaulted", + "priority": "High" + } + ], + "name": "Communication_Fault", + "tagType": "AtomicTag" + } + ] + } + ] + } + ] + }, + { + "name": "FIO", + "tagType": "Folder", + "tags": [ + { + "name": "FIO1", + "typeId": "Field_Devices", + "tagType": "UdtInstance", + "tags": [ + { + "name": "STATE", + "tagType": "AtomicTag" + }, + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarm.Communication_Fault" + }, + "alarms": [ + { + "setpointA": 1.0, + "name": "CommunicationFaulted", + "priority": "High" + } + ], + "name": "Communication_Fault", + "tagType": "AtomicTag" + } + ] + } + ] + } + ] + }, + { + "name": "HUB", + "tagType": "Folder", + "tags": [ + { + "name": "HUB1", + "typeId": "Field_Devices", + "tagType": "UdtInstance", + "tags": [ + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "opcItemPath": { + "bindType": "parameter", + "binding": "ns\u003d1;s\u003d[PLC]{InstanceName}.HMI.Alarm.Communication_Fault" + }, + "alarms": [ + { + "setpointA": 1.0, + "name": "CommunicationFaulted", + "priority": "High" + } + ], + "name": "Communication_Fault", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "STATE", + "tagType": "AtomicTag" + } + ] + } + ] + } + ] + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "wbsckt_logging", + "value": false, + "tagType": "AtomicTag" + }, + { + "name": "Chute", + "tagType": "Folder", + "tags": [ + { + "name": "Chute_4", + "typeId": "Chute", + "tagType": "UdtInstance", + "tags": [ + { + "name": "Enable_Chute_Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "name": "Jam", + "tagType": "AtomicTag" + }, + { + "name": "PKGREL_PB_Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Half_Full", + "tagType": "AtomicTag" + }, + { + "name": "Disabled", + "tagType": "AtomicTag" + }, + { + "name": "Full", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "STATE", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "Chute_2", + "typeId": "Chute", + "tagType": "UdtInstance", + "tags": [ + { + "name": "Enable_Chute_Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "name": "Full", + "tagType": "AtomicTag" + }, + { + "name": "Half_Full", + "tagType": "AtomicTag" + }, + { + "name": "Disabled", + "tagType": "AtomicTag" + }, + { + "name": "PKGREL_PB_Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Jam", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "STATE", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "Chute_1", + "typeId": "Chute", + "tagType": "UdtInstance", + "tags": [ + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "name": "PKGREL_PB_Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Disabled", + "tagType": "AtomicTag" + }, + { + "name": "Full", + "tagType": "AtomicTag" + }, + { + "name": "Half_Full", + "tagType": "AtomicTag" + }, + { + "name": "Jam", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "STATE", + "tagType": "AtomicTag" + }, + { + "name": "Enable_Chute_Pressed", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "Chute_3", + "typeId": "Chute", + "tagType": "UdtInstance", + "tags": [ + { + "name": "Alarm", + "tagType": "Folder", + "tags": [ + { + "name": "Disabled", + "tagType": "AtomicTag" + }, + { + "name": "PKGREL_PB_Pressed", + "tagType": "AtomicTag" + }, + { + "name": "Full", + "tagType": "AtomicTag" + }, + { + "name": "Half_Full", + "tagType": "AtomicTag" + }, + { + "name": "Jam", + "tagType": "AtomicTag" + } + ] + }, + { + "name": "Enable_Chute_Pressed", + "tagType": "AtomicTag" + }, + { + "name": "STATE", + "tagType": "AtomicTag" + } + ] + } + ] + }, + { + "valueSource": "memory", + "dataType": "Boolean", + "name": "close_socket", + "value": true, + "tagType": "AtomicTag" + }, + { + "valueSource": "memory", + "dataType": "DateTime", + "name": "wbsckt_heartbeat_interval", + "value": 1750156237601, + "tagType": "AtomicTag" + } + ] + } + ] +} \ No newline at end of file