modified the IO Block, removed FIO param, now it is dinamic. modified Camera view as well. Changes to the docked device view. now can be seen what device we clicked on

This commit is contained in:
Salijoghli 2025-09-15 18:01:20 +04:00
parent 41bd5912ef
commit f5a2577442
39 changed files with 1030 additions and 562 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1221,10 +1221,10 @@
"name": "UL15_1_TPE1" "name": "UL15_1_TPE1"
}, },
"position": { "position": {
"height": 0.0231, "height": 0.0185,
"width": 0.0255, "width": 0.0286,
"x": 0.0262, "x": 0.0257,
"y": 0.3945 "y": 0.3963
}, },
"props": { "props": {
"loading": { "loading": {
@ -1242,15 +1242,12 @@
"value", "value",
"value", "value",
"value" "value"
], ]
"width": "value"
}, },
"path": "autStand/Equipment/Photoeye_Tracking", "path": "autStand/Equipment/Photoeye_Tracking",
"style": { "style": {
"overflow": "hidden" "overflow": "hidden"
}, }
"useDefaultViewHeight": true,
"useDefaultViewWidth": true
}, },
"type": "ia.display.view" "type": "ia.display.view"
}, },
@ -1259,12 +1256,12 @@
"name": "UL15_2_TPE1" "name": "UL15_2_TPE1"
}, },
"position": { "position": {
"height": 0.021, "height": 0.0187,
"rotate": { "rotate": {
"angle": "60deg" "angle": "60deg"
}, },
"width": 0.0394, "width": 0.0286,
"x": 0.0336, "x": 0.04,
"y": 0.3397 "y": 0.3397
}, },
"props": { "props": {
@ -1553,9 +1550,7 @@
"path": "autStand/Equipment/Photoeye_Tracking", "path": "autStand/Equipment/Photoeye_Tracking",
"style": { "style": {
"overflow": "hidden" "overflow": "hidden"
}, }
"useDefaultViewHeight": true,
"useDefaultViewWidth": true
}, },
"type": "ia.display.view" "type": "ia.display.view"
}, },
@ -1569,7 +1564,7 @@
"angle": "90deg" "angle": "90deg"
}, },
"width": 0.0286, "width": 0.0286,
"x": 0.2997, "x": 0.2987,
"y": 0.2779 "y": 0.2779
}, },
"props": { "props": {
@ -1590,9 +1585,7 @@
"path": "autStand/Equipment/Photoeye_Tracking", "path": "autStand/Equipment/Photoeye_Tracking",
"style": { "style": {
"overflow": "hidden" "overflow": "hidden"
}, }
"useDefaultViewHeight": true,
"useDefaultViewWidth": true
}, },
"type": "ia.display.view" "type": "ia.display.view"
}, },

View File

@ -3,7 +3,8 @@
"PLC": "MCM01", "PLC": "MCM01",
"device": "UL14_1_SIO1", "device": "UL14_1_SIO1",
"showTags": true, "showTags": true,
"state": "Closed" "state": "Closed",
"view": "autStand/Equipment/IO_Block"
}, },
"params": { "params": {
"tagProps": [ "tagProps": [
@ -49,6 +50,10 @@
], ],
"type": "property" "type": "property"
}, },
"onChange": {
"enabled": null,
"script": "\tname \u003d self.view.custom.device\n\tdevice \u003d name.split(\"_\")[-1]\n\t\n\t# Use a list of tuples to maintain order - longer matches first\n\tdevice_mapping \u003d [\n\t # Encoder variations (check these first before \u0027EN\u0027)\n\t (\u0027ENSH\u0027, \u0027Encoder\u0027),\n\t (\u0027ENW\u0027, \u0027Encoder\u0027),\n\t \n\t # Photoeye variations\n\t (\u0027LRPE\u0027, \u0027Photoeye_Tracking\u0027),\n\t (\u0027TPE\u0027, \u0027Photoeye_Tracking\u0027),\n\t \n\t # IO_Block variations\n\t (\u0027SIO\u0027, \u0027IO_Block\u0027),\n\t (\u0027FIO\u0027, \u0027IO_Block\u0027),\n\t \n\t # Button variations (check after encoder)\n\t (\u0027EN\u0027, \u0027Button\u0027),\n\t (\u0027JR\u0027, \u0027Button\u0027),\n\t \n\t # Photoeye (shorter version after longer ones)\n\t (\u0027PE\u0027, \u0027Photoeye_Tracking\u0027),\n\t \n\t # Other devices variations \n\t (\u0027DPM\u0027, \u0027DPM\u0027),\n\t (\u0027EPC\u0027, \u0027EPC\u0027),\n\t (\u0027MCM\u0027, \u0027MCM\u0027),\n\t (\u0027PRX\u0027, \u0027ProxSensor\u0027),\n\t (\u0027SS\u0027, \u0027SS_Button\u0027),\n\t (\u0027SOL\u0027, \u0027Solenoid\u0027),\n\t \n\t # Beacon Variations (single letters last)\n\t (\u0027B\u0027, \u0027Beacon\u0027),\n\t (\u0027G\u0027, \u0027Beacon\u0027),\n\t (\u0027R\u0027, \u0027Beacon\u0027),\n\t (\u0027H\u0027, \u0027Beacon\u0027),\n\t (\u0027A\u0027, \u0027Beacon\u0027), \n\t]\n\t\n\tview \u003d \"\"\n\t\n\tfor key, value in device_mapping:\n\t if device.startswith(key):\n\t\t\tview \u003d value\n\t\t\tself.custom.view \u003d \"autStand/Equipment/\" + view\n\t\t\treturn \n\t\n\tself.custom.view \u003d \"autStand/Equipment/Camera\""
},
"persistent": true "persistent": true
}, },
"custom.showTags": { "custom.showTags": {
@ -293,6 +298,9 @@
}, },
"persistent": true "persistent": true
}, },
"custom.view": {
"persistent": true
},
"params.tagProps": { "params.tagProps": {
"paramDirection": "input", "paramDirection": "input",
"persistent": true "persistent": true
@ -832,11 +840,23 @@
"x": 37.33, "x": 37.33,
"y": 23 "y": 23
}, },
"props": { "propConfig": {
"params": { "props.params.tagProps": {
"name": "Red" "binding": {
"config": {
"path": "view.params.tagProps"
},
"type": "property"
}
}, },
"path": "autStand/Equipment/Beacon" "props.path": {
"binding": {
"config": {
"path": "view.custom.view"
},
"type": "property"
}
}
}, },
"type": "ia.display.view" "type": "ia.display.view"
}, },

View File

@ -2,7 +2,7 @@
"custom": { "custom": {
"PLC": "MCM01", "PLC": "MCM01",
"device": "UL15_1", "device": "UL15_1",
"maintance_mode": true, "maintance_mode": false,
"showTags": true, "showTags": true,
"state": "Actuated" "state": "Actuated"
}, },

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -1,357 +0,0 @@
{
"custom": {
"disconnected": false,
"priority": 0,
"state": 0,
"state_string": "Unknown"
},
"params": {
"tagProps": [
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value"
]
},
"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.priority": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"fallback": 0,
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": 4
},
{
"input": 2,
"output": 3
},
{
"input": 3,
"output": 2
},
{
"input": 4,
"output": 1
}
],
"outputType": "scalar",
"type": "map"
}
],
"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},0)",
"type": "expression"
}
],
"type": "tag"
},
"persistent": true
},
"custom.state_string": {
"binding": {
"config": {
"expression": "case({view.custom.state},\r\n1, \"Faulted\",\r\n2, \"Stopped\",\r\n3, \"Running\",\r\n\"Unknown\")"
},
"type": "expr"
},
"persistent": true
},
"params.tagProps": {
"paramDirection": "inout",
"persistent": true
}
},
"props": {
"defaultSize": {
"height": 100,
"width": 100
}
},
"root": {
"children": [
{
"meta": {
"name": "Camera"
},
"position": {
"height": 1,
"width": 1
},
"propConfig": {
"props.elements[1].elements[0].fill.paint": {
"binding": {
"config": {
"path": "view.custom.state"
},
"enabled": false,
"transforms": [
{
"expression": "if({session.custom.colours}[\"state\"+{value}] \u003d null, \r\n{session.custom.colours}[\"Fallback\"],\r\n{session.custom.colours}[\"state\"+{value}])",
"type": "expression"
},
{
"expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)",
"type": "expression"
}
],
"type": "property"
}
}
},
"props": {
"elements": [
{
"id": "defs963",
"name": "defs963",
"type": "defs"
},
{
"elements": [
{
"d": "M 108.69378,77.205299 A 30.372795,30.372799 0 0 1 78.350262,107.57808 30.372795,30.372799 0 0 1 47.948245,77.263855 30.372795,30.372799 0 0 1 78.23315,46.832627 a 30.372795,30.372799 0 0 1 30.4604,30.255561",
"fill": {
"paint": "#00CC00"
},
"id": "path2823",
"name": "path2823",
"stroke": {
"dasharray": "none",
"linejoin": "round",
"miterlimit": "4",
"paint": "#000000",
"width": "2.30899"
},
"style": {
"paintOrder": "markers fill stroke"
},
"type": "path"
},
{
"elements": [
{
"elements": [
{
"elements": [
{
"d": "m 308.1,277.95 c 0,35.7 -28.9,64.6 -64.6,64.6 -35.7,0 -64.6,-28.9 -64.6,-64.6 0,-35.7 28.9,-64.6 64.6,-64.6 35.7,0 64.6,28.9 64.6,64.6 z m 132.2,-161.9 c 25.8,0 46.7,20.9 46.7,46.7 v 122.4 103.8 c 0,27.5 -22.3,49.8 -49.8,49.8 H 49.8 C 22.3,438.75 0,416.45 0,388.95 v -103.9 -122.3 0 c 0,-25.8 20.9,-46.7 46.7,-46.7 h 93.4 l 4.4,-18.6 c 6.7,-28.8 32.4,-49.2 62,-49.2 h 74.1 c 29.6,0 55.3,20.4 62,49.2 l 4.3,18.6 z m -342.9,67.4 c 0,-12.9 -10.5,-23.4 -23.4,-23.4 -13,0 -23.5,10.5 -23.5,23.4 0,12.9 10.5,23.4 23.4,23.4 13,0.1 23.5,-10.4 23.5,-23.4 z m 261.3,94.5 c 0,-63.6 -51.6,-115.2 -115.2,-115.2 -63.6,0 -115.2,51.6 -115.2,115.2 0,63.6 51.6,115.2 115.2,115.2 63.6,0 115.2,-51.6 115.2,-115.2 z",
"id": "path954",
"name": "path954",
"type": "path"
}
],
"id": "g956",
"name": "g956",
"type": "group"
}
],
"id": "g958",
"name": "g958",
"transform": "matrix(0.10552692,0,0,0.1049851,58.573883,61.035557)",
"type": "group"
}
],
"id": "g2695",
"name": "g2695",
"transform": "matrix(0.78290367,0,0,0.78703031,12.345936,11.651649)",
"type": "group"
}
],
"id": "g3222",
"name": "g3222",
"transform": "matrix(0.45169465,0,0,0.44391375,-20.878644,-19.304276)",
"type": "group"
}
],
"fill": {
"paint": "#000000"
},
"viewBox": "0 0 29.22 29.22"
},
"type": "ia.shapes.svg"
}
],
"events": {
"dom": {
"onClick": {
"config": {
"script": "\t#create tags lists for the device\n\tprops \u003d self.view.params.tagProps\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props[0])\n\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:props, \"tags\":tags_table_dataset})"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "root",
"tooltip": {
"enabled": true,
"location": "top-left",
"style": {}
}
},
"propConfig": {
"meta.tooltip.style.backgroundColor": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,{session.custom.colours.state5},\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)",
"type": "expression"
}
],
"type": "property"
}
},
"meta.tooltip.style.classes": {
"binding": {
"config": {
"expression": "{view.custom.priority}"
},
"transforms": [
{
"fallback": "Alarms-Styles/NoAlarm",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "Alarms-Styles/Diagnostic"
},
{
"input": 2,
"output": "Alarms-Styles/Low"
},
{
"input": 3,
"output": "Alarms-Styles/Medium"
},
{
"input": 4,
"output": "Alarms-Styles/High"
}
],
"outputType": "style-list",
"type": "map"
}
],
"type": "expr"
}
},
"meta.tooltip.style.color": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"expression": "if({session.custom.colours.colour_impaired},\r\n\t\u0027#000000\u0027,\r\n\tcase(\t{value},\r\n\t\t\t1,\u0027#FFFFFF\u0027,\r\n\t\t\t2,\u0027#000000\u0027,\r\n\t\t\t3,\u0027#000000\u0027,\r\n\t\t\t4,\u0027#FFFFFF\u0027,\r\n\t\t\t5,\u0027#FFFFFF\u0027,\r\n\t\t\t\u0027#000000\u0027)\r\n\t)",
"type": "expression"
}
],
"type": "property"
}
},
"meta.tooltip.text": {
"binding": {
"config": {
"expression": "if({view.custom.disconnected} \u003d False,\n\tif(isNull({view.custom.alarm_message}),\n\t\"Source Id: \" + {view.params.tagProps[0]} +\n\t\", State: \" + {view.custom.state_string},\n\t\"Source Id: \" + {view.params.tagProps[0]} +\n\t\", Priority: \" + {view.custom.priority_string} +\n\t\", State: \" + {view.custom.state_string}),\n\"Source Id: \" +{view.params.tagProps[0]} + \", Priority: Unknown, State: Unknown\")"
},
"type": "expr"
}
},
"meta.visible": {
"binding": {
"config": {
"path": "session.custom.alarm_filter.show_camera_jams"
},
"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": {
"aspectRatio": "1:1",
"mode": "percent",
"style": {
"cursor": "pointer"
}
},
"type": "ia.container.coord"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,567 @@
{
"custom": {
"color": "value",
"priority": "No Active Alarms",
"state": "Closed"
},
"params": {
"tagProps": [
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value"
]
},
"propConfig": {
"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},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.priority": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Priority"
},
"transforms": [
{
"expression": "coalesce({value},0)",
"type": "expression"
},
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": "No Active Alarms"
},
{
"input": 1,
"output": "High"
},
{
"input": 2,
"output": "Medium"
},
{
"input": 3,
"output": "Low"
},
{
"input": 4,
"output": "Diagnostic"
}
],
"outputType": "scalar",
"type": "map"
}
],
"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": "coalesce({value},0)",
"type": "expression"
},
{
"fallback": "Unknown",
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": "Closed"
},
{
"input": 1,
"output": "Actuated"
},
{
"input": 2,
"output": "Communication Faulted"
},
{
"input": 3,
"output": "Conveyor Running In Maintenance Mode"
},
{
"input": 4,
"output": "Disabled"
},
{
"input": 5,
"output": "Disconnected"
},
{
"input": 6,
"output": "Stopped"
},
{
"input": 7,
"output": "Enabled Not Running"
},
{
"input": 8,
"output": "Encoder Fault"
},
{
"input": 9,
"output": "Energy Management"
},
{
"input": 10,
"output": "ESTOP Was Actuated"
},
{
"input": 11,
"output": "EStopped"
},
{
"input": 12,
"output": "EStopped Locally"
},
{
"input": 13,
"output": "Extended Faulted"
},
{
"input": 14,
"output": "Full"
},
{
"input": 15,
"output": "Gaylord Start Pressed"
},
{
"input": 16,
"output": "Jam Fault"
},
{
"input": 17,
"output": "Jammed"
},
{
"input": 18,
"output": "Loading Allowed"
},
{
"input": 19,
"output": "Loading Not Allowed"
},
{
"input": 20,
"output": "Low Air Pressure Fault Was Present"
},
{
"input": 21,
"output": "Maintenance Mode"
},
{
"input": 22,
"output": "Conveyor Stopped In Maintenance Mode"
},
{
"input": 23,
"output": "Motor Faulted"
},
{
"input": 24,
"output": "Motor Was Faulted"
},
{
"input": 25,
"output": "Normal"
},
{
"input": 26,
"output": "Off Inactive"
},
{
"input": 27,
"output": "Open"
},
{
"input": 28,
"output": "PLC Ready To Run"
},
{
"input": 29,
"output": "Package Release Pressed"
},
{
"input": 30,
"output": "Power Branch Was Faulted"
},
{
"input": 31,
"output": "Pressed"
},
{
"input": 32,
"output": "Ready To Receive"
},
{
"input": 33,
"output": "Running"
},
{
"input": 34,
"output": "Started"
},
{
"input": 35,
"output": "Stopped"
},
{
"input": 36,
"output": "System Started"
},
{
"input": 37,
"output": "Unknown"
},
{
"input": 38,
"output": "VFD Fault"
},
{
"input": 39,
"output": "Conveyor Running In Power Saving Mode"
},
{
"input": 40,
"output": "Conveyor Jogging In Maintenance Mode"
},
{
"input": 41,
"output": "VFD Reset Required"
},
{
"input": 42,
"output": "Jam Reset Push Button Pressed"
},
{
"input": 43,
"output": "Start Push Button Pressed"
},
{
"input": 44,
"output": "Stop Push Button Pressed"
},
{
"input": 45,
"output": "No Container"
},
{
"input": 46,
"output": "Ready To Be Enabled"
},
{
"input": 47,
"output": "Half Full"
},
{
"input": 48,
"output": "Enabled"
},
{
"input": 49,
"output": "Tipper Faulted"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
},
"persistent": true
},
"params.tagProps": {
"paramDirection": "inout",
"persistent": true
}
},
"props": {
"defaultSize": {
"height": 100,
"width": 100
}
},
"root": {
"children": [
{
"meta": {
"name": "Camera"
},
"position": {
"height": 1,
"width": 1
},
"propConfig": {
"props.elements[1].elements[0].fill.paint": {
"binding": {
"config": {
"path": "view.custom.color"
},
"enabled": false,
"type": "property"
}
}
},
"props": {
"elements": [
{
"id": "defs963",
"name": "defs963",
"type": "defs"
},
{
"elements": [
{
"d": "M 108.69378,77.205299 A 30.372795,30.372799 0 0 1 78.350262,107.57808 30.372795,30.372799 0 0 1 47.948245,77.263855 30.372795,30.372799 0 0 1 78.23315,46.832627 a 30.372795,30.372799 0 0 1 30.4604,30.255561",
"fill": {
"paint": "#C4C4C4"
},
"id": "path2823",
"name": "path2823",
"stroke": {
"dasharray": "none",
"linejoin": "round",
"miterlimit": "4",
"paint": "#000000",
"width": "2.30899"
},
"style": {
"paintOrder": "markers fill stroke"
},
"type": "path"
},
{
"elements": [
{
"elements": [
{
"elements": [
{
"d": "m 308.1,277.95 c 0,35.7 -28.9,64.6 -64.6,64.6 -35.7,0 -64.6,-28.9 -64.6,-64.6 0,-35.7 28.9,-64.6 64.6,-64.6 35.7,0 64.6,28.9 64.6,64.6 z m 132.2,-161.9 c 25.8,0 46.7,20.9 46.7,46.7 v 122.4 103.8 c 0,27.5 -22.3,49.8 -49.8,49.8 H 49.8 C 22.3,438.75 0,416.45 0,388.95 v -103.9 -122.3 0 c 0,-25.8 20.9,-46.7 46.7,-46.7 h 93.4 l 4.4,-18.6 c 6.7,-28.8 32.4,-49.2 62,-49.2 h 74.1 c 29.6,0 55.3,20.4 62,49.2 l 4.3,18.6 z m -342.9,67.4 c 0,-12.9 -10.5,-23.4 -23.4,-23.4 -13,0 -23.5,10.5 -23.5,23.4 0,12.9 10.5,23.4 23.4,23.4 13,0.1 23.5,-10.4 23.5,-23.4 z m 261.3,94.5 c 0,-63.6 -51.6,-115.2 -115.2,-115.2 -63.6,0 -115.2,51.6 -115.2,115.2 0,63.6 51.6,115.2 115.2,115.2 63.6,0 115.2,-51.6 115.2,-115.2 z",
"id": "path954",
"name": "path954",
"type": "path"
}
],
"id": "g956",
"name": "g956",
"type": "group"
}
],
"id": "g958",
"name": "g958",
"transform": "matrix(0.10552692,0,0,0.1049851,58.573883,61.035557)",
"type": "group"
}
],
"id": "g2695",
"name": "g2695",
"transform": "matrix(0.78290367,0,0,0.78703031,12.345936,11.651649)",
"type": "group"
}
],
"id": "g3222",
"name": "g3222",
"transform": "matrix(0.45169465,0,0,0.44391375,-20.878644,-19.304276)",
"type": "group"
}
],
"fill": {
"paint": "#000000"
},
"viewBox": "0 0 29.22 29.22"
},
"type": "ia.shapes.svg"
}
],
"events": {
"dom": {
"onClick": {
"config": {
"script": "\t#create tags lists for the device\n\tprops \u003d self.view.params.tagProps\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props[0])\n\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:props, \"tags\":tags_table_dataset})"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "root",
"tooltip": {
"enabled": true,
"location": "top-left",
"style": {}
}
},
"propConfig": {
"meta.tooltip.text": {
"binding": {
"config": {
"expression": "if(\n {view.custom.state} !\u003d \"Closed\",\n \"Source Id: \" + {view.params.tagProps[0]} + \", Priority: \" + {view.custom.priority} + \", State: \" + {view.custom.state},\n \"Device Disconnected\"\n)\n"
},
"type": "expr"
}
},
"meta.visible": {
"binding": {
"config": {
"path": "session.custom.alarm_filter.show_camera_jams"
},
"type": "property"
}
}
},
"props": {
"aspectRatio": "1:1",
"mode": "percent",
"style": {
"cursor": "pointer"
}
},
"type": "ia.container.coord"
}
}

View File

@ -1,13 +1,13 @@
{ {
"custom": { "custom": {
"FIO": true,
"color": "#C2C2C2", "color": "#C2C2C2",
"priority": "No Active Alarms", "priority": "No Active Alarms",
"state": "Closed" "state": "Closed"
}, },
"params": { "params": {
"FIO": false,
"tagProps": [ "tagProps": [
"/system/mcm01/test", "System/MCM01/FIO/PDP01_FIOM1",
"value", "value",
"value", "value",
"value", "value",
@ -20,6 +20,21 @@
] ]
}, },
"propConfig": { "propConfig": {
"custom.FIO": {
"binding": {
"config": {
"path": "view.params.tagProps[0]"
},
"transforms": [
{
"code": "\treturn value.split(\"_\")[-1].startswith(\"FIO\")",
"type": "script"
}
],
"type": "property"
},
"persistent": true
},
"custom.color": { "custom.color": {
"binding": { "binding": {
"config": { "config": {
@ -415,10 +430,6 @@
}, },
"persistent": true "persistent": true
}, },
"params.FIO": {
"paramDirection": "input",
"persistent": true
},
"params.tagProps": { "params.tagProps": {
"paramDirection": "input", "paramDirection": "input",
"persistent": true "persistent": true
@ -452,7 +463,7 @@
"props.elements[2].elements[0].text": { "props.elements[2].elements[0].text": {
"binding": { "binding": {
"config": { "config": {
"expression": "if({view.params.FIO}, \"FIO\", \"SIO\")" "expression": "if({view.custom.FIO}, \"FIO\", \"SIO\")"
}, },
"type": "expr" "type": "expr"
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -10,8 +10,8 @@
"attributes": { "attributes": {
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-09-15T11:56:39Z" "timestamp": "2025-09-15T13:53:59Z"
}, },
"lastModificationSignature": "c1649548a986b1d40973d4c3f3d2b8aabd86b82300806ceeea54899f8c08a501" "lastModificationSignature": "81a7a867db771951fb0ea320d555412015aa8d0891e084dc3d9e82568d75a537"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -1221,10 +1221,10 @@
"name": "UL15_1_TPE1" "name": "UL15_1_TPE1"
}, },
"position": { "position": {
"height": 0.0231, "height": 0.0185,
"width": 0.0255, "width": 0.0286,
"x": 0.0262, "x": 0.0257,
"y": 0.3945 "y": 0.3963
}, },
"props": { "props": {
"loading": { "loading": {
@ -1242,15 +1242,12 @@
"value", "value",
"value", "value",
"value" "value"
], ]
"width": "value"
}, },
"path": "autStand/Equipment/Photoeye_Tracking", "path": "autStand/Equipment/Photoeye_Tracking",
"style": { "style": {
"overflow": "hidden" "overflow": "hidden"
}, }
"useDefaultViewHeight": true,
"useDefaultViewWidth": true
}, },
"type": "ia.display.view" "type": "ia.display.view"
}, },
@ -1259,12 +1256,12 @@
"name": "UL15_2_TPE1" "name": "UL15_2_TPE1"
}, },
"position": { "position": {
"height": 0.021, "height": 0.0187,
"rotate": { "rotate": {
"angle": "60deg" "angle": "60deg"
}, },
"width": 0.0394, "width": 0.0286,
"x": 0.0336, "x": 0.04,
"y": 0.3397 "y": 0.3397
}, },
"props": { "props": {
@ -1553,9 +1550,7 @@
"path": "autStand/Equipment/Photoeye_Tracking", "path": "autStand/Equipment/Photoeye_Tracking",
"style": { "style": {
"overflow": "hidden" "overflow": "hidden"
}, }
"useDefaultViewHeight": true,
"useDefaultViewWidth": true
}, },
"type": "ia.display.view" "type": "ia.display.view"
}, },
@ -1569,7 +1564,7 @@
"angle": "90deg" "angle": "90deg"
}, },
"width": 0.0286, "width": 0.0286,
"x": 0.2997, "x": 0.2987,
"y": 0.2779 "y": 0.2779
}, },
"props": { "props": {
@ -1590,9 +1585,7 @@
"path": "autStand/Equipment/Photoeye_Tracking", "path": "autStand/Equipment/Photoeye_Tracking",
"style": { "style": {
"overflow": "hidden" "overflow": "hidden"
}, }
"useDefaultViewHeight": true,
"useDefaultViewWidth": true
}, },
"type": "ia.display.view" "type": "ia.display.view"
}, },

View File

@ -10,8 +10,8 @@
"attributes": { "attributes": {
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-09-15T11:56:20Z" "timestamp": "2025-09-15T12:02:09Z"
}, },
"lastModificationSignature": "188ee7008a302fdde7a25779773a75f1fc470d78eeb8140ebc260857183835af" "lastModificationSignature": "2b1567b7015ef37235c60c5986a18bfab06730e798bacd15d9c8d17f4298e538"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 94 KiB

View File

@ -10,8 +10,8 @@
"attributes": { "attributes": {
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-09-15T07:56:42Z" "timestamp": "2025-09-15T13:57:33Z"
}, },
"lastModificationSignature": "d50b501f54e6370e9517ba722e373b646d9def8fd4a3ff45e354341e614e391d" "lastModificationSignature": "e93048daf1aba987643002f45344dffe13b2a6cbe4815b4056006e05a7f8e2a1"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,9 +1,8 @@
{ {
"custom": { "custom": {
"disconnected": false, "color": "value",
"priority": 0, "priority": "No Active Alarms",
"state": 0, "state": "Closed"
"state_string": "Unknown"
}, },
"params": { "params": {
"tagProps": [ "tagProps": [
@ -20,21 +19,117 @@
] ]
}, },
"propConfig": { "propConfig": {
"custom.disconnected": { "custom.color": {
"binding": { "binding": {
"config": { "config": {
"fallbackDelay": 2.5, "fallbackDelay": 2.5,
"mode": "indirect", "mode": "indirect",
"references": { "references": {
"fc": "{session.custom.fc}", "0": "{view.params.tagProps[0]}",
"plc": "{view.custom.plc}" "fc": "{session.custom.fc}"
}, },
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{plc}/DCN" "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Color"
}, },
"transforms": [ "transforms": [
{ {
"expression": "if(isNull({value}), False, {value})", "expression": "coalesce({value},0)",
"type": "expression" "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" "type": "tag"
@ -44,35 +139,49 @@
"custom.priority": { "custom.priority": {
"binding": { "binding": {
"config": { "config": {
"path": "view.custom.state" "fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Priority"
}, },
"transforms": [ "transforms": [
{ {
"fallback": 0, "expression": "coalesce({value},0)",
"type": "expression"
},
{
"fallback": null,
"inputType": "scalar", "inputType": "scalar",
"mappings": [ "mappings": [
{
"input": 0,
"output": "No Active Alarms"
},
{ {
"input": 1, "input": 1,
"output": 4 "output": "High"
}, },
{ {
"input": 2, "input": 2,
"output": 3 "output": "Medium"
}, },
{ {
"input": 3, "input": 3,
"output": 2 "output": "Low"
}, },
{ {
"input": 4, "input": 4,
"output": 1 "output": "Diagnostic"
} }
], ],
"outputType": "scalar", "outputType": "scalar",
"type": "map" "type": "map"
} }
], ],
"type": "property" "type": "tag"
}, },
"persistent": true "persistent": true
}, },
@ -85,27 +194,226 @@
"0": "{view.params.tagProps[0]}", "0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}" "fc": "{session.custom.fc}"
}, },
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/State"
}, },
"transforms": [ "transforms": [
{ {
"expression": "coalesce({value},0)", "expression": "coalesce({value},0)",
"type": "expression" "type": "expression"
},
{
"fallback": "Unknown",
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": "Closed"
},
{
"input": 1,
"output": "Actuated"
},
{
"input": 2,
"output": "Communication Faulted"
},
{
"input": 3,
"output": "Conveyor Running In Maintenance Mode"
},
{
"input": 4,
"output": "Disabled"
},
{
"input": 5,
"output": "Disconnected"
},
{
"input": 6,
"output": "Stopped"
},
{
"input": 7,
"output": "Enabled Not Running"
},
{
"input": 8,
"output": "Encoder Fault"
},
{
"input": 9,
"output": "Energy Management"
},
{
"input": 10,
"output": "ESTOP Was Actuated"
},
{
"input": 11,
"output": "EStopped"
},
{
"input": 12,
"output": "EStopped Locally"
},
{
"input": 13,
"output": "Extended Faulted"
},
{
"input": 14,
"output": "Full"
},
{
"input": 15,
"output": "Gaylord Start Pressed"
},
{
"input": 16,
"output": "Jam Fault"
},
{
"input": 17,
"output": "Jammed"
},
{
"input": 18,
"output": "Loading Allowed"
},
{
"input": 19,
"output": "Loading Not Allowed"
},
{
"input": 20,
"output": "Low Air Pressure Fault Was Present"
},
{
"input": 21,
"output": "Maintenance Mode"
},
{
"input": 22,
"output": "Conveyor Stopped In Maintenance Mode"
},
{
"input": 23,
"output": "Motor Faulted"
},
{
"input": 24,
"output": "Motor Was Faulted"
},
{
"input": 25,
"output": "Normal"
},
{
"input": 26,
"output": "Off Inactive"
},
{
"input": 27,
"output": "Open"
},
{
"input": 28,
"output": "PLC Ready To Run"
},
{
"input": 29,
"output": "Package Release Pressed"
},
{
"input": 30,
"output": "Power Branch Was Faulted"
},
{
"input": 31,
"output": "Pressed"
},
{
"input": 32,
"output": "Ready To Receive"
},
{
"input": 33,
"output": "Running"
},
{
"input": 34,
"output": "Started"
},
{
"input": 35,
"output": "Stopped"
},
{
"input": 36,
"output": "System Started"
},
{
"input": 37,
"output": "Unknown"
},
{
"input": 38,
"output": "VFD Fault"
},
{
"input": 39,
"output": "Conveyor Running In Power Saving Mode"
},
{
"input": 40,
"output": "Conveyor Jogging In Maintenance Mode"
},
{
"input": 41,
"output": "VFD Reset Required"
},
{
"input": 42,
"output": "Jam Reset Push Button Pressed"
},
{
"input": 43,
"output": "Start Push Button Pressed"
},
{
"input": 44,
"output": "Stop Push Button Pressed"
},
{
"input": 45,
"output": "No Container"
},
{
"input": 46,
"output": "Ready To Be Enabled"
},
{
"input": 47,
"output": "Half Full"
},
{
"input": 48,
"output": "Enabled"
},
{
"input": 49,
"output": "Tipper Faulted"
}
],
"outputType": "scalar",
"type": "map"
} }
], ],
"type": "tag" "type": "tag"
}, },
"persistent": true "persistent": true
}, },
"custom.state_string": {
"binding": {
"config": {
"expression": "case({view.custom.state},\r\n1, \"Faulted\",\r\n2, \"Stopped\",\r\n3, \"Running\",\r\n\"Unknown\")"
},
"type": "expr"
},
"persistent": true
},
"params.tagProps": { "params.tagProps": {
"paramDirection": "inout", "paramDirection": "inout",
"persistent": true "persistent": true
@ -131,19 +439,9 @@
"props.elements[1].elements[0].fill.paint": { "props.elements[1].elements[0].fill.paint": {
"binding": { "binding": {
"config": { "config": {
"path": "view.custom.state" "path": "view.custom.color"
}, },
"enabled": false, "enabled": false,
"transforms": [
{
"expression": "if({session.custom.colours}[\"state\"+{value}] \u003d null, \r\n{session.custom.colours}[\"Fallback\"],\r\n{session.custom.colours}[\"state\"+{value}])",
"type": "expression"
},
{
"expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)",
"type": "expression"
}
],
"type": "property" "type": "property"
} }
} }
@ -160,7 +458,7 @@
{ {
"d": "M 108.69378,77.205299 A 30.372795,30.372799 0 0 1 78.350262,107.57808 30.372795,30.372799 0 0 1 47.948245,77.263855 30.372795,30.372799 0 0 1 78.23315,46.832627 a 30.372795,30.372799 0 0 1 30.4604,30.255561", "d": "M 108.69378,77.205299 A 30.372795,30.372799 0 0 1 78.350262,107.57808 30.372795,30.372799 0 0 1 47.948245,77.263855 30.372795,30.372799 0 0 1 78.23315,46.832627 a 30.372795,30.372799 0 0 1 30.4604,30.255561",
"fill": { "fill": {
"paint": "#00CC00" "paint": "#C4C4C4"
}, },
"id": "path2823", "id": "path2823",
"name": "path2823", "name": "path2823",
@ -240,72 +538,10 @@
} }
}, },
"propConfig": { "propConfig": {
"meta.tooltip.style.backgroundColor": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,{session.custom.colours.state5},\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)",
"type": "expression"
}
],
"type": "property"
}
},
"meta.tooltip.style.classes": {
"binding": {
"config": {
"expression": "{view.custom.priority}"
},
"transforms": [
{
"fallback": "Alarms-Styles/NoAlarm",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "Alarms-Styles/Diagnostic"
},
{
"input": 2,
"output": "Alarms-Styles/Low"
},
{
"input": 3,
"output": "Alarms-Styles/Medium"
},
{
"input": 4,
"output": "Alarms-Styles/High"
}
],
"outputType": "style-list",
"type": "map"
}
],
"type": "expr"
}
},
"meta.tooltip.style.color": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"expression": "if({session.custom.colours.colour_impaired},\r\n\t\u0027#000000\u0027,\r\n\tcase(\t{value},\r\n\t\t\t1,\u0027#FFFFFF\u0027,\r\n\t\t\t2,\u0027#000000\u0027,\r\n\t\t\t3,\u0027#000000\u0027,\r\n\t\t\t4,\u0027#FFFFFF\u0027,\r\n\t\t\t5,\u0027#FFFFFF\u0027,\r\n\t\t\t\u0027#000000\u0027)\r\n\t)",
"type": "expression"
}
],
"type": "property"
}
},
"meta.tooltip.text": { "meta.tooltip.text": {
"binding": { "binding": {
"config": { "config": {
"expression": "if({view.custom.disconnected} \u003d False,\n\tif(isNull({view.custom.alarm_message}),\n\t\"Source Id: \" + {view.params.tagProps[0]} +\n\t\", State: \" + {view.custom.state_string},\n\t\"Source Id: \" + {view.params.tagProps[0]} +\n\t\", Priority: \" + {view.custom.priority_string} +\n\t\", State: \" + {view.custom.state_string}),\n\"Source Id: \" +{view.params.tagProps[0]} + \", Priority: Unknown, State: Unknown\")" "expression": "if(\n {view.custom.state} !\u003d \"Closed\",\n \"Source Id: \" + {view.params.tagProps[0]} + \", Priority: \" + {view.custom.priority} + \", State: \" + {view.custom.state},\n \"Device Disconnected\"\n)\n"
}, },
"type": "expr" "type": "expr"
} }
@ -317,32 +553,6 @@
}, },
"type": "property" "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": { "props": {

View File

@ -10,8 +10,8 @@
"attributes": { "attributes": {
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-09-15T08:07:01Z" "timestamp": "2025-09-15T12:07:03Z"
}, },
"lastModificationSignature": "43e3f626b6c20dde448d3309c5d49aa118a0bd5d98674707b96f44bd61c7761c" "lastModificationSignature": "518c87ee2027cea44f3edb5f788df944ed6182525fbd8d19b01c4373e7821771"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 B

After

Width:  |  Height:  |  Size: 129 B

View File

@ -10,8 +10,8 @@
"attributes": { "attributes": {
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-09-15T07:52:45Z" "timestamp": "2025-09-15T13:47:56Z"
}, },
"lastModificationSignature": "102de4a32b1a50911297a5974535021522873add0c982eb5531c04c545079701" "lastModificationSignature": "fda517ea800d9f23f61f66f817b9998fe8a30ae7e546673de087e8677192d95f"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 B

After

Width:  |  Height:  |  Size: 475 B

View File

@ -1,13 +1,13 @@
{ {
"custom": { "custom": {
"FIO": true,
"color": "#C2C2C2", "color": "#C2C2C2",
"priority": "No Active Alarms", "priority": "No Active Alarms",
"state": "Closed" "state": "Closed"
}, },
"params": { "params": {
"FIO": false,
"tagProps": [ "tagProps": [
"/system/mcm01/test", "System/MCM01/FIO/PDP01_FIOM1",
"value", "value",
"value", "value",
"value", "value",
@ -20,6 +20,21 @@
] ]
}, },
"propConfig": { "propConfig": {
"custom.FIO": {
"binding": {
"config": {
"path": "view.params.tagProps[0]"
},
"transforms": [
{
"code": "\treturn value.split(\"_\")[-1].startswith(\"FIO\")",
"type": "script"
}
],
"type": "property"
},
"persistent": true
},
"custom.color": { "custom.color": {
"binding": { "binding": {
"config": { "config": {
@ -415,10 +430,6 @@
}, },
"persistent": true "persistent": true
}, },
"params.FIO": {
"paramDirection": "input",
"persistent": true
},
"params.tagProps": { "params.tagProps": {
"paramDirection": "input", "paramDirection": "input",
"persistent": true "persistent": true
@ -452,7 +463,7 @@
"props.elements[2].elements[0].text": { "props.elements[2].elements[0].text": {
"binding": { "binding": {
"config": { "config": {
"expression": "if({view.params.FIO}, \"FIO\", \"SIO\")" "expression": "if({view.custom.FIO}, \"FIO\", \"SIO\")"
}, },
"type": "expr" "type": "expr"
} }

View File

@ -10,8 +10,8 @@
"attributes": { "attributes": {
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-09-12T15:47:25Z" "timestamp": "2025-09-15T13:51:05Z"
}, },
"lastModificationSignature": "acc4b137708a157f0326cb0e7e51fe7066f548a187afefada5ae7accbf4aeb82" "lastModificationSignature": "4e34cd644bc7b4e3d1cdae2d12257566f0bbd89f8d52bce3b946fddbe3014795"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -3,7 +3,8 @@
"PLC": "MCM01", "PLC": "MCM01",
"device": "UL14_1_SIO1", "device": "UL14_1_SIO1",
"showTags": true, "showTags": true,
"state": "Closed" "state": "Closed",
"view": "autStand/Equipment/IO_Block"
}, },
"params": { "params": {
"tagProps": [ "tagProps": [
@ -49,6 +50,10 @@
], ],
"type": "property" "type": "property"
}, },
"onChange": {
"enabled": null,
"script": "\tname \u003d self.view.custom.device\n\tdevice \u003d name.split(\"_\")[-1]\n\t\n\t# Use a list of tuples to maintain order - longer matches first\n\tdevice_mapping \u003d [\n\t # Encoder variations (check these first before \u0027EN\u0027)\n\t (\u0027ENSH\u0027, \u0027Encoder\u0027),\n\t (\u0027ENW\u0027, \u0027Encoder\u0027),\n\t \n\t # Photoeye variations\n\t (\u0027LRPE\u0027, \u0027Photoeye_Tracking\u0027),\n\t (\u0027TPE\u0027, \u0027Photoeye_Tracking\u0027),\n\t \n\t # IO_Block variations\n\t (\u0027SIO\u0027, \u0027IO_Block\u0027),\n\t (\u0027FIO\u0027, \u0027IO_Block\u0027),\n\t \n\t # Button variations (check after encoder)\n\t (\u0027EN\u0027, \u0027Button\u0027),\n\t (\u0027JR\u0027, \u0027Button\u0027),\n\t \n\t # Photoeye (shorter version after longer ones)\n\t (\u0027PE\u0027, \u0027Photoeye_Tracking\u0027),\n\t \n\t # Other devices variations \n\t (\u0027DPM\u0027, \u0027DPM\u0027),\n\t (\u0027EPC\u0027, \u0027EPC\u0027),\n\t (\u0027MCM\u0027, \u0027MCM\u0027),\n\t (\u0027PRX\u0027, \u0027ProxSensor\u0027),\n\t (\u0027SS\u0027, \u0027SS_Button\u0027),\n\t (\u0027SOL\u0027, \u0027Solenoid\u0027),\n\t \n\t # Beacon Variations (single letters last)\n\t (\u0027B\u0027, \u0027Beacon\u0027),\n\t (\u0027G\u0027, \u0027Beacon\u0027),\n\t (\u0027R\u0027, \u0027Beacon\u0027),\n\t (\u0027H\u0027, \u0027Beacon\u0027),\n\t (\u0027A\u0027, \u0027Beacon\u0027), \n\t]\n\t\n\tview \u003d \"\"\n\t\n\tfor key, value in device_mapping:\n\t if device.startswith(key):\n\t\t\tview \u003d value\n\t\t\tself.custom.view \u003d \"autStand/Equipment/\" + view\n\t\t\treturn \n\t\n\tself.custom.view \u003d \"autStand/Equipment/Camera\""
},
"persistent": true "persistent": true
}, },
"custom.showTags": { "custom.showTags": {
@ -293,6 +298,9 @@
}, },
"persistent": true "persistent": true
}, },
"custom.view": {
"persistent": true
},
"params.tagProps": { "params.tagProps": {
"paramDirection": "input", "paramDirection": "input",
"persistent": true "persistent": true
@ -832,11 +840,23 @@
"x": 37.33, "x": 37.33,
"y": 23 "y": 23
}, },
"props": { "propConfig": {
"params": { "props.params.tagProps": {
"name": "Red" "binding": {
"config": {
"path": "view.params.tagProps"
},
"type": "property"
}
}, },
"path": "autStand/Equipment/Beacon" "props.path": {
"binding": {
"config": {
"path": "view.custom.view"
},
"type": "property"
}
}
}, },
"type": "ia.display.view" "type": "ia.display.view"
}, },

View File

@ -10,8 +10,8 @@
"attributes": { "attributes": {
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-09-13T12:46:35Z" "timestamp": "2025-09-15T13:33:59Z"
}, },
"lastModificationSignature": "1c6b4c478b8646d9a8b643ab6298d6e1ed8a9f8ac8f99076f192424bbd773a0d" "lastModificationSignature": "705eee9220b4fffa6b94445ce4dca9e3803d54df852a83dfcd7a5913f9b4c18a"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -2,7 +2,7 @@
"custom": { "custom": {
"PLC": "MCM01", "PLC": "MCM01",
"device": "UL15_1", "device": "UL15_1",
"maintance_mode": true, "maintance_mode": false,
"showTags": true, "showTags": true,
"state": "Actuated" "state": "Actuated"
}, },