From 57d51dbf46c9763cd7e7d4bee1fd030bc9007503 Mon Sep 17 00:00:00 2001 From: "b.makharadze" <81828475+bmidf@users.noreply.github.com> Date: Thu, 4 Sep 2025 04:36:47 +0400 Subject: [PATCH] Update Tipper and MCM01, MCM02 --- .../page-config/config.json | 4 +- .../MCM01 Bulk Inbound/view.json | 72 +- .../MCM02 Fluid Inbound/view.json | 186 +---- .../page-config/config.json | 4 +- .../view.json | 15 +- .../Information-Docked-East-MCM/view.json | 50 +- .../resource.json | 17 + .../thumbnail.png | Bin 0 -> 16818 bytes .../Information-Docked-East-Tipper/view.json | 787 ++++++++++++++++++ .../Equipment-Views/ControlCabinet/view.json | 390 +++++++-- .../Equipment-Views/Tipper/view.json | 6 +- 11 files changed, 1204 insertions(+), 327 deletions(-) create mode 100644 SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Tipper/resource.json create mode 100644 SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Tipper/thumbnail.png create mode 100644 SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Tipper/view.json diff --git a/SAT9_SCADA/com.inductiveautomation.perspective/page-config/config.json b/SAT9_SCADA/com.inductiveautomation.perspective/page-config/config.json index db50642..75cc0dc 100644 --- a/SAT9_SCADA/com.inductiveautomation.perspective/page-config/config.json +++ b/SAT9_SCADA/com.inductiveautomation.perspective/page-config/config.json @@ -112,13 +112,13 @@ "content": "cover", "handle": "hide", "iconUrl": "", - "id": "Docked-East", + "id": "Docked-East-TPR", "modal": false, "resizable": false, "show": "onDemand", "size": 400, "viewParams": {}, - "viewPath": "PopUp-Views/Controller-Equipment/Information-Docked-East" + "viewPath": "PopUp-Views/Controller-Equipment/Information-Docked-East-Tipper" }, { "anchor": "fixed", diff --git a/SAT9_SCADA/com.inductiveautomation.perspective/views/Detailed-Views/MCM01 Bulk Inbound/view.json b/SAT9_SCADA/com.inductiveautomation.perspective/views/Detailed-Views/MCM01 Bulk Inbound/view.json index 7fc6c08..98f036f 100644 --- a/SAT9_SCADA/com.inductiveautomation.perspective/views/Detailed-Views/MCM01 Bulk Inbound/view.json +++ b/SAT9_SCADA/com.inductiveautomation.perspective/views/Detailed-Views/MCM01 Bulk Inbound/view.json @@ -968,7 +968,7 @@ "props": { "params": { "tagProps": [ - "System/MCM01/Conveyor/VFD/ULC1_1_TIPPER_VFD1" + "System/MCM01/Conveyor/TIPPER/ULC1_1_TIPPER" ] }, "path": "Symbol-Views/Equipment-Views/Tipper" @@ -1141,7 +1141,7 @@ "props": { "params": { "tagProps": [ - "System/MCM01/Conveyor/VFD/ULC2_1_TIPPER_VFD1" + "System/MCM01/Conveyor/TIPPER/ULC2_1_TIPPER" ] }, "path": "Symbol-Views/Equipment-Views/Tipper" @@ -1623,7 +1623,7 @@ "props": { "params": { "tagProps": [ - "System/MCM01/Conveyor/VFD/ULC3_1_TIPPER_VFD1" + "System/MCM01/Conveyor/TIPPER/ULC3_1_TIPPER" ] }, "path": "Symbol-Views/Equipment-Views/Tipper" @@ -1766,7 +1766,7 @@ "props": { "params": { "tagProps": [ - "System/MCM01/Conveyor/VFD/ULC4_1_TIPPER_VFD1" + "System/MCM01/Conveyor/TIPPER/ULC4_1_TIPPER" ] }, "path": "Symbol-Views/Equipment-Views/Tipper" @@ -5360,70 +5360,6 @@ }, "type": "ia.display.view" }, - { - "meta": { - "name": "ULC1_3_PLC (INTRALOX)" - }, - "position": { - "height": 0.0185, - "width": 0.0104, - "x": 0.71, - "y": 0.6444 - }, - "props": { - "params": { - "forceFaultStatus": null, - "forceRunningStatus": null, - "has_state": false, - "tagProps": [ - "System/MCM01/Conveyor/VFD/ULC1_3_PLC (INTRALOX)_VFD1", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value" - ] - }, - "path": "Symbol-Views/Equipment-Views/DeviceStatus" - }, - "type": "ia.display.view" - }, - { - "meta": { - "name": "ULC1_4_PLC (INTRALOX)" - }, - "position": { - "height": 0.0185, - "width": 0.0104, - "x": 0.7985, - "y": 0.5898 - }, - "props": { - "params": { - "forceFaultStatus": null, - "forceRunningStatus": null, - "has_state": false, - "tagProps": [ - "System/MCM01/Conveyor/VFD/ULC1_4_PLC (INTRALOX)_VFD1", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value" - ] - }, - "path": "Symbol-Views/Equipment-Views/DeviceStatus" - }, - "type": "ia.display.view" - }, { "meta": { "name": "MCM05_Button_0" diff --git a/SAT9_SCADA/com.inductiveautomation.perspective/views/Detailed-Views/MCM02 Fluid Inbound/view.json b/SAT9_SCADA/com.inductiveautomation.perspective/views/Detailed-Views/MCM02 Fluid Inbound/view.json index edab06c..cf389de 100644 --- a/SAT9_SCADA/com.inductiveautomation.perspective/views/Detailed-Views/MCM02 Fluid Inbound/view.json +++ b/SAT9_SCADA/com.inductiveautomation.perspective/views/Detailed-Views/MCM02 Fluid Inbound/view.json @@ -2205,41 +2205,6 @@ }, "type": "ia.display.view" }, - { - "meta": { - "name": "UL2_1" - }, - "position": { - "height": 0.0185, - "rotate": { - "angle": -90 - }, - "width": 0.0104, - "x": 0.2727, - "y": 0.9343 - }, - "props": { - "params": { - "directionLeft": false, - "forceFaultStatus": null, - "forceRunningStatus": null, - "tagProps": [ - "System/MCM02/Conveyor/VFD/UL2_1_VFD1", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value" - ] - }, - "path": "Symbol-Views/Equipment-Views/Status" - }, - "type": "ia.display.view" - }, { "meta": { "name": "UL2_3" @@ -2284,9 +2249,9 @@ "rotate": { "angle": -90 }, - "width": 0.0104, - "x": 0.3126, - "y": 0.8802 + "width": 0.0146, + "x": 0.3111, + "y": 0.8847 }, "props": { "params": { @@ -2294,7 +2259,7 @@ "forceFaultStatus": null, "forceRunningStatus": null, "tagProps": [ - "System/MCM02/Conveyor/VFD/UL3_2_VFD1", + "System/MCM02/Conveyor/EXTENDO/UL3_2_EX1", "value", "value", "value", @@ -2306,7 +2271,7 @@ "value" ] }, - "path": "Symbol-Views/Equipment-Views/Status" + "path": "Symbol-Views/Equipment-Views/Extendo" }, "type": "ia.display.view" }, @@ -2354,9 +2319,9 @@ "rotate": { "angle": -90 }, - "width": 0.0104, - "x": 0.3918, - "y": 0.8819 + "width": 0.0146, + "x": 0.3898, + "y": 0.8828 }, "props": { "params": { @@ -2364,7 +2329,7 @@ "forceFaultStatus": null, "forceRunningStatus": null, "tagProps": [ - "System/MCM02/Conveyor/VFD/UL5_2_VFD1", + "System/MCM02/Conveyor/EXTENDO/UL5_2_EX1", "value", "value", "value", @@ -2376,7 +2341,7 @@ "value" ] }, - "path": "Symbol-Views/Equipment-Views/Status" + "path": "Symbol-Views/Equipment-Views/Extendo" }, "type": "ia.display.view" }, @@ -2424,9 +2389,9 @@ "rotate": { "angle": -90 }, - "width": 0.0104, - "x": 0.3526, - "y": 0.8804 + "width": 0.0146, + "x": 0.3511, + "y": 0.8849 }, "props": { "params": { @@ -2434,7 +2399,7 @@ "forceFaultStatus": null, "forceRunningStatus": null, "tagProps": [ - "System/MCM02/Conveyor/VFD/UL4_2_VFD1", + "System/MCM02/Conveyor/EXTENDO/UL4_2_EX1", "value", "value", "value", @@ -2446,7 +2411,7 @@ "value" ] }, - "path": "Symbol-Views/Equipment-Views/Status" + "path": "Symbol-Views/Equipment-Views/Extendo" }, "type": "ia.display.view" }, @@ -5319,9 +5284,9 @@ "rotate": { "angle": -90 }, - "width": 0.0104, - "x": 0.2732, - "y": 0.8787 + "width": 0.0146, + "x": 0.2712, + "y": 0.8832 }, "props": { "params": { @@ -5329,7 +5294,7 @@ "forceFaultStatus": null, "forceRunningStatus": null, "tagProps": [ - "System/MCM02/Conveyor/VFD/UL2_2_VFD1", + "System/MCM02/Conveyor/EXTENDO/UL2_2_EX1", "value", "value", "value", @@ -5341,112 +5306,7 @@ "value" ] }, - "path": "Symbol-Views/Equipment-Views/Status" - }, - "type": "ia.display.view" - }, - { - "meta": { - "name": "UL3_1" - }, - "position": { - "height": 0.0185, - "rotate": { - "angle": -90 - }, - "width": 0.0104, - "x": 0.3126, - "y": 0.9358 - }, - "props": { - "params": { - "directionLeft": false, - "forceFaultStatus": null, - "forceRunningStatus": null, - "tagProps": [ - "System/MCM02/Conveyor/VFD/UL3_1_VFD1", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value" - ] - }, - "path": "Symbol-Views/Equipment-Views/Status" - }, - "type": "ia.display.view" - }, - { - "meta": { - "name": "UL4_1" - }, - "position": { - "height": 0.0185, - "rotate": { - "angle": -90 - }, - "width": 0.0104, - "x": 0.3526, - "y": 0.9359 - }, - "props": { - "params": { - "directionLeft": false, - "forceFaultStatus": null, - "forceRunningStatus": null, - "tagProps": [ - "System/MCM02/Conveyor/VFD/UL4_1_VFD1", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value" - ] - }, - "path": "Symbol-Views/Equipment-Views/Status" - }, - "type": "ia.display.view" - }, - { - "meta": { - "name": "UL5_1" - }, - "position": { - "height": 0.0185, - "rotate": { - "angle": -90 - }, - "width": 0.0104, - "x": 0.3918, - "y": 0.9375 - }, - "props": { - "params": { - "directionLeft": false, - "forceFaultStatus": null, - "forceRunningStatus": null, - "tagProps": [ - "System/MCM02/Conveyor/VFD/UL5_1_VFD1", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value" - ] - }, - "path": "Symbol-Views/Equipment-Views/Status" + "path": "Symbol-Views/Equipment-Views/Extendo" }, "type": "ia.display.view" }, @@ -5509,7 +5369,7 @@ "forceFaultStatus": null, "forceRunningStatus": null, "tagProps": [ - "System/MCM02/IO_BLOCK/FIO/PDP02_FIOM1", + "System/MCM02/IO_BLOCK/FIO/PDP2_FIO1", "value", "value", "value", @@ -5527,7 +5387,7 @@ }, { "meta": { - "name": "PS1_2A" + "name": "PS1_2B" }, "position": { "height": 0.0185, @@ -5544,7 +5404,7 @@ "forceFaultStatus": null, "forceRunningStatus": null, "tagProps": [ - "System/MCM02/Conveyor/VFD/PS1_2A_VFD1", + "System/MCM02/Conveyor/VFD/PS1_2B_VFD1", "value", "value", "value", diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/page-config/config.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/page-config/config.json index 5ee42db..5b95179 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/page-config/config.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/page-config/config.json @@ -87,13 +87,13 @@ "content": "cover", "handle": "hide", "iconUrl": "", - "id": "Docked-East", + "id": "Docked-Eas-TPR", "modal": false, "resizable": false, "show": "onDemand", "size": 400, "viewParams": {}, - "viewPath": "PopUp-Views/Controller-Equipment/Information-Docked-East" + "viewPath": "PopUp-Views/Controller-Equipment/Information-Tipper" }, { "anchor": "fixed", diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Device-Status/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Device-Status/view.json index 59f61c4..b13ca1b 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Device-Status/view.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Device-Status/view.json @@ -5,9 +5,7 @@ "MCM02", "MCM03", "MCM04", - "MCM05", - "MCM06", - "MCM07" + "MCM05" ], "running_state": -1, "state": 0, @@ -465,7 +463,7 @@ "0": "{view.params.tagProps[0]}", "fc": "{session.custom.fc}" }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Alarm/Communication_Faulted" }, "transforms": [ { @@ -483,6 +481,14 @@ { "input": 0, "output": "NOT FAULTED" + }, + { + "input": true, + "output": "FAULTED" + }, + { + "input": false, + "output": "NOT FAULTED" } ], "outputType": "scalar", @@ -577,7 +583,6 @@ "grow": 1 }, "props": { - "currentTabIndex": 1, "menuType": "modern", "tabSize": { "width": 1000 diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-MCM/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-MCM/view.json index fca3eef..fc62f1f 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-MCM/view.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-MCM/view.json @@ -7,7 +7,7 @@ "MCM04", "MCM05" ], - "state": 0 + "state": null }, "params": { "tagProps": [ @@ -440,11 +440,11 @@ "inputType": "scalar", "mappings": [ { - "input": 1, + "input": true, "output": "MOTOR FAULTED" }, { - "input": 0, + "input": false, "output": "MOTOR NOT FAULTED" } ], @@ -589,11 +589,11 @@ "inputType": "scalar", "mappings": [ { - "input": 1, + "input": true, "output": "JAM FAULTED" }, { - "input": 0, + "input": false, "output": "JAM NOT FAULTED" } ], @@ -738,11 +738,11 @@ "inputType": "scalar", "mappings": [ { - "input": 1, + "input": true, "output": "DE ENERGIZED" }, { - "input": 0, + "input": false, "output": "NOT DE ENERGIZED" } ], @@ -887,11 +887,11 @@ "inputType": "scalar", "mappings": [ { - "input": 1, + "input": true, "output": "ESTOPPED" }, { - "input": 0, + "input": false, "output": "NOT ESTOPPED" } ], @@ -1036,11 +1036,11 @@ "inputType": "scalar", "mappings": [ { - "input": 1, + "input": true, "output": "ESTOPPED" }, { - "input": 0, + "input": false, "output": "NOT ESTOPPED" } ], @@ -1185,11 +1185,11 @@ "inputType": "scalar", "mappings": [ { - "input": 1, + "input": true, "output": "STOPPED" }, { - "input": 0, + "input": false, "output": "NOT STOPPED" } ], @@ -1334,11 +1334,11 @@ "inputType": "scalar", "mappings": [ { - "input": 1, + "input": true, "output": "SWITCH FAULTED" }, { - "input": 0, + "input": false, "output": "SWITCH NOT FAULTED" } ], @@ -1483,11 +1483,11 @@ "inputType": "scalar", "mappings": [ { - "input": 1, + "input": true, "output": "ON UPS BATTERY" }, { - "input": 0, + "input": false, "output": "NOT ON UPS BATTERY" } ], @@ -1632,11 +1632,11 @@ "inputType": "scalar", "mappings": [ { - "input": 1, + "input": true, "output": "BATTERY FAULTED" }, { - "input": 0, + "input": false, "output": "BATTERY NOT FAULTED" } ], @@ -1781,11 +1781,11 @@ "inputType": "scalar", "mappings": [ { - "input": 1, + "input": true, "output": "BATTERY LOW" }, { - "input": 0, + "input": false, "output": "BATTERY NOT LOW" } ], @@ -1930,11 +1930,11 @@ "inputType": "scalar", "mappings": [ { - "input": 1, + "input": true, "output": "ON" }, { - "input": 0, + "input": false, "output": "OFF" } ], @@ -2079,11 +2079,11 @@ "inputType": "scalar", "mappings": [ { - "input": 1, + "input": true, "output": "UPS FAULTED" }, { - "input": 0, + "input": false, "output": "UPS NOT FAULTED" } ], diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Tipper/resource.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Tipper/resource.json new file mode 100644 index 0000000..cdfbdb4 --- /dev/null +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Tipper/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-09-03T06:54:39Z" + }, + "lastModificationSignature": "4b12fac034e3c2ca1986e202bb52bbf16115eaf037f088cc525c51999a096a82" + } +} \ No newline at end of file diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Tipper/thumbnail.png b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Tipper/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..005db0a05ed76da1d63903d15f35074cd23c5abb GIT binary patch literal 16818 zcma*PWmFtpw=Nn;aCe8`?(V?}8X!n;cXuZ^!3plcA-KCW?(XjH)<6TddEdRibM81} zpL>5WsH!n*)tu{jrmVTD`qwuFDI|D&_zxdGAbphs)P?olRi~Po9QCeE6n`rT2VTXPgLwuFlFl9AFT6#6>hjHm3 ztmK58y0Yz@oejz}?zPc@f)^(6t;=>TsWGz8I^)ms7R?pJLa)Vj_)4%M9v)D~mR7M6 zxt-#(^Yg=UBlLeM62HfBN0cbX*X}lOX@B0H`v%&r^%xv&r)_*@WUQapayHodn!J18 zDDyrVl7++z#njm7pY$P@J7C?%>I#lrDEOd5t#pD|w=?XD1FR2ss^)(g#GF){^UDh% z6WwG`vtyYW>$f1$6nlles1Vd^D@$n3_AX-YTQeRkJMj9NOsp%nKxED=kvV;=nQW!p#i&OBUX)o3H3@G^eRn1 z{CQ*!PmwT!wmD|(KxWUCjYyV3<@!7m{EXxoAs>rYIK88z2bFwMdf}h`E82&T3?W$$ zWKhgk+?dcE5jl!md20s-RVsgs4@aTcD*P2`h!BD+B3Giu>p~LLmd<~LRqj5c6y7Nf z=bzv)jIfU~Hd$$%w~lsi;?>f6L-c7)Cmy&7F&Ft*&bX%X0q&3g4EP^%BCYQ0M~>?+ zrr`tTH98Rpt`>Sf?B|6VUH8&za15YCK)$f9cnB~!hjyn$FX7WVoYIzeDFhAOLRZB< z%Lo~25#kKgtq20-5^T;oqT;ef#RyC{5-Wda*XJPjYiJoLOGy8k2xU!3pb3UoD%hF%&s+o{2^<7{f~+P+EV9SzbON;ufCvQA0?6VQjN*1CW-#;w z=}cudXZn_w@CVJzTaqRSExtCKz|%b_7FLeHs25xf%@i@kjSnqPAuRP(AxL{h1{P30 zVq&=IKa_;HSh%=yeK0hXJNl{WY>W{<@>N*rBhvH5q^80ZaR1E8VP&wkrbQBQh>Aos zX^Kk?W{6=(&J-M_>7?x-t>LlI8|yZ%^gtOdda3_z^gME7U}_96YlZNG7=tdEb8q8? zFO@_%?Rfl%h;871R9)qizJ&g`)){LUa;0{;!X;ag{CZxRl#qdZ)HE);a|_AStzTuw6sQ` z!Mc7iL=n~T;x}}AGJ-6yD>#dAu+{!nSX7@qE8^Zj%MHbZiOvmcAJyW2i}^MjL9 z1o6TU2sniqVUc4;?(HMk=66d-+fKx)*ZEPHnFRfoZ4~J`sJ&i@%8OZIK2x)9HZiZQ z0nf#)^7G;tvWgGRumZQofHoq&aYV0nbut_^0e?`oUBUp}(U24Gxh%tv7GgJ=;%i+r z>A!=DAara=szsm+z9v3hT%yX)r)BiE_SI1QG&t*{U%9Y;#Nq^zZ`x=bKuT{`0+UY|duX1@+w1erUPSjQN>I+53y#-`| zYO}4HX?Q)(83_0N+6e%(&iUh&#fK}|NdlVyX61;V&u*yO#_%&G-85u->k5m|-0B4| z(d+18q++M29@P+McSS6Lf1Gyg}@i{SjXyjt#XbhO{DscA)q9ogz=&&oB zRhUSbSc%fd69$h+StF*kfLv;(lbo3WyMSkkY^qatBgVG&10z2GCv6S4k9Rd^A?hJb z4)I1==|CseGwtdcq;W>Pml(^iGxW6GhLo2JKH(7|jN(FG`?-L3VPwC3U`f~n^<$D* zcb_9BNN**IUVVHg@nAmh_p}}l5b~968C$PETXHr!s;Us8jx&{SKc?<#BcwB%WWN0g z*^$0Pf|G`;<4%M7{7N;lP!z}^kW)eq9al)f^1$oYcjws0wD8K*cNQF2z(n=L*ke+2 zmCkPiTK+wvam-8HvXfzdZHmMhE~(w=ij;fw=Lk~U+6K+{>#4T?#rKbg$M^udK7Ja? zD7D0ONp_;~33NCWfy`l~zEJ~MxTtOhqODz9-R`1zNG z@BW#U3|)uaVrX>?qR`b*l?p8xvsuRW^i>VjA=No(R0`R@g1Zr_?YBfnvv**;YI4RH z%k)jH!&u`pQI~m3cQ`x{BjrZ*4NSw~qGv~#euT&JLR=!i0&;^Ps)_{69${u0g!`A$ zdVXgy^kZ&Jt*MV6GazLlz*u>Drlbu1AlmqYTBgx~*kL(0N;+&}VF0n>fKl~r zlyJ=X=a~jfGZA`jg3_j-6TVzzl)kM6Tqv9^TcnxG>`)_i$CumaeN(E*g@t6?Z(>!L zGvV{YD&4>F{ZsB|=Vk&+nkoBm2FkvI5<&pIpyrgA1@1r23E6Oh61@$<1!RV38>79j zo-HlcK0ljNtdbwK0E1t$v*0~zSbsSQ(j?boc0wc$EcWJFX=zFNb479XHL|D=+ll7l z?4A2WjmD(=NdqAX2(%VgR%B04tqW4>27;s|c2J#3cwA8y$a-3B-1^S25BynLi!O}5 z$ULqrt#r>PMX%89)fRM;b(EJACB{d)!0YWx3|QMF?6i+8yJU3$>JEH+UG5_{&YoJ& zw6uhqI)p0swEm10xdG$zv_l)Ryf&z91kMDHd@KEET9OM|xt=P-&h7-txNY2%FG<>( zUre_mFx)P#q9WzJ?m85s)jqWMbP8q)cKG{qm?f;Qf5660LdoLFG$^b|ZcNHeQcSO~ zzjDs4`6jeIL!Zy~ls9X?l)|GX_oy3q+R3tGavw4sdC1WcTK#Yt$vM3Jw z+Gfw5UzBHVA5+#jo_;64J-ztT;;#e8rzAb-R4zWmgUaA44H>}APA@fn{U$c*ZM(>>#Z9|bY0Zz_x}B+|_` zx-k$~k^IR<7z!bYp{J&R)ILKW0fR4wAw7{Y^&8h^RwHaTgl-kNNa~N2?x7JBC$ncj zEdFpW-nrn(ghq+5)l|yiepq$1wREP-qDy(^mSnE~%p(IMAu47I@`>nyL0M`lrr$)% z^m^lX)%hL$b&+Q+F+cK60FJ?N{*|+>&f*NNjqgE|d2}|+8aeqAM3X1fd1 zWQR&D9p|iC6?Yv)XsfATDPOC9oy3_OsdaQ@{YEkRdM6Amv+MeToN*h(|hTUG;v}Nkd zep}qgnZK@lt1Ri<IHKp{sgvj;juET^3)%`AreF4Gt# zG(vWwXYI*{Ir!5lHv3J*6tR%t*dQnxE0=x5p7&lSGP4;o7)yS6#&v$f8#ih`(0}ez z+shEwsAFo-6!fieHAmjbY~l{S7#PWCV94~#?~5Hhw#F38Rs)`eR;if&zNQ_*## z!*)yq9xXlslq8Y~YoA*9DtLS%6tta@) zDcyZuWM*%pr8^V5OLNe&ixZR71}nc`J5?Cy`DQvZpO+5cl-DWh5qX4G>SqmbFd)JO zujI4Nj-(lk^56t9Xd+Gw85x+K{q%@PGB{hFgN3^eEciuit%FV4UWHfO6pe%cDt2Q5 zP*B^IY1c!Ki0$i_1;gEOG+ZKShkZV#^#L6i9sTaJPv?SD$?&Q2UQ+(#$v>hitEdiB z8C;b2`RubO_o;}N7yt6P+ve=6I;(p=Q7-eEgp?M4aN{>QD6H;$o{sheLVr(+a1iVL)^vCr6TLx+lAvBy`=^_BxLpUCDXN&0D0Vsfp9a6obBtoDZXTO!fHtyw;6ah=$ zGGRl!ss7UNoJOlB)V@1!&*Us5z3v7*!D%9p@zOr)gPEJ2r{!ob?p58N=&mXGR5UGY z(f0IAJWgB{Ip@2i_WaORlq3edkXR20Tr(qyD07Y^J6TB^S4gVGn4TrJ;pP&|Y+G+M zQhGhWBbkE}0ot)~Oe0EWAzulgWiH2APmFcKjf!FLw2FvZY5dQlr(AxB2_#BqGb~b8 z)K`omLpSB5wk*brS0q=iS%~QD=stQigSp|pYg&uh#{_SUTa=*6qLYB$jA!!+*?w{K z*8^JK@6nJTmtcZbZNcj8sIlTaCu8a}z#p^h?!TE9G)2hN_DMMShrXE+?pU_x=diFT zQA_^oDIDt$E2(_SKp)_75RHOKi+ zIdL*uK|HeZz3rE-kO`#)QC`luZ5hCUMw2sVMH1)E{2hIh){htjwCpbTx{rp;zlJZq zblXtQ>Re-9&Sh9xD|Aj8k5E-&lD>d%2xBJgl-dO(2Sk zh_TxyPxj>?**$*R+ALA7Q#b7%(}d}fI_l~g#qSV7U~vlIbk>H9l{l-e&P9~JbI}ks zqv9fxl~NIl^RBdi0-9ZVJj3!W^H&AgHYDb8AM-CeyaJ*B0(0C=)C0=0)B2x_n@|IP z^@Qj@t>R2A>-zsZDs(?PVHZ4Mc7}rVHtSm3Kxv*sa#mS!*wMsZ*S?3GzCO>{b`@f) zSSJ-p+T7cVsCtuQRh8oZD`U60qrO18M`z;pAW(>ckGzrGnD_UG2h8*&G-ejU07vaq zN+YMj{8tYLQrkqektc!MEkn8s^B|q3;99ATUgwDg^Q-NW}7Rx4pAmEwd>c&qd;{ zC?sbwhZDRD|E8)O7Ld!9u$$jy7Jwz#9UMHFd}w1}Wck|qQ2!){eB8MvUK z*qR7hk<$}+=q5gzNyK|Z%X%D<4$ABdzOCYBUGGzOMLkkFVVxP1hu?7NcRxDb#; zOJR<=o?E)*K0MSi@H3@6-w^y&J?|RUIv3I+3uC~yj>k)8c&6G`=ZKb6rr{s^Mg0&Z zHE7YgczU7_&9MICg&IxtUqdc5&k>|H zTpal=tUiRqIQ7U|VqQRv{d~|0H3l|U?tD}7#9HZy6mvN;p~%JwIO&qCR1F(9mvmD5 zRCs*Yv)m0~WK;f!-I4;)#rco06Bm<8^?8;+Xemy39PS$>=U=v6O51qB2-J=ZmXrtw$%ty)))2VQaBTP=|UwPPe08G4CCa*NOBz#bApY2aCt zA1}PhXwfz#RuvaDoY9?Bm)D*Y+t^m)ez#MP`n842>E7qajP1bm{IGyo9bm+fv$2Zb zM5>6@xy<>%L>g6S*-Twknd4`c`{85__aqD59^+%S@MSBp=#-p}v_N!s$sFw3z zL1#%t2Uac?R&uAIE_wJ)F<8Gz{ZpCoSc}%TitLykNE9u^Mu&k!navX{;*>+Quye_D z;MypUXyMJQ9eZX;b8951yd&*gI2*GpdqoZh^v+6Updd)39(99%wal$;aponiSa zAoWNg3xO7Q2;hqypAIUNc2wW4hzgopGu(sKaI6q$84tO7 zAUmXM(Vx7$k0MOSxEEaM=VCCqjgPTMSI{oGZkxPHFhUpfxuEMkZu@fuM$2?Qd%-;x zu8XL+Eds%Voxu{B<16OwF-aV9$#_9)YpBYu$IBFR7#%ZV?Hu<9bQJxEj!(y9THmys zaI!n@-NHJqt$WQb&rh##RATG|dvF+MKT;EdV7+D}e%R@cZOoI0%B9Q`;IOzYJA3UA)8bF&^ zTLWSI=+NQpz2NS2HZBa+x|7kIt0{SHlrE z4!~XcW!wIohh+WTO%eNy8+8un+0VUw@bQO25yZmeuZ&A8p+O9})Tf9V8lxarfL~pu zLPuFuOrWV@LMF8%J^!S_#M1q+_h_c*#|~DE>d)>F*o+x4+?5}C_kOu*e9X2Oht11s zY-hpS3B}(oy_x+^aLv-=jjF8&LOht>*^*O?2&68h>5Q* zT<4LoF(bJ_iUw>hR5i5giN$A^x{ZN!4IgbJsH@zMtP@n+pRUSf!~zX>_{Y>vUx-Kq zLeJ1Fn%rL@D|T`IRNM(IThdo~O$g;{SBl++@Vc7@2`bycSqN+U**%T^ypW2kX%nf~ zVSR}Bj@L2kM3}MPPTtegFb=>}+zU((E3aiWzwCt(?C5hg<`7ujA#rzNO7(l*t+z|v z3GZ%T8nneMT*7YZtRpG!OHHwmRLuRVJ4jRDwW1v^Unv;+NdFo#voQ3jFwJ9q1j3Gp z=c@;Y{Q$+?OVfVzLR7q&J)7ZCN=R!@KG!V#pNa{gsMAd7c> zy$CpKEMXT?kb_)C)kMZ8t1XF8!^Rx+U!w0hDhS0ct7Rv$D06Q ze3{(utO^+T%|CM-)M_-h3oa7m-JMmF%SDP1gDfxhwi0>AanDatw(K-xYhaAD0~3u7 zkPXsm8#!ETvju;~NpkTx7JhipB2ZeGjc#3XuqU!&>cnNAAqW<6t++06cv}@|8if_1 zzw2cl&4MOkD{tHH1buta`3l0{VQ}86w@p92A{g@Bcs^H0eW)v_#&(nGOD$0#-{?&# zIj70lC9>gMd^}GNkMg^KBn*v|+}v=BFOgW2@nAg^3Dv?OW1Z8+xe=02I1U00VQyq5 zgzJXAxe6On&)RRa#Tu0S(huWJ6lyq60JEnnf2GQRq7xBB|Gm~G%AAapdyO}ynf=tj z)_`0ufR3*=SkQ(5PiuS6CXTHfRR4W5?_l3>5!Rq5g4!4j+kK`>eE^j>f@{!8ZLjw; zZ!0SIxG$6-`cv8Ci1D;Dz85YYfzj!rgEO%cUnmZTA?05f+aWhp3D+Z3OB-mh?BI$H zdlXa^3-F)8HmkXTFq)8%5V|6_8EzDz|J1EHp^zg*fN(V6fr%Ps*^V zf_BxXcZcee6G*_of(5@P1SK@*P6PNf(ciX2%!12_n`BgIaK8HalV__^me`QobZA~F z3dl#>AfKPmG(KbV;zAK=@&h#0zN6RjC$CZayZ*>u`?w+=nvvN|JptZad$F~S106;XZSz{l~Rk}3Pc!{Y}X zzdT8Oin&Z+*|bLz$^JM3z#Ri4GIcwg_d5yGOd%kc_^pH8On=s%h)2#%O8;}PVrGa1 z)B2^GTL9eL&89(*f$$WZh{#PzmYI@ZO#TTW#K<@wo}H=qLqJ8(LiTkAw3L}5k9>hA z0jG?D8!`bKtfbn`=G+f1lmlAl4pQezNkf1$&Tvnt9NKh1HJ&$(a1pH%mmJrF6f`N zxM(yR{y0F$k$}}{ONcJ-4aZska@y>DymqMWhG8er2sxszqW6*fqFttt07 z%sP@_=i0+w8L76tqoed5Qcm@aYAQrka*cE44F2`>qkI;tPlxQ-bcl_vw3xmnYc5wv z{XxlZxSrOdqW|}#L=AFMxh5siOD{qSrEKyvr?Pi=Ysh%5_fgENbRLR)Ba#a(re}N}HX})NE}h}$NBF~1 z)+2S!-gEFWVlHUtEkW1Xt7o1^+RlQx0-^|3YUO|2WtNh@ty#Mt$QmE)kur1Rcx>D0 z9&D5uTWfbFOa~7?>51NT7OKRI)ICOk=3$9w@zFB>0^3|HijdV@j*W(D65E~I{uY(Y zsHyw{dOd92^kbK4tv6oQOK*Lnv{16WxAf@2Vhx@Sc2k^T?@X zv_1c=U3X5*D;+0c3Pn7jtK`~%IXFKN5QJ`&H?)`Kdfk!Bq!ww@!HOAM-$G>ncIc#b zpcJST@>o4tborb$Zk$4bvT;7f*aMOVs&()o-WY9ZHB+*W#su5#C4nYHeHSN3TvUOs z-V2KNDX$WEJia%ANBG7<(?pNYW}E4JNlDi#>{n2+z;G!7TU%2)VTiiAQ*xx6Kyslm z%xtT0MJ$ptJv++IzZfKc!(yz0V#as2eX|h{yUQtmt@qm^uD1JZ@j5|UmnZB=F)%Q& zIJ6*mw+pcJk84)+mI**4=!!oNXen$g*TFODQO1@(BNsMTU5OM3n%Dy;OhK6)&y7F@J29}nh zDcz9(2|IH9NR10A_p@Ip<@MZB0`duM2|Or%6y46G9b262A>+m*+E@w>M^bF{vz=}8(Mga#hEeqwb* zMPWtC*<216uEFwq!b!oSEyvuw~C=9T`9&W@55;bqJk_v|zK<|B2GSqSb8>&JOwU<0j9Nh$nSg>JR;z zJbK83QHh@u49x-Q(=^0PXo(x0E861Ko>^^oTN#TQ#x-c0`dSxHK7BU&>Ic|e*3kI4JD^Hahj*VSUw~_``HZIX$4{h=b&XDPQC|kfgL$H-mFS?#jgY8j4fE6I zxhzRg%r}2$*^Zm0x!-;~L8(S^A3tyG5ybw+g>G~R!98jC1V?+NfyMGM&*c{NX&F2J z_u~%R5PW<|Zt%|3@qsQ?b-&8T$4@F$yqlSVN@2^-tc4nQUncYgxO`o4ucR7`YD$Fm zJKOLM6evHN7k(tnz#)A+g)6&H36EW9*xpX1C_}pUkB@-y7Fc7QUzbc1XdfBUxFZD- zU90pS-@CGTMR$KUqqxuR_&Uw>a|I~e?IM<94NIUyq`z0E?dxT~)nzq_Cj@`eDHjUF ze!PHCnB?a0$;Hd{!;Au&bwOTrD(#T8YF?uRYbf_Z_V4dhZPk9H0MVQ-KjOKbF9-G} zaCpC-JF!d?Q9`9*x1+FAEg4NAT#&PoAzr+`K()1=(f1NBhYwMJP&&iAU&l@itc<_J z%>HsWJ76VTx#B95itH7gvZra^;lYS>LzZ;5q|^Ozh#288Q@zz=6ZTb3L>oxj_6lN? ztEpACehD2OzNPf02d|^9W_q}{m?wk+%cqj3rs7Z@h5|R=IA+Dil0y|2bk*!7mUD9Gi@xMIeKscwL1FJoUx^`o-5f~aF<=l{B#3&+E=zv^#t0qHvkx00@HHL8}8HWwfV6-`%Y3 zemQ$S_0Q65fqPTd;jb}lkll)inP3*TjU&mn`!z25{36h#=!xBNAvrh!v2l|L0rP;9 zpL+9W07q}3-l+Wz@sPl0Lh$tq!D_e~lX!#sOOdoNUhoGgugJpr%1U(Um9zpDC{qc=#0t_5*+MH24I9CPG5`<1e?8 zr^42r(X6GSdvm!P$ps&AwW(4J14az<^Rwd-(3_dvAz0zyfC1K^Og&;iTxA2mX&IMz zQz+cFmT$Y00yF>Ie-4pksq}!tHhCoKRGR50@cX3EHT&g80!@sK-eHtMOTYWY7qaES z&7+#D&Rpu6s;j=n#`cN17(||}k;F*GGL{|}>^8Gz!1%mqiFWmCe!1XkyZ6?<02W5E z+5KHsFst+G>M$|!`s?M5V_udgU7JtaCW|X!#;U;9);6pa0>bbNwgS807Viw)ys2r* z=Ar13puU|E9KrLi%lo_FonF@2!$?+xGz8O$)QGMRdUE(?^vRz=X6@!4bcb9q!Yf`> zWv2r}l!PDKw09v@D%K5$I(c!etO6VqbgxTklHqoCzt>ckK$$|_vX;&~6TXc8#OT0g zXLE~;lJ{yWpX=!3WL2GCS?Fj^v{J>7U_O-J2(djFGU1>XjUG^mQR!>#xcgS)C)RwpI0F8R_jEQb|_% z9(vq1c>xTQH;`DY-?YH%7cZyM@54O-80m9CME6Y+%uAN?4%P(0+^>%ix znJbc4{02AsLr3SOGd^0aVP%ojS?g=ZPa>;+fb z-}F@uXuC#7<;J5~UZh9@S6mNOVwiQG2H%vYrK}8maeMU@M-`x;p$(U6Os?OqnRMGy zj$ocL#tHYTKVW<2>08<|y~Uv3Oo-gx8XjMiH?9M6#6qjwE_A)`=G5hcFJmuvF6xcs z4kJ={O&~KebT)T)dqMH`uCD#FB`VbhJs7;= zXCjl4DLz|oBri6;eYn5am;lA23BF_rdS!V+Ph*r0SPpSMoNrCe(Y2BIp_yBWiWy;~ zrKR|Bjg5_&TUdDfMO$Er^%Yc;RgmlW8TD)7$^anY%rTo=*nsTff_SrrRvThtV{_fP zg!subh40KoHLOiF=3$%ZgZ%f!7SGuQ_E9&fu(#Kj@wXhl55C|6%P{qFhx`#6Lhp*@=IN#0D51!i7q-e=udNuMrZotVc%9>d;NZ1ykZ~~ z4Rj!SHT8wX659?P9aL=Q#W(Ic?+Y`5_&B)g|I`bS#>a+3sfost4oEEv>|e1U-&Rwq`flqXS`L{^aiqIVuipO-}8E#l(mi8&j}d zN9;vphGwIWe%W&XEQHvl*}+Fi&h&L6x^$NZU;q`D*Bxrw*lk0#3q(N5_npyxIYuY< zG;fu_)0`;a%*87VdDaVKWFdnHIcGGxSJuFU?~|;+bMgkjc-fKT+u~It&TVB0IdgQ7 zAMYcq5YU|({(NpauMlaWR^ju$F?QO@^3>|LsD!Y}t3H34)l!Rm1Ph7o0-m;;b?nt* zYf%-Sa%;loBBQJIP=0Bk4G)eNVRA)sUU@-v(NM1dr@*hv4RBp7!X?t=xChT8oE%6Xrq`s(j&6#-OV`Z79za8;`J0@?YxH*q;ERL$@ercLq>$GOLMA_rNz}T0>2a3dmsRads#9eMC!&FD14|)GI~Y83O|o(jr{lUU%C~K} z^KE%CS}R$B?CADKuY}Z=qy+*~KM^1q1`vyi6IBf4SY@otV-4il=rPfUrcxvWDT-QO z&gi{xM@B~eDa{MyjyBE9QvrrnI^!L#`36ruk4;oLqNMKo!1+!5pwu*?jrP9Be+7k3 zg|#{otjv4(3IitOev$Hnm?o9|Q+5ob`CTAO4sNE_HKUC5&ibdqcqsab2F?Yam9!Tm z3l-QD4zS6n1)&Zqw0lZ`xZ0gw$(}DPm`Pk)qHGU9MSieCZe|3AbvyKe(e>I<-RzyO z+-nEH2XnPSXn<|JJs%qV)TLxXYfl35nTUe4j3OGJb@0dhqMd9i(Ea#R$Ka zLRXT62Pf}kKP{*il@2II_6BFHa9rC;nJ6JQ_yU=>*=%!Z4j6K0*z%D!ZQ&KQOGxwpWmIECZBu?d;gqIeQLOw-aQ!Z4q*|vw;0qp_U{}s&E$G;Aw zj-D)kc`RzLhBs4=kInc^=LPys_MF7l6L=4upDicS-HvZU;-hG`uP5DKT}AWVCAeO2 znGr8)Ll>x-;PDVLj!==@?&V|@h-hc|9RP)d6h*PwU*X}4r!Ig*6TNC{TgbBvA{Iiq zxxM7sdRVBe#L+kt)YW&PVXmJ%s+rU)RKRKXG<2A9anyQle6G&gVzWK)X!UeHU&{8( z5(g3i>i;CW2g^ycoIATI9k#z!d5P*7WHKSVa5kBwNL^6?-bnozy!T=JgC~lALr{al z!)0KfcEHPWfpGBIQ;R0-Q;&M60de0?4Bz1;ZP=DpN`wnJT@(K!MezZ;)zRSWu`geo zXp2w-B2Pt+lG=8*b-Yt(bgvq6>dOx}(0f36VFeP<)0N33DuGSEP1}fFAs>^OHVq}I z*x2#*TjS&6{K0Rb?e6a*!*ZyuK{qmTG(|PdbpgztGQrQ^4#$7oZ+Ldzhk?V>R|!2* zgw80bb+~}TOjOVL9kj7*L)@7c2h%9`#<~gJ$ZQ=hYVZTg@^7g_XQ#IdZXu2+DEEMb zMp)ifiI;A$qjL$xb_nr?20G(%1^?vR>;(91CLR2gjFr9Oies}z%A&I6KqGqSE<3_!KGK^ZoHKnt)ryuH}1S0zvN~ z(4F}PF53NG*{&5qWBRngfSqV*efWeg8`knXZ0Y0UL)pXEIc;faE8?UwVdwBHGxH)_ z#aFFNkf^8?4YP;!+}?wg#@7iwqZ<)6^8yS69rLOCTPZbo?d7R~@mIV)dG-Gqvq6p` z;4SUz@6rm|@&JL~0L%>~@19TGkkAxG%q5F4+UR%*3kw(5UiL`9+K|*drk!oz+I9vx z5DF3pFQ!NbN%ZG66~dV`R%~8&_k=~oh>0&MWeg5V(bw;fP;WZ`Q?A?3u6EFxl)r@o zA~^^J2t%5ha0!uOzPz5n*Tn++5`G}S-Chs56Y_};7#Y!wIcSeE7A9?k$FpwnB)g^K zs}kTJpKsqD%`~ZRNJoX?%b1`kD=Xx-RTCc2fNXu(HBZd>86lLMk)9vU#N5R($#xVs z*UJgQgnd7uO;v|QMT>tIC@5tT)3nCbLD6}>Vxh=t4r-yo?o1kh)01Nk-{|1p2e{28 zjZb2Oe4-K5?1Z6aak`eqiJ8yQPj;O*_eb25_RJ`MKN_WdkD#}h9p$aeuGtBdK+uA;aq7aEFiLu`WQT*K2Mz{K8 zscDJkCP27wK9^Ho59eWqftKn`+;}}f&c}!$Uv5)eNh1mD{z%iL6?_Y%G1g&@r)LOz zfL~T695>s@4Yw9kdgUb)zzz&AR6}>ljC2d=O;OjTW^Rh|)UA#*@Ofk;T(89#Kp)TT zCWW1wsfq z_A7#F0N|~*tKM`|?e=8S+&4m7`I+iM1lazf8NLzrrBryE+K;WL*$b&j5By5CP{Ka< zpfwa5a$9a0I7Z3B(wPVQecUn_P%6WE%@iO+h=~IzhDY^f@)aaDCg@6imt(6q&=DVg zEX~A0(w2iAC@Ae4%qMhJdz|dq zk&4OKRApi%eDxO7l3~F?h!M@h?RaY48HSa$n&uq+6)7lKVoTSE7X9$6(yANLCDZZ#S5-81wbPlzOlL*vL7xQ6f89ay)@YViUIf5{>3OVrLJ%W*)Ax%n}lVr z0QL_E()sln2e_x`2f1(u^Ud=W0d#s07^{f>{lnLQ2)C{h#48W z^Vy`4qxG^@4^d1=@JwBi7<%kAUzUc3Hoju$;K`!ixcsswI`{$gb*jpIwqcH3==5_c zB;H{2?_Xi$p$=4)u#^kqJ6&-!+T%kaPeT+-5$bW~(|ITcb_aBpaSkQL;G!#W7M3tZ zUQ9uOOL?0t*8VA6+gt55uv%eD$|~587N`D}LY9>8?kkUiPFqMrp%!7a9dpUW}-8ERk{LM}>a5|c5lnW$Cg|L;J)tl{iBkX>5*SUq#=>hHM zUrHxKQLJD>U$mk7WjtCNBpC}#<4!Qe|5+G{=v^Tc0W-Sc;-hy7QsNE zSN-R^(pTE^yBW(N_?V-s;7hIGOBB*aYbx*#C)vR=V{_sDSjG&GxM8O^xRy0F-O@E7 z;#*F$Pdf$Db0_rWi^putFGrT`!irO5NRIb$oIYK%4CD71*2#ECw9Q;qH%Yeh{fI$T z)znFdYH#iQ;w*}ud$g)Y@-=roErUPBq<8>kz89lo zoV|8ZUSEDNRN*Ozy^#>U$^a^PA~ryv4b*hKh%r*vNzlo}<&7Cb?1Csj&oWvM6pH+t zt!9($kQ$fkj5oD~Qy8-Id9Kq<_QsDk3aR2Zm-;VaJqC=|mlVF3nky?*#ReA#olxtg zF?o4&3k-U?Y;i!dz>mWQu4<+ZvhDaOw83L-p>MFAI?KTDHD+IrgKe}pXSA^dNe0%6 ze6&*fy@cJrWVtOiS3*h;RO~69Fz*gc z!UWb8xn6%XT-Afkn>f=Y_qs5XOz(2P)!V&)3M2UPmCRRRrFEP;FYgpGx%$jD7A}~-(fSK0al!HChU<7p>!7pkGHqWe zA}7d|x1~#}tgM*V(2RUkq_E{G(S8bNC0%AHqf(aRcR$V99MWMPl$%?}&ar0ZQiE{5 z?P<#A2rpAS^)2r&y_lmRdid~=agMIu=(%yGVAP2OR)TH{kqJ+#D`el?F#4`MV>wMr znm_xGVDmD%-+~^--zms)F&xsb&8>%c}-If(qz%mtH}+M5-Q)Xa4m-+uFDj)j#iATAD0t-TQ?imVBU zs7yJDinxBCnVQAxnjtoUIg`J~{>$ z#*e-IN*TOw1biQWg0EIG+)ruo7n&vVxA|-v`$Eyeix;dg%o7D=hlM_Re=>J)3;@^{ zrQQNDZ)@&tmn07-f^cuUH+MRnx-h!}uMgCq&<$P72d_|i0TA?koC8VRMf~~5TQ_AR zNgFA)Uu)(5Jh?B4K|5ID&P97nAoY?&ms38@dcyBRkq(|b@zIV=<#j{D1;;X|Bb)LQ zULlSm6^P_~p|TXb6O)H)4|o$&lQm6Q2e-;Ey3HzjGs{7=eV%)-8KbePxnQoG|v&%luF{TjHKH-l9NoVy2Mij_wFI@=L}|pBpGn&^&5>P<;}@{vys9o9y`k_fY0{_P}2Fp z^4*MiG8({0I)g3tzd;+TY=47%TyRwZwnN}c;JXs5N_vXXiQlgmvE!+}EBnh3{DMVo zC2}5_dp%g-((+wYB~*!0pvmOl4hn-e_;R`y_-3$_%pzl|66Je`3Z3hHu7X&2?@$ip#3BzjI{R(dQm+Te3VezjQV~P6-TloJn7&d zlQCFR&VMwO$3n5i!^)+tD2}tU_27#KOGkMr{wZ#QPow~;VGHGGXkTqGht}@@rY$Rd60Yc=Y=Jl$~HZCCqIT zuLOkhggEXv=i2^Y=J9b{5b*``b2OEkfo+p8SF?){)BTF4Jh8t`*hRY&xCT%s2HB@cg(8#*BF+LP^?OUXy_#0<%dK0H)F3Aaz;O z?{NPoY;O}_5P`z!?0?0Er7xrD8HTVt(w)r36|LKmsV?lXZ3MPf? zyE0&@zd`a~5HB~u*99_%iqXN7EQ3j)7xq56Sl$0Oz5jpF4et4!+iPHp{w3vq%y{qB zy)(_6j*gCWle;l8ZE|*DPPD6o4}6rLF&6w2d=qC*bAk%2h@>m&yQco{nwtN0w;w4+ zm3NSc@^%`TNd-$=uX;gB?5P%0Y&F(g;wAp^Fi^pSANl)DMJMX{-PTY4z3v$T0~S76 z$2p%91|B>yXQ){x`j`$p6SKkl!HR|jQOtyM@1sMF5qK$VHl)mfiA*QzR2q43g?E=@ zQC1=;LCH+hSBxP46s64DWCEs$yt(dDRv2iTEkDZ$Ok+WFUGEdvnh5&XOgD^$ci(|a zTZ2>o2JS@=fsqf7eFYk-g@Ro@EtVwxh7KWed2>$!>{ha{U{L?zN9F&^)!t*lKOyEV z``z*UxWEpaG2W)4-2aY@sEUqG)bupG@&5WQm^5=;gHt^BVuJKEFh|D$Ga zKsDsMr9o6=v={-G`3jA@pTOt7p#K#j-bwWiKX438$ai1;*YE#f%719<4))4_fCGOL zhbjz4moDJ{rgvvEII8?l9QY5F!J+QI$oLOa{$s|wHt*qW>ihTaqFr{jU_z8smInU> zbCWaYD{nf&zr6qNW%s+LAKx{d`hEo_G-=vD%jP6-=;O>;YI^t-K3w|kE5ObKjH<{D zppXVLNj0ai1^;0QY%5&aYOdq=SRcQ5unJf?7FK0qXkgOOiN!m$63(f^@dJft*#hch+KNg!&)*C^PVf`x>pXNaX?#7fG{S!wN^g8_0DNUw1 zAO8&_GppZ1*>u75z)QOhmw7)RYSRSAQFn0M_$LAUe>38JW`D8$Lqe0mqfvfJllKwm zIOgW&XiUIVH2Gh^{wMYmuEPHlgYm2N%l`GRU(&-tp9M;07zwTEegK9je`f^q!UBREvwb6Z$pQ?6u3 z^By?G%A0eY3;O3?(|!Masr3U04&rT9wD7?us>LN0{XXxu22eE?6JmistbNZ-66VX` zHc2md@Zm}04W{@~hJVu+vtQEBbd&IZ)5_%=L{4`|5U&u`5BPro DCR$$h literal 0 HcmV?d00001 diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Tipper/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Tipper/view.json new file mode 100644 index 0000000..00c1db9 --- /dev/null +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/PopUp-Views/Controller-Equipment/Information-Docked-East-Tipper/view.json @@ -0,0 +1,787 @@ +{ + "custom": { + "PLC_list": [ + "MCM01", + "MCM02", + "MCM03", + "MCM04", + "MCM05" + ], + "running_state": -1, + "state": 0, + "views_data": [] + }, + "params": { + "tagProps": [ + "System/MCM04/Station/Chute_JR/FL1038_2_JR1", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "propConfig": { + "custom.PLC_list": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]Configuration/PLC" + }, + "transforms": [ + { + "code": "\tdevices \u003d system.util.jsonDecode(value)\n\tplcList \u003d []\n\tfor k in devices.keys():\n\t\tplcList.append(k)\n\t\t\n\treturn(sorted(set(plcList)))\n", + "type": "script" + } + ], + "type": "tag" + }, + "persistent": true + }, + "custom.running_state": { + "binding": { + "config": { + "expression": "try(jsonGet({session.custom.state_messages},{this.custom.tag_path_to_lookup}),-1)\t\r\n" + }, + "transforms": [ + { + "expression": "if({value} !\u003d -1, try(jsonGet({value},\"state\"),4),{value})", + "type": "expression" + } + ], + "type": "expr" + }, + "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": "if(isNull({value}), 0, {value})", + "type": "expression" + }, + { + "fallback": null, + "inputType": "scalar", + "mappings": [ + { + "input": 3, + "output": 3 + }, + { + "input": 2, + "output": 2 + }, + { + "input": 1, + "output": 1 + }, + { + "input": 0, + "output": 0 + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + }, + "persistent": true + }, + "custom.views_data": { + "binding": { + "config": { + "struct": { + "equipment_id": "{view.params.tagProps[0]}" + }, + "waitOnAll": true + }, + "transforms": [ + { + "code": "\tproject_info \u003d system.perspective.getProjectInfo()\n\t#self.custom.views_data \u003d project_info\n\tviews \u003d project_info.get(\"views\")\n\t#equipment_id \u003d self.view.params.tagProps[0]\n\tviews_data \u003d [i for i in views if i[\"path\"].startswith(\"Custom-Views/\"+ value.equipment_id)]\n\t#self.custom.views_data \u003d views_data\n\t\n\treturn views_data", + "type": "script" + } + ], + "type": "expr-struct" + }, + "persistent": true + }, + "params.tagProps": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "width": 400 + } + }, + "root": { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\u0027Source ID: \u0027 + {view.params.tagProps[0]}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFF", + "fontFamily": "Arial", + "fontSize": 14, + "fontWeight": "bold", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.perspective.closeDock(\u0027Docked-Eas-TPR\u0027)\n\tself.getSibling(\"tabs\").props.currentTabIndex \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Icon", + "tooltip": { + "enabled": true, + "style": { + "cursor": "pointer" + }, + "text": "Close faceplate" + } + }, + "props": { + "path": "material/close", + "style": { + "cursor": "pointer", + "marginBottom": 5, + "marginLeft": 5, + "marginRight": 5, + "marginTop": 5 + } + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "30px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "32px", + "display": false + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "if({../AlarmTable.props.params.length_of_table_data} \u003d 0, True, False)" + }, + "enabled": false, + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Labels/Label_1", + "marginTop": 20 + }, + "text": "No Active Alarms" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmStatusTable" + }, + "position": { + "basis": "400px", + "grow": 1 + }, + "propConfig": { + "props.filters.active.text": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "code": "\treturn value[1:]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "columns": { + "active": { + "displayPath": { + "enabled": false + }, + "priority": { + "enabled": false + }, + "source": { + "enabled": false + }, + "state": { + "enabled": false + } + } + }, + "filters": { + "active": { + "priorities": { + "critical": false, + "high": false, + "low": false, + "medium": false + }, + "states": { + "clearUnacked": false + } + } + }, + "refreshRate": 500, + "toolbar": { + "enabled": false + } + }, + "type": "ia.display.alarmstatustable" + } + ], + "meta": { + "name": "Active_tab" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NameField" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "props": { + "style": { + "paddingLeft": 20 + }, + "text": "NAME" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "DeviceName" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "code": " return value.rsplit(\u0027/\u0027, 1)[-1]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Name" + }, + "position": { + "basis": "35px" + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_0" + }, + "position": { + "basis": "35px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NameField" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "props": { + "style": { + "paddingLeft": 20 + }, + "text": "TIPPER FAULTED" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "PB_Light" + }, + "position": { + "basis": "50%", + "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": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "0": "{view.params.tagProps[0]}", + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Alarm/Tipper_Faulted" + }, + "transforms": [ + { + "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", + "type": "expression" + }, + { + "fallback": "UNKNOWN", + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "FAULTED" + }, + { + "input": false, + "output": "NOT FAULTED" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "path": "this.props.text" + }, + "transforms": [ + { + "fallback": "#000000", + "inputType": "scalar", + "mappings": [ + { + "input": "NOT FAULTED", + "output": "#47FF47" + }, + { + "input": "FAULTED", + "output": "#FF0000" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Name" + }, + "position": { + "basis": "35px", + "shrink": 2 + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_1" + }, + "position": { + "basis": "35px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Info_tab" + }, + "position": { + "tabIndex": 1 + }, + "props": { + "direction": "column", + "style": { + "margin-left": "" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/JR_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button" + }, + "position": { + "basis": "80px", + "grow": 1 + }, + "propConfig": { + "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" + }, + "type": "expr" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#B17B50\",\r\n if(\r\n {this.props.text} \u003d \"ENABLED\",\r\n \"#00FF00\",\r\n if(\r\n {this.props.text} \u003d \"DISABLED\",\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}/Enable_PB" + }, + "transforms": [ + { + "expression": "coalesce({value},{view.params.forceFaultStatus},0)", + "type": "expression" + }, + { + "fallback": "JAM RESET", + "inputType": "scalar", + "mappings": [ + { + "input": 1, + "output": "JAM RESET PRESSED" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + } + }, + "props": { + "image": { + "icon": { + "path": "material/sync_problem" + } + }, + "style": { + "classes": "Background-Styles/Controller" + } + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "Reset Jam" + }, + "position": { + "basis": "35px" + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel", + "padding": "" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_0" + }, + "position": { + "basis": "100px", + "grow": 1 + }, + "props": { + "direction": "column", + "style": { + "gap": 6, + "paddingBottom": 20, + "paddingLeft": 10, + "paddingRight": 10, + "paddingTop": 13 + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Commands_tab" + }, + "position": { + "tabIndex": 2 + }, + "props": { + "direction": "column", + "style": { + "paddingTop": 1 + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "tabs" + }, + "position": { + "grow": 1 + }, + "props": { + "currentTabIndex": 1, + "menuType": "modern", + "tabSize": { + "width": 1000 + }, + "tabStyle": { + "active": { + "classes": "", + "color": "#FFFFFF", + "fontFamily": "Arial", + "fontSize": 14, + "fontWeight": "bold", + "paddingLeft": 10 + }, + "inactive": { + "classes": "", + "color": "#B8B8B8", + "fontFamily": "Arial", + "fontSize": 14, + "fontWeight": "bold", + "paddingLeft": 10 + } + }, + "tabs": [ + "Alarms", + "Info", + "Commands" + ] + }, + "type": "ia.container.tab" + } + ], + "meta": { + "name": "FlexContainer_1" + }, + "position": { + "basis": "670px", + "grow": 1 + }, + "props": { + "style": { + "border-top": "1px solid white", + "gap": "" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "800px", + "grow": 1 + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Buttons/Button-Menu" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/ControlCabinet/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/ControlCabinet/view.json index a197783..cb2563a 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/ControlCabinet/view.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/ControlCabinet/view.json @@ -1,13 +1,9 @@ { "custom": { "alarm_message": null, - "disconnected": true, - "plc": "value", - "priority": 0, - "priority_string": "No active alarms", - "searchId": "value", - "state": 0, - "state_string": "Normal" + "color": "#C2C2C2", + "priority": "No Active Alarms", + "state": "Closed" }, "params": { "forceFaultStatus": null, @@ -27,7 +23,7 @@ ] }, "propConfig": { - "custom.disconnected": { + "custom.color": { "binding": { "config": { "fallbackDelay": 2.5, @@ -36,83 +32,160 @@ "0": "{view.params.tagProps[0]}", "fc": "{session.custom.fc}" }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Color" }, "transforms": [ { - "expression": "!isGood({value})", + "expression": "coalesce({value},{view.params.forceFaultStatus},0)", "type": "expression" + }, + { + "fallback": "#000000", + "inputType": "scalar", + "mappings": [ + { + "input": 0, + "output": "#C2C2C2" + }, + { + "input": 1, + "output": "#FF0000" + }, + { + "input": 2, + "output": "#FFA500" + }, + { + "input": 3, + "output": "#0008FF" + }, + { + "input": 4, + "output": "#00FF00" + }, + { + "input": 5, + "output": "#FFF700" + }, + { + "input": 6, + "output": "#87CEEB" + }, + { + "input": 7, + "output": "#90EE90" + }, + { + "input": 8, + "output": "#964B00" + }, + { + "input": 9, + "output": "#FFFFFF" + }, + { + "input": 10, + "output": "#000000" + }, + { + "input": 11, + "output": "#8B0000" + }, + { + "input": 12, + "output": "#808080" + }, + { + "input": 13, + "output": "#8B8000" + }, + { + "input": 14, + "output": "#006400" + }, + { + "input": 15, + "output": "#FFFFC5" + }, + { + "input": 16, + "output": "#00008B" + }, + { + "input": 17, + "output": "#FF7276" + }, + { + "input": 18, + "output": "#556B2F" + }, + { + "input": 19, + "output": "#B43434" + }, + { + "input": 20, + "output": "#4682B4" + }, + { + "input": 21, + "output": "#FFD700" + } + ], + "outputType": "color", + "type": "map" } ], "type": "tag" }, "persistent": true }, - "custom.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" + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "0": "{view.params.tagProps[0]}", + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Priority" }, "transforms": [ { - "fallback": 0, + "expression": "coalesce({value},{view.params.forceFaultStatus},0)", + "type": "expression" + }, + { + "fallback": null, "inputType": "scalar", "mappings": [ + { + "input": 0, + "output": "No Active Alarms" + }, { "input": 1, - "output": 4 + "output": "High" }, { "input": 2, - "output": 3 + "output": "Medium" }, { "input": 3, - "output": 2 + "output": "Low" }, { "input": 4, - "output": 1 + "output": "Diagnostic" } ], "outputType": "scalar", "type": "map" } ], - "type": "property" - }, - "persistent": true - }, - "custom.priority_string": { - "binding": { - "config": { - "expression": "case({view.custom.state},\r\n1, \"High\",\r\n0, \"No active alarms\",\r\n\"Unknown\")" - }, - "type": "expr" - }, - "persistent": true - }, - "custom.searchId": { - "binding": { - "config": { - "path": "session.custom.searchId" - }, - "type": "property" + "type": "tag" }, "persistent": true }, @@ -125,27 +198,222 @@ "0": "{view.params.tagProps[0]}", "fc": "{session.custom.fc}" }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/State" }, "transforms": [ { "expression": "coalesce({value},{view.params.forceFaultStatus},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" + } + ], + "outputType": "scalar", + "type": "map" } ], "type": "tag" }, "persistent": true }, - "custom.state_string": { - "binding": { - "config": { - "expression": "case({view.custom.state},\r\n1, \"Communication Faulted\",\r\n0, \"Normal\",\r\n\"Unknown\")" - }, - "type": "expr" - }, - "persistent": true - }, "params.forceFaultStatus": { "paramDirection": "input", "persistent": true @@ -183,7 +451,7 @@ "props.elements[0].fill.paint": { "binding": { "config": { - "expression": "if(\r\n {view.custom.disconnected},\r\n \u0027#808080\u0027,\r\n if(\r\n {view.custom.state} \u003d 1,\r\n \u0027#FF0000\u0027,\r\n if(\r\n {view.custom.state} \u003d 0,\r\n \u0027#00D900\u0027,\r\n \u0027#fff700\u0027\r\n )\r\n )\r\n)\r\n" + "expression": "if(\r\n {view.custom.state} \u003d \"Closed\",\r\n \"#000000\",\r\n {view.custom.color}\r\n)\r\n" }, "type": "expr" } diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/Tipper/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/Tipper/view.json index d088376..b245a5c 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/Tipper/view.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Symbol-Views/Equipment-Views/Tipper/view.json @@ -403,6 +403,10 @@ { "input": 48, "output": "Enabled" + }, + { + "input": 49, + "output": "Tipper Faulted" } ], "outputType": "scalar", @@ -517,7 +521,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + "script": "\tsystem.perspective.openDock(\u0027Docked-Eas-TPR\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script"