diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/view.json index f36d3ec..cd23af6 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/view.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/view.json @@ -1,13 +1,21 @@ { "custom": { - "PLC_list": null, + "PLC_list": [ + "MCM01", + "MCM02", + "MCM03", + "MCM04", + "MCM05", + "MCM06", + "MCM07" + ], "running_state": -1, - "state": 0, + "state": null, "views_data": [] }, "params": { "tagProps": [ - "System/MCM01/Conveyor/UL1_3_VFD1", + "System/Conveyor/APF/FL1038_2_VFD1", "value", "value", "value", @@ -378,9 +386,9 @@ }, "props": { "style": { - "paddingLeft": 100 + "paddingLeft": 20 }, - "text": "Name" + "text": "NAME" }, "type": "ia.display.label" }, @@ -458,9 +466,9 @@ }, "props": { "style": { - "paddingLeft": 100 + "paddingLeft": 20 }, - "text": "State" + "text": "STATE" }, "type": "ia.display.label" }, @@ -473,10 +481,32 @@ "grow": 1 }, "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "this.props.text" + }, + "transforms": [ + { + "fallback": "#D5D5D5", + "inputType": "scalar", + "mappings": [ + { + "input": "FULL", + "output": "#FFFFFF" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + }, "props.text": { "binding": { "config": { - "expression": "case({..../State.custom.state},\r\n0, \"Off(Inactive)\",\r\n1, \"Enabled, Not Running\",\r\n2, \"Running\",\r\n3, \"Energy Management\",\r\n4, \"Jammed\",\r\n5, \"Full\",\r\n6, \"Maintenance Mode / Conveyor Stopped In Maintenance Mode\",\r\n7, \"Communication Fault\",\r\n8, \"VFD Fault\",\r\n9, \"E-Stop\",\r\n13,\"Encoder_Fault\",\r\n14,\"Stopped\",\r\n61,\"Conveyor Running in Maintenance Mode\",\r\n\"Unknown\")" + "expression": "case({..../State.custom.state},\r\n0, \"Off(Inactive)\",\r\n1, \"Enabled, Not Running\",\r\n2, \"Running\",\r\n3, \"Energy Management\",\r\n4, \"Jammed\",\r\n5, \"Full\",\r\n6, \"Maintenance Mode / Conveyor Stopped In Maintenance Mode\",\r\n7, \"Communication Fault\",\r\n8, \"VFD Fault\",\r\n9, \"E-Stop\",\r\n13,\"Encoder_Fault\",\r\n14,\"Stopped\",\r\n61,\"Conveyor Running in Maintenance Mode\",\r\n\"UNKNOWN\")" }, "type": "expr" } @@ -492,7 +522,6 @@ }, "props": { "style": { - "backgroundColor": "#FFFFFF", "classes": "Text-Styles/Ariel-Bold-12pt", "paddingLeft": 10 } @@ -562,7 +591,7 @@ }, "props": { "style": { - "paddingLeft": 100 + "paddingLeft": 20 }, "text": "FPM" }, @@ -577,6 +606,28 @@ "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": { @@ -590,7 +641,7 @@ }, "transforms": [ { - "expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027Unknown\u0027) \u003d \u0027Unknown\u0027, \u0027Unknown\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" FPM\")", + "expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027) \u003d \u0027UNKNOWN\u0027, \u0027UNKNOWN\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" FPM\")", "type": "expression" } ], @@ -600,7 +651,6 @@ }, "props": { "style": { - "backgroundColor": "#FFFFFF", "classes": "Text-Styles/Ariel-Bold-12pt", "paddingLeft": 10 } @@ -660,20 +710,20 @@ }, "transforms": [ { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027Unknown (Freq/Velocity\u0027)", + "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN (FREQ/VELOCITY)\u0027)", "type": "expression" }, { - "fallback": "Unknown (Freq/Velocity", + "fallback": "UNKNOWN (FREQ/VELOCITY)", "inputType": "scalar", "mappings": [ { "input": 1, - "output": "Velocity" + "output": "VELOCITY" }, { "input": 0, - "output": "Frequency" + "output": "FREQUENCY" } ], "outputType": "scalar", @@ -686,7 +736,7 @@ }, "props": { "style": { - "paddingLeft": 100 + "paddingLeft": 20 } }, "type": "ia.display.label" @@ -700,6 +750,28 @@ "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": { @@ -713,7 +785,7 @@ }, "transforms": [ { - "code": "\n 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", + "code": "\n 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" } ], @@ -723,7 +795,6 @@ }, "props": { "style": { - "backgroundColor": "#FFFFFF", "classes": "Text-Styles/Ariel-Bold-12pt", "paddingLeft": 10 } @@ -771,9 +842,9 @@ }, "props": { "style": { - "paddingLeft": 100 + "paddingLeft": 20 }, - "text": "Amperage" + "text": "AMPERAGE" }, "type": "ia.display.label" }, @@ -786,6 +857,28 @@ "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": { @@ -799,7 +892,7 @@ }, "transforms": [ { - "expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027Unknown\u0027) \u003d \u0027Unknown\u0027, \u0027Unknown\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" A\")", + "expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027) \u003d \u0027UNKNOWN\u0027, \u0027UNKNOWN\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" A\")", "type": "expression" } ], @@ -809,7 +902,6 @@ }, "props": { "style": { - "backgroundColor": "#FFFFFF", "classes": "Text-Styles/Ariel-Bold-12pt", "paddingLeft": 10 } @@ -857,9 +949,9 @@ }, "props": { "style": { - "paddingLeft": 100 + "paddingLeft": 20 }, - "text": "Voltage" + "text": "VOLTAGE" }, "type": "ia.display.label" }, @@ -872,6 +964,28 @@ "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": { @@ -885,7 +999,7 @@ }, "transforms": [ { - "expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027Unknown\u0027) \u003d \u0027Unknown\u0027, \u0027Unknown\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" V\")", + "expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027) \u003d \u0027UNKNOWN\u0027, \u0027UNKNOWN\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" V\")", "type": "expression" } ], @@ -895,7 +1009,6 @@ }, "props": { "style": { - "backgroundColor": "#FFFFFF", "classes": "Text-Styles/Ariel-Bold-12pt", "paddingLeft": 10 } @@ -943,9 +1056,9 @@ }, "props": { "style": { - "paddingLeft": 35 + "paddingLeft": 20 }, - "text": "Communication Fault Code" + "text": "COMMUNICATION FAULT CODE" }, "type": "ia.display.label" }, @@ -958,6 +1071,28 @@ "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": { @@ -971,7 +1106,7 @@ }, "transforms": [ { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027Unknown\u0027)", + "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", "type": "expression" } ], @@ -981,7 +1116,6 @@ }, "props": { "style": { - "backgroundColor": "#FFFFFF", "classes": "Text-Styles/Ariel-Bold-12pt", "paddingLeft": 10 } @@ -1029,9 +1163,9 @@ }, "props": { "style": { - "paddingLeft": 80 + "paddingLeft": 20 }, - "text": "VFD Fault Code" + "text": "VFD FAULT CODE" }, "type": "ia.display.label" }, @@ -1044,6 +1178,28 @@ "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": { @@ -1057,7 +1213,7 @@ }, "transforms": [ { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027Unknown\u0027)", + "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", "type": "expression" } ], @@ -1067,7 +1223,6 @@ }, "props": { "style": { - "backgroundColor": "#FFFFFF", "classes": "Text-Styles/Ariel-Bold-12pt", "paddingLeft": 10 } @@ -1115,9 +1270,9 @@ }, "props": { "style": { - "paddingLeft": 70 + "paddingLeft": 20 }, - "text": "Last VFD Fault Code" + "text": "LAST VFD FAULT CODE" }, "type": "ia.display.label" }, @@ -1130,6 +1285,28 @@ "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": { @@ -1143,7 +1320,7 @@ }, "transforms": [ { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027Unknown\u0027)", + "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", "type": "expression" } ], @@ -1153,7 +1330,6 @@ }, "props": { "style": { - "backgroundColor": "#FFFFFF", "classes": "Text-Styles/Ariel-Bold-12pt", "paddingLeft": 10 } @@ -1247,11 +1423,11 @@ }, "transforms": [ { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027Unknown (60hz/30rev\u0027)", + "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN (60hz/30rev)\u0027)", "type": "expression" }, { - "fallback": "Unknown (60hz/30rev", + "fallback": "Unknown (60hz/30rev)", "inputType": "scalar", "mappings": [ { @@ -1323,6 +1499,10 @@ { "code": "\n 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 \n\n if value \u003d\u003d 1:\n child \u003d \"Speed_At_30rev\"\n else:\n child \u003d \"Speed_At_60Hz\"\n\n fullPath \u003d basePath + \"/\" + child\n tagValue \u003d system.tag.readBlocking([fullPath])[0]\n result \u003d tagValue.value\n\t\n \n return result", "type": "script" + }, + { + "expression": "coalesce({value},{view.params.forceFaultStatus},0)", + "type": "expression" } ], "type": "tag" @@ -1419,6 +1599,12 @@ }, "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Cycle_Time_Factor" }, + "transforms": [ + { + "expression": "coalesce({value},{view.params.forceFaultStatus},0)", + "type": "expression" + } + ], "type": "tag" } } @@ -1552,7 +1738,7 @@ "mappings": [ { "input": false, - "output": "Active Maintenance Mode" + "output": "Activate Maintenance Mode" }, { "input": true, @@ -1598,7 +1784,7 @@ "component": { "onActionPerformed": { "config": { - "script": " \tpropMaintMode \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Maintenance/Speed_FPM\"\n\tvalue \u003d self.props.value\n\tsystem.tag.writeAsync([propMaintMode], [value])" + "script": "\tpropMaintMode \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+ self.view.params.tagProps[0] + \"/Maintenance/Speed_FPM\"\n\tvalue \u003d self.props.value\n\tsystem.tag.writeAsync([propMaintMode], [value])" }, "scope": "G", "type": "script" @@ -1615,15 +1801,26 @@ "props.enabled": { "binding": { "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "0": "{view.params.tagProps[0]}", + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Maintenance/Maintenance_Mode" }, - "type": "expr" + "transforms": [ + { + "expression": "if(\r\n indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || \r\n indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0,\r\n {value},\r\n false\r\n)\r\n", + "type": "expression" + } + ], + "type": "tag" } }, "props.value": { "binding": { "config": { - "bidirectional": true, "fallbackDelay": 2.5, "mode": "indirect", "references": { @@ -1632,6 +1829,12 @@ }, "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Maintenance/Speed_FPM" }, + "transforms": [ + { + "expression": "coalesce({value},{view.params.forceFaultStatus},0)", + "type": "expression" + } + ], "type": "tag" } } @@ -1699,14 +1902,52 @@ ], "type": "tag" } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#7DB17D\",\r\n if(\r\n {this.props.text} \u003d \"START PRESSED\",\r\n \"#009400\",\r\n if(\r\n {this.props.text} \u003d \"START\",\r\n \"#00D900\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n" + }, + "type": "expr" + } + }, + "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}/Maintenance/Start_PB_Pressed" + }, + "transforms": [ + { + "expression": "coalesce({value},{view.params.forceFaultStatus},0)", + "type": "expression" + }, + { + "fallback": "START", + "inputType": "scalar", + "mappings": [ + { + "input": 1, + "output": "START PRESSED" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } } }, "props": { "style": { - "backgroundColor": "#2EDF43", "marginBottom": 10 - }, - "text": "Start" + } }, "type": "ia.input.button" }, @@ -1749,14 +1990,52 @@ ], "type": "tag" } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#BB5050\",\r\n if(\r\n {this.props.text} \u003d \"STOP PRESSED\",\r\n \"#FF9191\",\r\n if(\r\n {this.props.text} \u003d \"STOP\",\r\n \"#FF0000\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n" + }, + "type": "expr" + } + }, + "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}/Maintenance/Stop_PB_Pressed" + }, + "transforms": [ + { + "expression": "coalesce({value},{view.params.forceFaultStatus},0)", + "type": "expression" + }, + { + "fallback": "STOP", + "inputType": "scalar", + "mappings": [ + { + "input": 1, + "output": "STOP PRESSED" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } } }, "props": { "style": { - "backgroundColor": "#E51A1A", "marginBottom": 10 - }, - "text": "Stop" + } }, "type": "ia.input.button" }, @@ -1806,14 +2085,52 @@ ], "type": "tag" } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#55A49B\",\r\n if(\r\n {this.props.text} \u003d \"JOG PRESSED\",\r\n \"#34B2A3\",\r\n if(\r\n {this.props.text} \u003d \"JOG\",\r\n \"#2ACCBA\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n" + }, + "type": "expr" + } + }, + "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}/Maintenance/Jog_PB_Pressed" + }, + "transforms": [ + { + "expression": "coalesce({value},{view.params.forceFaultStatus},0)", + "type": "expression" + }, + { + "fallback": "JOG", + "inputType": "scalar", + "mappings": [ + { + "input": 1, + "output": "JOG PRESSED" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } } }, "props": { "style": { - "backgroundColor": "#2ACCBA", "marginBottom": 10 - }, - "text": "Jog" + } }, "type": "ia.input.button" }, @@ -1857,6 +2174,14 @@ "type": "tag" } }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#7292B8\",\r\n if(\r\n {this.props.text} \u003d \"Direction Backward\",\r\n \"#0068F7\",\r\n if(\r\n {this.props.text} \u003d \"Direction Forward\",\r\n \"#3467AD\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n" + }, + "type": "expr" + } + }, "props.text": { "binding": { "config": { @@ -1874,13 +2199,9 @@ "type": "expression" }, { - "fallback": "Direction", + "fallback": "Direction Backward", "inputType": "scalar", "mappings": [ - { - "input": false, - "output": "Direction Backward" - }, { "input": true, "output": "Direction Forward" @@ -1896,7 +2217,6 @@ }, "props": { "style": { - "backgroundColor": "#0068F7", "marginBottom": 10 } }, @@ -1910,7 +2230,7 @@ "name": "FlexContainer" }, "position": { - "basis": "200px", + "basis": "500px", "grow": 1 }, "props": { @@ -1923,7 +2243,7 @@ "name": "Maintenance" }, "position": { - "basis": "200px", + "basis": "400px", "grow": 1 }, "props": {