628 lines
19 KiB
Plaintext
628 lines
19 KiB
Plaintext
{
|
|
"custom": {
|
|
"FillColour": "value",
|
|
"alarm_message": null,
|
|
"covert_mode": true,
|
|
"disconnected": false,
|
|
"display_icon": true,
|
|
"error": false,
|
|
"isMatch": 0,
|
|
"plc": "value",
|
|
"priority": 0,
|
|
"priority_string": "No active alarms",
|
|
"running": false,
|
|
"running_status": 0,
|
|
"searchId": "value",
|
|
"show_error": false,
|
|
"show_running": true,
|
|
"state": 5,
|
|
"state_string": "Unknown"
|
|
},
|
|
"params": {
|
|
"forceFaultStatus": null,
|
|
"forceRunningStatus": null,
|
|
"tagProps": [
|
|
"value",
|
|
"value",
|
|
"value",
|
|
"value",
|
|
"value",
|
|
"value",
|
|
"value",
|
|
"value",
|
|
"value",
|
|
"value"
|
|
]
|
|
},
|
|
"propConfig": {
|
|
"custom.FillColour": {
|
|
"persistent": true
|
|
},
|
|
"custom.alarm_message": {
|
|
"persistent": true
|
|
},
|
|
"custom.covert_mode": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.custom.state"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"expression": "case(\t{value},\r\n\t\t0, {session.custom.alarm_filter.show_running},\r\n\t\t1, True,\r\n\t\t2, True,\r\n\t\t3, {session.custom.alarm_filter.show_low_alarm} || {session.custom.alarm_filter.show_running},\r\n\t\t4, {session.custom.alarm_filter.show_diagnostic} || {session.custom.alarm_filter.show_running},\r\n\t\t5, {session.custom.alarm_filter.show_running},\r\n\t\tFalse)",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"type": "property"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"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.display_icon": {
|
|
"binding": {
|
|
"config": {
|
|
"expression": "{this.custom.covert_mode}//||{this.custom.isMatch}\u003e0"
|
|
},
|
|
"type": "expr"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.error": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.custom.state"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"expression": "0 \u003c {value} \u0026\u0026 {value} \u003c 5",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"type": "property"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.isMatch": {
|
|
"binding": {
|
|
"config": {
|
|
"expression": "if({view.params.tagProps[0]}\u003d\"value\",0,\nif({this.custom.searchId}\u003d{view.params.tagProps[0]},100,0))"
|
|
},
|
|
"type": "expr"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.plc": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.params.tagProps[0]"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"expression": "split({value}, \"/\")[0]",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"type": "property"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.priority": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.custom.state"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"fallback": 0,
|
|
"inputType": "scalar",
|
|
"mappings": [
|
|
{
|
|
"input": 1,
|
|
"output": 4
|
|
},
|
|
{
|
|
"input": 2,
|
|
"output": 3
|
|
},
|
|
{
|
|
"input": 3,
|
|
"output": 2
|
|
},
|
|
{
|
|
"input": 4,
|
|
"output": 1
|
|
}
|
|
],
|
|
"outputType": "scalar",
|
|
"type": "map"
|
|
}
|
|
],
|
|
"type": "property"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.priority_string": {
|
|
"binding": {
|
|
"config": {
|
|
"expression": "case({view.custom.state},\r\n1, \"High\",\r\n2, \"Medium\",\r\n3, \"Low\",\r\n4, \"Diagnostic\",\r\n5, \"No active alarms\",\r\n\"Unknown\")"
|
|
},
|
|
"type": "expr"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.running": {
|
|
"binding": {
|
|
"config": {
|
|
"expression": "{view.custom.running_status} \u003d 3"
|
|
},
|
|
"type": "expr"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.running_status": {
|
|
"binding": {
|
|
"config": {
|
|
"fallbackDelay": 2.5,
|
|
"mode": "indirect",
|
|
"references": {
|
|
"0": "{view.params.tagProps[0]}",
|
|
"fc": "{session.custom.fc}"
|
|
},
|
|
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"expression": "coalesce({value},{view.params.forceRunningStatus},0)",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"type": "tag"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.searchId": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "session.custom.searchId"
|
|
},
|
|
"type": "property"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.show_error": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.custom.state"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"expression": "case(\t{value},\r\n\t\t1, True,\r\n\t\t2, True,\r\n\t\t3, {session.custom.alarm_filter.show_low_alarm},\r\n\t\t4, {session.custom.alarm_filter.show_diagnostic},\r\n\t\tFalse)",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"type": "property"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.show_running": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.custom.state"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"expression": "case(\t{value},\r\n\t\t1, False,\r\n\t\t2, False,\r\n\t\t{session.custom.alarm_filter.show_running}\r\n\t\t)",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"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}/ALARMST"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"fallback": null,
|
|
"inputType": "scalar",
|
|
"mappings": [
|
|
{
|
|
"input": 4,
|
|
"output": 1
|
|
},
|
|
{
|
|
"input": 3,
|
|
"output": 2
|
|
},
|
|
{
|
|
"input": 2,
|
|
"output": 3
|
|
},
|
|
{
|
|
"input": 1,
|
|
"output": 4
|
|
},
|
|
{
|
|
"input": 0,
|
|
"output": 5
|
|
}
|
|
],
|
|
"outputType": "scalar",
|
|
"type": "map"
|
|
}
|
|
],
|
|
"type": "tag"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.state_string": {
|
|
"binding": {
|
|
"config": {
|
|
"expression": "case({view.custom.running_status},\r\n1, \"Faulted\",\r\n2, \"Stopped\",\r\n3, \"Running\",\r\n\"Unknown\")"
|
|
},
|
|
"type": "expr"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"params.forceFaultStatus": {
|
|
"paramDirection": "input",
|
|
"persistent": true
|
|
},
|
|
"params.forceRunningStatus": {
|
|
"paramDirection": "input",
|
|
"persistent": true
|
|
},
|
|
"params.tagProps": {
|
|
"paramDirection": "inout",
|
|
"persistent": true
|
|
}
|
|
},
|
|
"props": {
|
|
"defaultSize": {
|
|
"height": 100,
|
|
"width": 100
|
|
}
|
|
},
|
|
"root": {
|
|
"children": [
|
|
{
|
|
"meta": {
|
|
"name": "SLAM"
|
|
},
|
|
"position": {
|
|
"height": 1,
|
|
"width": 1
|
|
},
|
|
"propConfig": {
|
|
"position.rotate.angle": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.params.directionLeft"
|
|
},
|
|
"enabled": false,
|
|
"transforms": [
|
|
{
|
|
"expression": "if({value}, \u0027180deg\u0027, \u00270deg\u0027)",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"type": "property"
|
|
}
|
|
},
|
|
"props.elements[0].fill.paint": {
|
|
"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,if({view.custom.running},{session.custom.colours.state5},{session.custom.colours.state0}),\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"type": "property"
|
|
}
|
|
},
|
|
"props.style.classes": {
|
|
"binding": {
|
|
"config": {
|
|
"expression": "if({session.custom.colours.colour_impaired} \u003d True \u0026\u0026 {view.custom.isMatch} \u003e 0,\r\n{view.custom.state} + 100 + {view.custom.isMatch},\r\n{view.custom.state} + {view.custom.isMatch})"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"fallback": "",
|
|
"inputType": "scalar",
|
|
"mappings": [
|
|
{
|
|
"input": 101,
|
|
"output": "State-Styles/State101"
|
|
},
|
|
{
|
|
"input": 102,
|
|
"output": "State-Styles/State102"
|
|
},
|
|
{
|
|
"input": 103,
|
|
"output": "State-Styles/State103"
|
|
},
|
|
{
|
|
"input": 104,
|
|
"output": "State-Styles/State104"
|
|
},
|
|
{
|
|
"input": 105,
|
|
"output": "State-Styles/State105"
|
|
},
|
|
{
|
|
"input": 106,
|
|
"output": "State-Styles/State106"
|
|
},
|
|
{
|
|
"input": 201,
|
|
"output": "State-Styles/State201"
|
|
},
|
|
{
|
|
"input": 202,
|
|
"output": "State-Styles/State202"
|
|
},
|
|
{
|
|
"input": 203,
|
|
"output": "State-Styles/State203"
|
|
},
|
|
{
|
|
"input": 204,
|
|
"output": "State-Styles/State204"
|
|
},
|
|
{
|
|
"input": 205,
|
|
"output": "State-Styles/State205"
|
|
}
|
|
],
|
|
"outputType": "style-list",
|
|
"type": "map"
|
|
}
|
|
],
|
|
"type": "expr"
|
|
}
|
|
}
|
|
},
|
|
"props": {
|
|
"elements": [
|
|
{
|
|
"d": "M 25.072251,49.491677 C 8.305025,50.18642 -4.5893078,30.832553 2.4672281,15.562464 8.2437711,-0.23935905 31.006999,-4.7804171 42.373386,7.6015452 54.088036,18.389216 50.750821,39.438697 36.798277,46.490083 33.221446,48.453809 29.149949,49.49602 25.072251,49.491677 Z",
|
|
"fill": {},
|
|
"name": "path",
|
|
"stroke": {
|
|
"paint": "#000000",
|
|
"width": 1.5
|
|
},
|
|
"type": "path"
|
|
},
|
|
{
|
|
"d": "m 25.27,19.376563 c -3.799453,0.197118 -4.03784,-6.218759 0,-6.053125 3.946982,-0.08033 3.946979,6.133451 0,6.053125 z m 7,0 c -3.799453,0.197118 -4.03784,-6.218759 0,-6.053125 3.946982,-0.08033 3.946979,6.133451 0,6.053125 z m -0.240001,-0.316562 c 0,2.383333 0,4.766667 0,7.15 -2.173333,0 -4.346667,0 -6.52,0 0,-2.383333 0,-4.766667 0,-7.15 2.173333,0 4.346667,0 6.52,0 z M 17.07,23.24 c 0,4.116667 0,8.233333 0,12.35 -0.666667,0 -1.333333,0 -2,0 0,-4.116667 0,-8.233333 0,-12.35 0.666667,0 1.333333,0 2,0 z m 25.119999,4.220001 c 0,1.3 0,2.6 0,3.9 -8.69,0 -17.38,0 -26.07,0 0,-1.3 0,-2.6 0,-3.9 8.69,0 17.38,0 26.07,0 z M 12.079999,8.75 c 0,10.833333 0,21.666667 0,32.5 -1.086667,0 -2.173333,0 -3.26,0 0,-10.833333 0,-21.666667 0,-32.5 1.086667,0 2.173333,0 3.26,0 z",
|
|
"fill": {
|
|
"paint": "#000000"
|
|
},
|
|
"name": "path",
|
|
"stroke": {
|
|
"paint": "#000000",
|
|
"width": 0.5
|
|
},
|
|
"type": "path"
|
|
}
|
|
],
|
|
"style": {
|
|
"overflow": "hidden"
|
|
},
|
|
"viewBox": "-0.5 -0.5 51 51"
|
|
},
|
|
"type": "ia.shapes.svg"
|
|
},
|
|
{
|
|
"meta": {
|
|
"name": "SLAMs"
|
|
},
|
|
"position": {
|
|
"height": 0.005,
|
|
"width": 0.005,
|
|
"x": 0.0225,
|
|
"y": 0.0277
|
|
},
|
|
"props": {
|
|
"params": {
|
|
"tagProps": [
|
|
"",
|
|
"",
|
|
"value",
|
|
"value",
|
|
"value",
|
|
"value",
|
|
"value",
|
|
"value",
|
|
"value",
|
|
"value"
|
|
]
|
|
},
|
|
"path": "Symbol-Views/Equipment-Views/SLAMs"
|
|
},
|
|
"type": "ia.display.view"
|
|
}
|
|
],
|
|
"events": {
|
|
"dom": {
|
|
"onClick": {
|
|
"config": {
|
|
"script": "\tsystem.perspective.openDock(\u0027Docked-East\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
|
|
},
|
|
"scope": "G",
|
|
"type": "script"
|
|
},
|
|
"onDoubleClick": {
|
|
"config": {
|
|
"script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})\n\t"
|
|
},
|
|
"enabled": false,
|
|
"scope": "G",
|
|
"type": "script"
|
|
},
|
|
"onMouseEnter": {
|
|
"config": {
|
|
"script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
|
|
},
|
|
"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\", Priority: \" + {view.custom.priority_string} +\n\t\", State: \" + {view.custom.state_string},\n\t\"Source Id: \" + {view.params.tagProps[0]} +\n\t\", Alarm: \" + {view.custom.alarm_message} +\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"
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
} |