diff --git a/CNO8_SCADA/com.inductiveautomation.perspective/page-config/config.json b/CNO8_SCADA/com.inductiveautomation.perspective/page-config/config.json index 148d746..4da6caa 100644 --- a/CNO8_SCADA/com.inductiveautomation.perspective/page-config/config.json +++ b/CNO8_SCADA/com.inductiveautomation.perspective/page-config/config.json @@ -55,6 +55,10 @@ "title": "", "viewPath": "Alarm-Views/RealTime" }, + "/Sorter-Management": { + "title": "", + "viewPath": "Additional-Home-View/SorterManagement" + }, "/Temperature": { "title": "", "viewPath": "Main-Views/TempMonitoring" @@ -260,6 +264,20 @@ "size": 400, "viewParams": {}, "viewPath": "PopUp-Views/Controller-Equipment/Information-Docked-East-Chute-EN" + }, + { + "anchor": "fixed", + "autoBreakpoint": 480, + "content": "cover", + "handle": "hide", + "iconUrl": "", + "id": "Docked-East-IND", + "modal": false, + "resizable": false, + "show": "onDemand", + "size": 400, + "viewParams": {}, + "viewPath": "PopUp-Views/Controller-Equipment/Information-Docked-East-Induction" } ], "top": [ diff --git a/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/Overview/view.json b/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/Overview/view.json index bfb44f9..30adba5 100644 --- a/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/Overview/view.json +++ b/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/Overview/view.json @@ -41710,6 +41710,29 @@ } }, "type": "ia.display.view" + }, + { + "meta": { + "name": "MCM02_Button_0" + }, + "position": { + "height": 0.0417, + "rotate": { + "anchor": "231% 721%" + }, + "width": 0.1078, + "x": 0.3254, + "y": 0.648 + }, + "props": { + "params": { + "pageid": "Sorter-Management", + "panel_id": "value", + "text": "Sorter Management" + }, + "path": "Symbol-Views/Equipment-Views/Area_Nav_Button" + }, + "type": "ia.display.view" } ], "custom": { diff --git a/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/SorterManagement/resource.json b/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/SorterManagement/resource.json new file mode 100644 index 0000000..39488ae --- /dev/null +++ b/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/SorterManagement/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-10-16T20:23:21Z" + }, + "lastModificationSignature": "cbfd2ad82d0ddf94bee74d28e58b15ad06c7e2f184962d51734913e050d5a1fa" + } +} \ No newline at end of file diff --git a/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/SorterManagement/thumbnail.png b/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/SorterManagement/thumbnail.png new file mode 100644 index 0000000..738757a Binary files /dev/null and b/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/SorterManagement/thumbnail.png differ diff --git a/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/SorterManagement/view.json b/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/SorterManagement/view.json new file mode 100644 index 0000000..824718c --- /dev/null +++ b/CNO8_SCADA/com.inductiveautomation.perspective/views/Additional-Home-View/SorterManagement/view.json @@ -0,0 +1,953 @@ +{ + "custom": {}, + "params": {}, + "props": { + "defaultSize": { + "height": 1080, + "width": 1920 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Sorter" + }, + "position": { + "height": 1, + "width": 1 + }, + "propConfig": { + "custom.animation": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]/System/SMC/Sorter" + }, + "transforms": [ + { + "code": "\tif value is None:\n\t\treturn \u0027#000000\u0027\n \n # Priority-based status determination (lower number \u003d higher priority)\n\tactive_status \u003d \u0027default\u0027\n \n # Check in priority order (highest to lowest)\n\tif value.get(\u0027Common_Error\u0027, False):\n\t\tactive_status \u003d \u0027common_error\u0027\n\telif value.get(\u0027Blocked\u0027, False):\n\t\tactive_status \u003d \u0027blocked\u0027\t\n\telif value.get(\u0027Test_Mode\u0027, False) or value.get(\u0027Discharge_Test_Mode\u0027, False) or value.get(\u0027Lamp_Test_Mode\u0027, False) or value.get(\u0027Carrier_Selected\u0027, False):\n\t\tactive_status \u003d \u0027test_mode\u0027\n\telif value.get(\u0027Running\u0027, False):\n\t\tactive_status \u003d \u0027running\u0027\n\telif value.get(\u0027Starting\u0027, False) or value.get(\u0027Stopping\u0027, False):\n\t\tactive_status \u003d \u0027transitional\u0027\n\telif value.get(\u0027Not_Synchronised\u0027, False):\n\t\tactive_status \u003d \u0027not_synchronised\u0027\n\telif value.get(\u0027Energy_Saving\u0027, False):\n\t\tactive_status \u003d \u0027energy_saving\u0027\n\telif value.get(\u0027Stopped\u0027, False) or value.get(\u0027Power_Off\u0027, False) or value.get(\u0027Disabled\u0027, False) or value.get(\u0027Sortation_Allowed\u0027, False):\n\t\tactive_status \u003d \u0027inactive\u0027\n \n\tcolor_map \u003d {\n \u0027common_error\u0027: \u0027#FF0000\u0027,\n\t\t \u0027blocked\u0027: \u0027#D900D9\u0027,\n \u0027test_mode\u0027: \u0027#0000FF\u0027,\n \u0027running\u0027: \u0027#00FF00\u0027,\n \u0027transitional\u0027: \u0027#90EE90\u0027,\n \u0027not_synchronised\u0027: \u0027#FF8C00\u0027,\n \u0027energy_saving\u0027: \u0027#87CEFA\u0027,\n \u0027inactive\u0027: \u0027#C2C2C2\u0027,\n \u0027default\u0027: \u0027#000000\u0027\n }\n \n\treturn color_map.get(active_status, \u0027#000000\u0027)", + "type": "script" + } + ], + "type": "tag" + } + }, + "props.elements[1].elements[0].fill.paint": { + "binding": { + "config": { + "path": "this.custom.animation" + }, + "type": "property" + } + }, + "props.elements[1].elements[1].fill.paint": { + "binding": { + "config": { + "path": "this.custom.animation" + }, + "type": "property" + } + }, + "props.elements[1].elements[2].fill.paint": { + "binding": { + "config": { + "path": "this.custom.animation" + }, + "type": "property" + } + }, + "props.elements[1].elements[3].fill.paint": { + "binding": { + "config": { + "path": "this.custom.animation" + }, + "type": "property" + } + }, + "props.elements[1].elements[4].fill.paint": { + "binding": { + "config": { + "path": "this.custom.animation" + }, + "type": "property" + } + }, + "props.elements[1].elements[5].fill.paint": { + "binding": { + "config": { + "path": "this.custom.animation" + }, + "type": "property" + } + }, + "props.elements[1].elements[6].fill.paint": { + "binding": { + "config": { + "path": "this.custom.animation" + }, + "type": "property" + } + }, + "props.elements[1].elements[7].fill.paint": { + "binding": { + "config": { + "path": "this.custom.animation" + }, + "type": "property" + } + }, + "props.elements[1].elements[8].fill.paint": { + "binding": { + "config": { + "path": "this.custom.animation" + }, + "type": "property" + } + }, + "props.elements[1].elements[9].fill.paint": { + "binding": { + "config": { + "path": "this.custom.animation" + }, + "type": "property" + } + } + }, + "props": { + "elements": [ + { + "id": "defs1", + "name": "defs1", + "type": "defs" + }, + { + "elements": [ + { + "d": "m 1857.5613,639.69126 h 5.4397 c 0,0 1.2164,29.91999 -15.6138,43.99089 -10.2537,8.57269 -21.7868,8.90116 -21.7868,8.90116 v -8.04169 c 0,0 17.4673,-1.93137 24.3279,-17.11726 6.8599,-15.18603 5.0151,-27.7331 5.0151,-27.7331 z", + "fill": {}, + "id": "path1-9-5", + "name": "path1-9-5", + "stroke": { + "dasharray": "none", + "paint": "#000000", + "width": "1" + }, + "type": "path" + }, + { + "d": "m 1854.3984,440.56398 h 8.0659 c 0,0 -1.4088,-29.91998 -18.2386,-43.99089 -10.2547,-8.57274 -21.7092,-8.72539 -21.7092,-8.72539 l 0.2316,7.53385 c 0,0 17.1539,2.26349 24.0148,17.44937 6.8593,15.1859 7.6385,27.73306 7.6385,27.73306 z", + "fill": {}, + "id": "path1-9", + "name": "path1-9", + "stroke": { + "dasharray": "none", + "paint": "#000000", + "width": "1" + }, + "type": "path" + }, + { + "d": "m 82.860959,640.6087 -7.899833,0.0531 c 0,0 -0.211704,26.51853 15.808346,41.50488 10.640248,9.95386 23.532028,10.27225 23.532028,10.27225 l 0.0305,-7.7024 c 0,0 -18.409508,-0.87952 -25.545973,-19.54576 -6.715576,-17.56555 -5.662038,-23.24949 -5.926625,-24.58422 z", + "fill": {}, + "id": "path1-7", + "name": "path1-7", + "stroke": { + "dasharray": "none", + "paint": "#000000", + "width": "1" + }, + "type": "path" + }, + { + "fill": {}, + "height": "194.57672", + "id": "rect1-7", + "name": "rect1-7", + "stroke": { + "dasharray": "none", + "paint": "#000000", + "width": "0.99775" + }, + "type": "rect", + "width": "7.9402342", + "x": "1855.0876", + "y": "442.88269" + }, + { + "fill": {}, + "height": "1706.9486", + "id": "rect1-8-5-1", + "name": "rect1-8-5-1", + "stroke": { + "dasharray": "none", + "paint": "#000000", + "width": "0.999754" + }, + "transform": "rotate(90)", + "type": "rect", + "width": "8.1251793", + "x": "684.62714", + "y": "-1823.3779" + }, + { + "fill": {}, + "height": "1336.1741", + "id": "rect1-8-5", + "name": "rect1-8-5", + "stroke": { + "dasharray": "none", + "paint": "#000000", + "width": "1" + }, + "transform": "rotate(90)", + "type": "rect", + "width": "7.8336754", + "x": "387.60034", + "y": "-1819.8773" + }, + { + "fill": {}, + "height": "313.17017", + "id": "rect1-8", + "name": "rect1-8", + "stroke": { + "dasharray": "none", + "paint": "#000000", + "width": "0.999269" + }, + "transform": "rotate(90)", + "type": "rect", + "width": "7.938838", + "x": "406.01526", + "y": "-429.93036" + }, + { + "fill": {}, + "height": "170.06448", + "id": "rect1", + "name": "rect1", + "stroke": { + "dasharray": "none", + "paint": "#000000", + "width": "0.997075" + }, + "type": "rect", + "width": "7.940949", + "x": "74.990303", + "y": "468.55899" + }, + { + "d": "m 82.978304,466.41562 h -8.06557 c 0,0 -0.137441,-35.41633 16.139819,-50.12292 9.977407,-9.01465 23.532077,-10.27224 23.532077,-10.27224 l -0.007,7.97579 c 0,0 -17.320918,0.99287 -24.457246,19.65904 -7.136409,18.66632 -7.142113,32.76033 -7.142113,32.76033 z", + "fill": {}, + "id": "path1", + "name": "path1", + "stroke": { + "dasharray": "none", + "paint": "#000000", + "width": "1" + }, + "type": "path" + }, + { + "d": "m 432.02067,405.99338 -0.007,7.98072 6.37897,0.0933 35.94372,-18.51849 6.65795,-0.0748 0.007,-8.04185 -6.82604,0.007 -35.79839,18.59082 z", + "fill": {}, + "id": "path2", + "name": "path2", + "stroke": { + "dasharray": "none", + "paint": "#000000", + "width": "0.987103" + }, + "type": "path" + } + ], + "id": "Layer 1", + "name": "Layer 1", + "type": "group" + }, + { + "id": "Layer 2", + "name": "Layer 2", + "type": "group" + } + ], + "preserveAspectRatio": "none", + "viewBox": "0 0 1920 1080" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "height": 0.0296, + "width": 0.176, + "x": 0.3915, + "y": 0.023 + }, + "props": { + "text": "Sorter Commands", + "textStyle": { + "fontSize": "2vmin", + "fontWeight": "bold", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Induction_8" + }, + "position": { + "height": 0.1241, + "width": 0.0599, + "x": 0.4346, + "y": 0.5098 + }, + "props": { + "params": { + "automatic": true, + "mirror": true, + "tagProps": [ + "System/SMC/Induction/Induction_8", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Equipment-Views/Induction" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Induction_6" + }, + "position": { + "height": 0.1241, + "width": 0.0599, + "x": 0.0817, + "y": 0.251 + }, + "props": { + "params": { + "automatic": true, + "mirror": false, + "tagProps": [ + "System/SMC/Induction/Induction_6", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Equipment-Views/Induction" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Induction_5" + }, + "position": { + "height": 0.1241, + "width": 0.0599, + "x": 0.1408, + "y": 0.2511 + }, + "props": { + "params": { + "automatic": true, + "mirror": false, + "tagProps": [ + "System/SMC/Induction/Induction_5", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Equipment-Views/Induction" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Induction_4" + }, + "position": { + "height": 0.1241, + "width": 0.0599, + "x": 0.197, + "y": 0.251 + }, + "props": { + "params": { + "automatic": true, + "mirror": false, + "tagProps": [ + "System/SMC/Induction/Induction_4", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Equipment-Views/Induction" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Induction_1" + }, + "position": { + "height": 0.1241, + "width": 0.0599, + "x": 0.8425, + "y": 0.2359 + }, + "props": { + "params": { + "automatic": true, + "mirror": false, + "tagProps": [ + "System/SMC/Induction/Induction_1", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Equipment-Views/Induction" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Induction_2" + }, + "position": { + "height": 0.0667, + "width": 0.0443, + "x": 0.7981, + "y": 0.2921 + }, + "props": { + "params": { + "automatic": false, + "mirror": true, + "tagProps": [ + "System/SMC/Induction/Induction_2", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Equipment-Views/Induction" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Induction_3" + }, + "position": { + "height": 0.0667, + "width": 0.0443, + "x": 0.7532, + "y": 0.2922 + }, + "props": { + "params": { + "automatic": false, + "mirror": true, + "tagProps": [ + "System/SMC/Induction/Induction_3", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Equipment-Views/Induction" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Induction_0" + }, + "position": { + "height": 0.1241, + "width": 0.0604, + "x": 0.9011, + "y": 0.2356 + }, + "props": { + "params": { + "automatic": true, + "mirror": false, + "tagProps": [ + "System/SMC/Induction/Induction_0", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Equipment-Views/Induction" + }, + "type": "ia.display.view" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": " provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n tag_path8 \u003d provider + \"System/SMC/Sorter/Commands/bNormal_stop\"\n system.tag.writeBlocking([tag_path8], [True])" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button_10" + }, + "position": { + "height": 0.019, + "width": 0.1394, + "x": 0.4031, + "y": 0.0926 + }, + "props": { + "style": { + "backgroundColor": "#3779AE", + "color": "#FAFAFA" + }, + "text": "NORMAL STOP" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": " provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n\ttag_path8 \u003d provider + \"System/SMC/Sorter/Commands/bEmpty_stop\"\n system.tag.writeBlocking([tag_path8], [True])" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button_11" + }, + "position": { + "height": 0.019, + "width": 0.1394, + "x": 0.4031, + "y": 0.1155 + }, + "props": { + "style": { + "backgroundColor": "#3779AE", + "color": "#FAFAFA" + }, + "text": "EMMPTY STOP" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": " provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n tag_path8 \u003d provider + \"System/SMC/Sorter/Commands/bUIs_Empty_stop\"\n system.tag.writeBlocking([tag_path8], [True])" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button_12" + }, + "position": { + "height": 0.019, + "width": 0.1394, + "x": 0.4031, + "y": 0.1384 + }, + "props": { + "style": { + "backgroundColor": "#3779AE", + "color": "#FAFAFA" + }, + "text": "UI EMPTY STOP" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": " provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n tag_path8 \u003d provider + \"System/SMC/Sorter/Commands/bEnable\"\n system.tag.writeBlocking([tag_path8], [True])" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button_13" + }, + "position": { + "height": 0.019, + "width": 0.1394, + "x": 0.4031, + "y": 0.1613 + }, + "props": { + "style": { + "backgroundColor": "#3779AE", + "color": "#FAFAFA" + }, + "text": "ENABLE" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": " provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n tag_path8 \u003d provider + \"System/SMC/Sorter/Commands/bDisable\"\n system.tag.writeBlocking([tag_path8], [True])" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button_14" + }, + "position": { + "height": 0.019, + "width": 0.1394, + "x": 0.4031, + "y": 0.1841 + }, + "props": { + "style": { + "backgroundColor": "#3779AE", + "color": "#FAFAFA" + }, + "text": "DISABLE" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": " provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n tag_path8 \u003d provider + \"System/SMC/Sorter/Commands/bBlock\"\n system.tag.writeBlocking([tag_path8], [True])" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button_15" + }, + "position": { + "height": 0.019, + "width": 0.1394, + "x": 0.4031, + "y": 0.2069 + }, + "props": { + "style": { + "backgroundColor": "#3779AE", + "color": "#FAFAFA" + }, + "text": "BLOCK" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": " provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n tag_path8 \u003d provider + \"System/SMC/Sorter/Commands/bUnblock\"\n system.tag.writeBlocking([tag_path8], [True])" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button_16" + }, + "position": { + "height": 0.019, + "width": 0.1394, + "x": 0.4031, + "y": 0.2299 + }, + "props": { + "style": { + "backgroundColor": "#3779AE", + "color": "#FAFAFA" + }, + "text": "UNBLOCK" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": " provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n tag_path8 \u003d provider + \"System/SMC/Sorter/Commands/bLamp_test_stop\"\n system.tag.writeBlocking([tag_path8], [True])" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button_17" + }, + "position": { + "height": 0.019, + "width": 0.1394, + "x": 0.4031, + "y": 0.2526 + }, + "props": { + "style": { + "backgroundColor": "#3779AE", + "color": "#FAFAFA" + }, + "text": "LAMP TEST STOP" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": " provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n tag_path8 \u003d provider + \"System/SMC/Sorter/Commands/bLamp_test_start\"\n system.tag.writeBlocking([tag_path8], [True])" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button_18" + }, + "position": { + "height": 0.019, + "width": 0.1394, + "x": 0.4031, + "y": 0.2755 + }, + "props": { + "style": { + "backgroundColor": "#3779AE", + "color": "#FAFAFA" + }, + "text": "LAMP TEST START" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": " provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n tag_path8 \u003d provider + \"System/SMC/Sorter/Commands/reset\"\n system.tag.writeBlocking([tag_path8], [True])" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button_19" + }, + "position": { + "height": 0.019, + "width": 0.1394, + "x": 0.4031, + "y": 0.2984 + }, + "props": { + "style": { + "backgroundColor": "#3779AE", + "color": "#FAFAFA" + }, + "text": "RESET" + }, + "type": "ia.input.button" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": " provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n tag_path8 \u003d provider + \"System/SMC/Sorter/Commands/bStart\"\n system.tag.writeBlocking([tag_path8], [True])" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button_20" + }, + "position": { + "height": 0.019, + "width": 0.1394, + "x": 0.4034, + "y": 0.0702 + }, + "props": { + "style": { + "backgroundColor": "#3779AE", + "color": "#FAFAFA" + }, + "text": "START" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "Induction_10" + }, + "position": { + "height": 0.0667, + "width": 0.0443, + "x": 0.5335, + "y": 0.5679 + }, + "props": { + "params": { + "automatic": false, + "mirror": false, + "tagProps": [ + "System/SMC/Induction/Induction_10", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Equipment-Views/Induction" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "Induction_9" + }, + "position": { + "height": 0.0667, + "width": 0.0443, + "x": 0.4882, + "y": 0.5668 + }, + "props": { + "params": { + "automatic": false, + "mirror": false, + "tagProps": [ + "System/SMC/Induction/Induction_9", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "Symbol-Views/Equipment-Views/Induction" + }, + "type": "ia.display.view" + } + ], + "meta": { + "name": "root" + }, + "props": { + "mode": "percent" + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/Induction/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/Induction/view.json index 990c512..9583530 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/Induction/view.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/Induction/view.json @@ -1,6 +1,8 @@ { "custom": {}, "params": { + "automatic": true, + "mirror": true, "tagProps": [ "System/MCM03/PDP3_PMM", "value", @@ -15,6 +17,14 @@ ] }, "propConfig": { + "params.automatic": { + "paramDirection": "input", + "persistent": true + }, + "params.mirror": { + "paramDirection": "input", + "persistent": true + }, "params.tagProps": { "paramDirection": "input", "persistent": true @@ -22,56 +32,205 @@ }, "props": { "defaultSize": { - "height": 199, - "width": 136 + "height": 96, + "width": 120 } }, "root": { "children": [ { "meta": { - "name": "FlexContainer" + "name": "Automatic" }, "position": { - "basis": "200px", + "basis": "300px", "grow": 1 }, "propConfig": { - "props.style.backgroundColor": { + "position.display": { "binding": { "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/" + "path": "view.params.automatic" + }, + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint": { + "binding": { + "config": { + "path": "parent.custom.color" + }, + "type": "property" + } + }, + "props.style.transform": { + "binding": { + "config": { + "path": "view.params.mirror" }, "transforms": [ { - "code": "\tif value is None:\n\t\treturn \u0027#000000\u0027\n\t\t\n\tactive_status \u003d \u0027default\u0027\n\t\n\tif value.get(\u0027Common_Error\u0027, False):\n\t\tactive_status \u003d \u0027common_error\u0027\n\telif value.get(\u0027In_Test_Mode\u0027, False):\n\t\tactive_status \u003d \u0027test_mode\u0027\n\telif value.get(\u0027Running\u0027, False):\n\t\tactive_status \u003d \u0027running\u0027\n\telif value.get(\u0027Starting\u0027, False) or value.get(\u0027Stopping\u0027, False):\n\t\tactive_status \u003d \u0027transitional\u0027\n\telif value.get(\u0027Energy_Saving\u0027, False):\n\t\tactive_status \u003d \u0027energy_saving\u0027\n\telif value.get(\u0027Stopped\u0027, False) or value.get(\u0027Disabled\u0027, False):\n\t\tactive_status \u003d \u0027inactive\u0027\n\telif value.get(\u0027Blocked\u0027, False):\n\t\tactive_status \u003d \u0027blocked\u0027\n\n\tcolor_map \u003d {\n\t\t\u0027common_error\u0027: \u0027#FF0000\u0027,\n\t\t\u0027test_mode\u0027: \u0027#964B00\u0027, \n\t\t\u0027running\u0027: \u0027#00FF00\u0027,\n\t\t\u0027transitional\u0027: \u0027#CCFFCC\u0027,\n\t\t\u0027energy_saving\u0027: \u0027#87CEFA\u0027,\n\t\t\u0027inactive\u0027: \u0027#D3D3D3\u0027,\n\t\t\u0027blocked\u0027: \u0027#d900d9\u0027,\n\t\t\u0027default\u0027: \u0027#000000\u0027\n\t}\n\t\n\treturn color_map.get(active_status, \u0027#000000\u0027)", - "type": "script" + "fallback": "", + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "scaleX(-1)" + } + ], + "outputType": "scalar", + "type": "map" } ], - "type": "tag" + "type": "property" } } }, "props": { - "style": { - "borderStyle": "solid", - "borderWidth": 4 + "elements": [ + { + "id": "defs1", + "name": "defs1", + "type": "defs" + }, + { + "elements": [ + { + "d": "m 17.53533,96.331254 102.31253,-61.2732 -7.5838,-8.34842 -12.0722,7.65383 -0.5613,-33.33235 -10.9193,-0.12405002 0.048,39.93743002 -87.17235,55.47731 z", + "fill": {}, + "id": "path3-2-3-0", + "name": "path3-2-3-0", + "stroke": { + "dasharray": "none", + "paint": "#000000", + "width": "1" + }, + "type": "path" + } + ], + "id": "Layer 1", + "name": "Layer 1", + "type": "group" + }, + { + "id": "Layer 2", + "name": "Layer 2", + "type": "group" + } + ], + "preserveAspectRatio": "none", + "viewBox": "0 0 120 96" + }, + "type": "ia.shapes.svg" + }, + { + "meta": { + "name": "Semi_Automatic" + }, + "position": { + "basis": "300px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "path": "view.params.automatic" + }, + "transforms": [ + { + "fallback": false, + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": true + }, + { + "input": true, + "output": false + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + }, + "props.elements[1].elements[0].fill.paint": { + "binding": { + "config": { + "path": "parent.custom.color" + }, + "type": "property" + } + }, + "props.style.transform": { + "binding": { + "config": { + "path": "view.params.mirror" + }, + "transforms": [ + { + "fallback": "", + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "scaleX(-1)" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } } }, - "type": "ia.container.flex" + "props": { + "elements": [ + { + "id": "defs1", + "name": "defs1", + "type": "defs" + }, + { + "elements": [ + { + "d": "M 48.018376,40.643518 1.0048462,10.251908 4.2029462,0.62076772 69.527176,40.622498 Z", + "fill": {}, + "id": "path3-2-2-0", + "name": "path3-2-2-0", + "stroke": { + "dasharray": "none", + "paint": "#000000", + "width": "1" + }, + "type": "path" + } + ], + "id": "Layer 1", + "name": "Layer 1", + "type": "group" + }, + { + "id": "Layer 2", + "name": "Layer 2", + "type": "group" + } + ], + "preserveAspectRatio": "none", + "viewBox": "0 0 70 41" + }, + "type": "ia.shapes.svg" } ], "events": { "dom": { "onClick": { "config": { - "script": "\t\tsystem.perspective.openDock(\u0027Docked-East-IND\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + "script": "\tsystem.perspective.openDock(\u0027Docked-East-IND\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" @@ -81,6 +240,28 @@ "meta": { "name": "root" }, + "propConfig": { + "custom.color": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "0": "{view.params.tagProps[0]}", + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_PARENT_PROJECT]{0}" + }, + "transforms": [ + { + "code": "\tif value is None:\n\t\treturn \u0027#000000\u0027\n\t\t\n\tactive_status \u003d \u0027default\u0027\n\t\n\tif value.get(\u0027Common_Error\u0027, False):\n\t\tactive_status \u003d \u0027common_error\u0027\n\telif value.get(\u0027In_Test_Mode\u0027, False):\n\t\tactive_status \u003d \u0027test_mode\u0027\n\telif value.get(\u0027Running\u0027, False):\n\t\tactive_status \u003d \u0027running\u0027\n\telif value.get(\u0027Starting\u0027, False) or value.get(\u0027Stopping\u0027, False):\n\t\tactive_status \u003d \u0027transitional\u0027\n\telif value.get(\u0027Energy_Saving\u0027, False):\n\t\tactive_status \u003d \u0027energy_saving\u0027\n\telif value.get(\u0027Stopped\u0027, False) or value.get(\u0027Disabled\u0027, False):\n\t\tactive_status \u003d \u0027inactive\u0027\n\telif value.get(\u0027Blocked\u0027, False):\n\t\tactive_status \u003d \u0027blocked\u0027\n\n\tcolor_map \u003d {\n\t\t\u0027common_error\u0027: \u0027#FF0000\u0027,\n\t\t\u0027test_mode\u0027: \u0027#964B00\u0027, \n\t\t\u0027running\u0027: \u0027#00FF00\u0027,\n\t\t\u0027transitional\u0027: \u0027#CCFFCC\u0027,\n\t\t\u0027energy_saving\u0027: \u0027#87CEFA\u0027,\n\t\t\u0027inactive\u0027: \u0027#D3D3D3\u0027,\n\t\t\u0027blocked\u0027: \u0027#d900d9\u0027,\n\t\t\u0027default\u0027: \u0027#000000\u0027\n\t}\n\t\n\treturn color_map.get(active_status, \u0027#000000\u0027)", + "type": "script" + } + ], + "type": "tag" + } + } + }, "props": { "direction": "column" },