{ "custom": { "PLC": "MCM01", "color": "#C2C2C2", "showTags": true, "state": "Offline" }, "params": { "devices": [], "tagProps": [ "System/MCM01/VFD/PS3_1_VFD1", "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.color": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "indirect", "references": { "0": "{view.params.tagProps[0]}", "fc": "{session.custom.fc}" }, "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Color" }, "transforms": [ { "expression": "coalesce({value},{view.params.forceFaultStatus},0)", "type": "expression" }, { "fallback": "#000000", "inputType": "scalar", "mappings": [ { "input": 0, "output": "#C2C2C2" }, { "input": 1, "output": "#FF0000" }, { "input": 2, "output": "#FFA500" }, { "input": 3, "output": "#0008FF" }, { "input": 4, "output": "#00FF00" }, { "input": 5, "output": "#FFF700" }, { "input": 6, "output": "#87CEEB" }, { "input": 7, "output": "#90EE90" }, { "input": 8, "output": "#964B00" }, { "input": 9, "output": "#FFFFFF" }, { "input": 10, "output": "#000000" }, { "input": 11, "output": "#8B0000" }, { "input": 12, "output": "#808080" }, { "input": 13, "output": "#8B8000" }, { "input": 14, "output": "#006400" }, { "input": 15, "output": "#FFFFC5" }, { "input": 16, "output": "#00008B" }, { "input": 17, "output": "#FF7276" }, { "input": 18, "output": "#556B2F" }, { "input": 19, "output": "#B43434" }, { "input": 20, "output": "#4682B4" }, { "input": 21, "output": "#FFD700" } ], "outputType": "color", "type": "map" } ], "type": "tag" }, "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": { "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},-1)", "type": "expression" }, { "fallback": "Offline", "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" } ], "outputType": "scalar", "type": "map" } ], "type": "tag" }, "persistent": true }, "params.devices": { "paramDirection": "input", "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-Conv\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": "Header" }, "position": { "basis": "30px", "shrink": 0 }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "32px", "display": false }, "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.conditions.displayPath": { "binding": { "config": { "path": "view.params.tagProps[0]" }, "transforms": [ { "code": "\treturn value.split(\"/\")[-1]", "type": "script" } ], "type": "property" } } }, "props": { "columns": { "active": { "displayPath": { "enabled": false }, "priority": { "enabled": false }, "source": { "enabled": false }, "state": { "enabled": false } } }, "enableAcknowledge": false, "enableDetails": false, "enableShelve": false, "enableUnshelve": false, "filters": { "active": { "conditions": {}, "priorities": { "critical": false, "high": false, "low": false, "medium": false }, "states": { "clearUnacked": false } } }, "pager": { "enabled": false }, "refreshRate": 500, "rowStyles": { "activeAcked": { "priorities": { "diagnostic": { "backgroundColor": "#579af1" }, "high": { "backgroundColor": "#fb615b" }, "low": { "backgroundColor": "#f8fa6e" }, "medium": { "backgroundColor": "#ee9b5c" } } }, "activeUnacked": { "base": { "color": "black" }, "priorities": { "critical": { "backgroundColor": "#7C2320" }, "diagnostic": { "backgroundColor": "#579af1" }, "high": { "backgroundColor": "#fb615b" }, "low": { "backgroundColor": "#f8fa6e" }, "medium": { "backgroundColor": "#ee9b5c" } } } }, "selection": { "active": { "mode": "none" }, "shelved": { "mode": "none" } }, "toolbar": { "enableActiveTab": false, "enableConfiguration": false, "enableFilter": false, "enableFilterResults": false, "enablePreFilters": false, "enableShelvedTab": false, "enabled": false } }, "type": "ia.display.alarmstatustable" } ], "meta": { "name": "Active_tab" }, "props": { "direction": "column", "justify": "space-around" }, "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": "\timport re\n\t\n\tname \u003d value.rsplit(\u0027/\u0027, 1)[-1]\n\t# Remove any trailing part that starts with _VFD (case-insensitive)\n\treturn re.sub(r\u0027_VFD.*$\u0027, \u0027\u0027, name, flags\u003dre.IGNORECASE)", "type": "script" } ], "type": "property" } } }, "props": { "style": { "backgroundColor": "#FFFFFF", "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": "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": "STATE" }, "type": "ia.display.label" }, { "meta": { "name": "State" }, "position": { "basis": "50%", "grow": 1 }, "propConfig": { "props.text": { "binding": { "config": { "expression": "{view.custom.state}" }, "type": "expr" } } }, "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", "overflow": "hidden" } }, "type": "ia.container.flex" } ], "meta": { "name": "State" }, "position": { "basis": "35px" }, "props": { "direction": "column", "style": { "overflow": "hidden" } }, "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": "FPM" }, "position": { "basis": "50%", "grow": 1 }, "propConfig": { "props.text": { "binding": { "config": { "path": "view.custom.PLC" }, "type": "property" } } }, "props": { "style": { "backgroundColor": "#FFFFFF", "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": "Panel" }, "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.devices" }, "type": "property" } } }, "props": { "columns": [ { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "Device", "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": "Device" }, "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": 210 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "Status", "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": "Status" }, "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": 380 } ], "pager": { "bottom": false }, "selection": { "enableRowSelection": false }, "virtualized": false }, "type": "ia.display.table" } ], "meta": { "name": "Devices_tab" }, "position": { "tabIndex": 2 }, "props": { "alignItems": "flex-start", "justify": "space-evenly" }, "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": "", "fontSize": "0.9vmin", "whiteSpace": "normal", "wordBreak": "break-all" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 180 }, { "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": "", "fontSize": "0.9vmin", "whiteSpace": "normal", "wordBreak": "break-all" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 310 }, { "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": "", "fontSize": "0.9vmin" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": "" } ], "pager": { "bottom": false }, "rows": { "height": 45, "style": { "fontSize": "1vmin", "wordBreak": "break-all" } }, "selection": { "enableRowSelection": false }, "virtualized": false }, "type": "ia.display.table" } ], "meta": { "name": "Tags_tab" }, "position": { "tabIndex": 3 }, "props": { "alignItems": "flex-start", "justify": "space-evenly" }, "type": "ia.container.flex" } ], "meta": { "name": "tabs" }, "position": { "grow": 1 }, "props": { "currentTabIndex": 3, "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", "Devices", "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" } }