From bd7fb770f01ed78935d1f9c5e50799b9e592b3dc Mon Sep 17 00:00:00 2001 From: "gigi.mamaladze" Date: Sun, 12 Oct 2025 20:02:52 +0400 Subject: [PATCH] Configure Dumper Statistic --- .../views/Windows/Statistics/view.json | 87 +++++++++++------- .../transaction-groups/Dumpers/ULC1/data.bin | Bin 0 -> 1098 bytes .../Dumpers/ULC1/resource.json | 16 ++++ .../transaction-groups/Dumpers/ULC2/data.bin | Bin 0 -> 1098 bytes .../Dumpers/ULC2/resource.json | 16 ++++ .../transaction-groups/Dumpers/ULC3/data.bin | Bin 0 -> 1243 bytes .../Dumpers/ULC3/resource.json | 16 ++++ .../transaction-groups/Dumpers/ULC4/data.bin | Bin 0 -> 1098 bytes .../Dumpers/ULC4/resource.json | 16 ++++ .../transaction-groups/Dumpers/ULGL1/data.bin | Bin 1280 -> 0 bytes .../transaction-groups/Dumpers/ULGL2/data.bin | Bin 1281 -> 0 bytes .../transaction-groups/Dumpers/ULGL3/data.bin | Bin 1281 -> 0 bytes .../transaction-groups/Dumpers/ULGL4/data.bin | Bin 1324 -> 0 bytes CNO8_SCADA/ignition/event-scripts/data.bin | Bin 3433 -> 3429 bytes .../Dumper/Dumper Lane Count/query.sql | 8 +- .../Dumper/Dumper Lane Percent/query.sql | 8 +- .../Dumper/Dumper Lane Rate/query.sql | 8 +- 17 files changed, 130 insertions(+), 45 deletions(-) create mode 100644 CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC1/data.bin create mode 100644 CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC1/resource.json create mode 100644 CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC2/data.bin create mode 100644 CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC2/resource.json create mode 100644 CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC3/data.bin create mode 100644 CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC3/resource.json create mode 100644 CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC4/data.bin create mode 100644 CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC4/resource.json delete mode 100644 CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULGL1/data.bin delete mode 100644 CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULGL2/data.bin delete mode 100644 CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULGL3/data.bin delete mode 100644 CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULGL4/data.bin diff --git a/CNO8_SCADA/com.inductiveautomation.perspective/views/Windows/Statistics/view.json b/CNO8_SCADA/com.inductiveautomation.perspective/views/Windows/Statistics/view.json index 5d7fdf6..7fa72fb 100644 --- a/CNO8_SCADA/com.inductiveautomation.perspective/views/Windows/Statistics/view.json +++ b/CNO8_SCADA/com.inductiveautomation.perspective/views/Windows/Statistics/view.json @@ -1,7 +1,7 @@ { "custom": {}, "params": { - "Tab_ID": 0, + "Tab_ID": 1, "Table": "Statistics" }, "propConfig": { @@ -1140,7 +1140,7 @@ }, "onChange": { "enabled": null, - "script": "\tpath \u003d \"\"\n\theaders \u003d []\n\tgraph \u003d []\n\t\n\tif self.parent.parent.parent.getChild(\"Aggregation_Mode\").getChild(\"Dropdown_Aggregation_mode\").props.value \u003d\u003d \"Count\":\n\t\tpath \u003d \"Dumper/Dumper Lane Count\"\n\t\theaders \u003d [\"Start Timestamp\",\"Hour\",\"Cycles of ULGL1\",\"Cycles of ULGL2\",\"Cycles of ULGL3\",\"Cycles of ULGL4\"]\n\t\tself.getSibling(\"Dumper_cycles\").props.yAxes[0].value.range.max \u003d \"\"\n\t\n\telif self.parent.parent.parent.getChild(\"Aggregation_Mode\").getChild(\"Dropdown_Aggregation_mode\").props.value \u003d\u003d \"Percentage\":\n\t\tpath \u003d \"Dumper/Dumper Lane Percent\"\n\t\theaders \u003d [\"Start Timestamp\",\"Hour\",\"Cycles of ULGL1 (%)\",\"Cycles of ULGL2 (%)\",\"Cycles of ULGL3 (%)\",\"Cycles of ULGL4 (%)\"]\n\t\tself.getSibling(\"Dumper_cycles\").props.yAxes[0].value.range.max \u003d 100\n\t\n\telse:\n\t\tpath \u003d \"Dumper/Dumper Lane Rate\"\n\t\theaders \u003d [\"Start Timestamp\",\"Hour\",\"Cycles of ULGL1 (cph)\",\"Cycles of ULGL2 (cph)\",\"Cycles of ULGL3 (cph)\",\"Cycles of ULGL4 (cph)\"]\n\t\tself.getSibling(\"Dumper_cycles\").props.yAxes[0].value.range.max \u003d \"\"\n\t\n\tparams \u003d {\n\t\t\"starttime\": self.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.StartDate,\n\t\t\"endtime\": self.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.EndDate,\n\t\t\"dumper\": self.parent.parent.parent.getChild(\"Dumper Drop Down_0\").getChild(\"Dumper\").props.value\n\t}\t\n\t\n\tdata \u003d system.dataset.toPyDataSet(system.db.runNamedQuery(path, params))\n\t\n\tfor row in data:\t\n\t\tdict \u003d {}\n\t\tdict[\u0027Hour\u0027] \u003d row[\u0027Hour\u0027]\n\t\tdict[\u0027ULGL1\u0027] \u003d row[\u0027ULGL1\u0027]\n\t\tdict[\u0027ULGL2\u0027] \u003d row[\u0027ULGL2\u0027]\n\t\tdict[\u0027ULGL3\u0027] \u003d row[\u0027ULGL3\u0027]\n\t\tdict[\u0027ULGL4\u0027] \u003d row[\u0027ULGL4\u0027]\n\t\t\n\t\tgraph.append(dict)\n\t\n\t# GET CHART COMPONENT\n\tdumper_chart \u003d self.getSibling(\"Dumper_cycles\")\n\t\n\t# SOLUTION 1: Replace entire dataSources object (MOST RELIABLE)\n\tdumper_chart.props.dataSources \u003d {\"example\": graph}\n\t\n\t# SOLUTION 2: Update table data\n\tself.props.data \u003d system.dataset.toDataSet(headers, data)" + "script": "\tpath \u003d \"\"\n\theaders \u003d []\n\tgraph \u003d []\n\t\n\tif self.parent.parent.parent.getChild(\"Aggregation_Mode\").getChild(\"Dropdown_Aggregation_mode\").props.value \u003d\u003d \"Count\":\n\t\tpath \u003d \"Dumper/Dumper Lane Count\"\n\t\theaders \u003d [\"Start Timestamp\",\"Hour\",\"Cycles of ULC1\",\"Cycles of ULC2\",\"Cycles of ULC3\",\"Cycles of ULC4\"]\n\t\tself.getSibling(\"Dumper_cycles\").props.yAxes[0].value.range.max \u003d \"\"\n\t\n\telif self.parent.parent.parent.getChild(\"Aggregation_Mode\").getChild(\"Dropdown_Aggregation_mode\").props.value \u003d\u003d \"Percentage\":\n\t\tpath \u003d \"Dumper/Dumper Lane Percent\"\n\t\theaders \u003d [\"Start Timestamp\",\"Hour\",\"Cycles of ULC1 (%)\",\"Cycles of ULC2 (%)\",\"Cycles of ULC3 (%)\",\"Cycles of ULC4 (%)\"]\n\t\tself.getSibling(\"Dumper_cycles\").props.yAxes[0].value.range.max \u003d 100\n\t\n\telse:\n\t\tpath \u003d \"Dumper/Dumper Lane Rate\"\n\t\theaders \u003d [\"Start Timestamp\",\"Hour\",\"Cycles of ULC1 (cph)\",\"Cycles of ULC2 (cph)\",\"Cycles of ULC3 (cph)\",\"Cycles of ULC4 (cph)\"]\n\t\tself.getSibling(\"Dumper_cycles\").props.yAxes[0].value.range.max \u003d \"\"\n\t\n\tparams \u003d {\n\t\t\"starttime\": self.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.StartDate,\n\t\t\"endtime\": self.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.EndDate,\n\t\t\"dumper\": self.parent.parent.parent.getChild(\"Dumper Drop Down_0\").getChild(\"Dumper\").props.value\n\t}\t\n\t\n\tdata \u003d system.dataset.toPyDataSet(system.db.runNamedQuery(path, params))\n\t\n\tfor row in data:\t\n\t\tdict \u003d {}\n\t\tdict[\u0027Hour\u0027] \u003d row[\u0027Hour\u0027]\n\t\tdict[\u0027ULC1\u0027] \u003d row[\u0027ULC1\u0027]\n\t\tdict[\u0027ULC2\u0027] \u003d row[\u0027ULC2\u0027]\n\t\tdict[\u0027ULC3\u0027] \u003d row[\u0027ULC3\u0027]\n\t\tdict[\u0027ULC4\u0027] \u003d row[\u0027ULC4\u0027]\n\t\t\n\t\tgraph.append(dict)\n\t\n\t# GET CHART COMPONENT\n\tdumper_chart \u003d self.getSibling(\"Dumper_cycles\")\n\t\n\t# SOLUTION 1: Replace entire dataSources object (MOST RELIABLE)\n\tdumper_chart.props.dataSources \u003d {\"example\": graph}\n\t\n\t# SOLUTION 2: Update table data\n\tself.props.data \u003d system.dataset.toDataSet(headers, data)" } }, "custom.time": { @@ -1159,7 +1159,7 @@ "boolean": "checkbox", "dateFormat": "MM/DD/YYYY HH:mm:ss", "editable": false, - "field": "ulgl1", + "field": "ulc1", "footer": { "align": "center", "justify": "left", @@ -1227,7 +1227,7 @@ "boolean": "value", "dateFormat": "MM/DD/YYYY HH:mm:ss", "editable": false, - "field": "ulgl1", + "field": "ulc1", "footer": { "align": "center", "justify": "left", @@ -1295,7 +1295,7 @@ "boolean": "checkbox", "dateFormat": "MM/DD/YYYY HH:mm:ss", "editable": false, - "field": "ulgl2", + "field": "ulc2", "footer": { "align": "center", "justify": "left", @@ -1363,7 +1363,7 @@ "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, - "field": "ulgl3", + "field": "ulc3", "footer": { "align": "center", "justify": "left", @@ -1567,7 +1567,7 @@ "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, - "field": "ulg4", + "field": "ulc4", "filter": { "boolean": { "condition": "" @@ -1659,37 +1659,49 @@ "$": [ "ds", 192, - 1758706866228 + 1760284942576 ], "$columns": [ { - "data": [], + "data": [ + "2025-10-12 19:00" + ], "name": "Start Timestamp", "type": "String" }, { - "data": [], + "data": [ + "H1" + ], "name": "Hour", "type": "String" }, { - "data": [], - "name": "Cycles of ULGL1 (%)", + "data": [ + null + ], + "name": "Cycles of ULC1 (%)", "type": "String" }, { - "data": [], - "name": "Cycles of ULGL2 (%)", + "data": [ + null + ], + "name": "Cycles of ULC2 (%)", "type": "String" }, { - "data": [], - "name": "Cycles of ULGL3 (%)", + "data": [ + null + ], + "name": "Cycles of ULC3 (%)", "type": "String" }, { - "data": [], - "name": "Cycles of ULGL4 (%)", + "data": [ + null + ], + "name": "Cycles of ULC4 (%)", "type": "String" } ] @@ -1724,7 +1736,15 @@ }, "props": { "dataSources": { - "example": [] + "example": [ + { + "Hour": "H1", + "ULC1": null, + "ULC2": null, + "ULC3": null, + "ULC4": null + } + ] }, "legend": { "enabled": false @@ -1898,7 +1918,7 @@ "y": "" } }, - "name": "ULGL1", + "name": "ULC1", "render": "column", "stepLine": { "appearance": { @@ -1983,7 +2003,7 @@ "cornerRadius": 3, "enabled": true, "pointerLength": 4, - "text": "ULGL1 (#): [bold]{valueY}[/]" + "text": "ULC1 (#): [bold]{valueY}[/]" }, "visible": true, "xAxis": "Hour", @@ -2158,7 +2178,7 @@ "y": "" } }, - "name": "ULGL2", + "name": "ULC2", "render": "column", "stepLine": { "appearance": { @@ -2243,7 +2263,7 @@ "cornerRadius": 3, "enabled": true, "pointerLength": 4, - "text": "ULGL2 (#): [bold]{valueY}[/]" + "text": "ULC2 (#): [bold]{valueY}[/]" }, "visible": true, "xAxis": "Hour", @@ -2418,7 +2438,7 @@ "y": "" } }, - "name": "ULGL3", + "name": "ULC3", "render": "column", "stepLine": { "appearance": { @@ -2503,7 +2523,7 @@ "cornerRadius": 3, "enabled": true, "pointerLength": 4, - "text": "ULGL3 (#): [bold]{valueY}[/]" + "text": "ULC3 (#): [bold]{valueY}[/]" }, "visible": true, "xAxis": "Hour", @@ -2626,7 +2646,7 @@ "y": "" } }, - "name": "ULGL4", + "name": "ULC4", "render": "column", "stepLine": { "appearance": { @@ -2711,7 +2731,7 @@ "cornerRadius": 3, "enabled": true, "pointerLength": 4, - "text": "ULGL4 (#): [bold]{valueY}[/]" + "text": "ULC4 (#): [bold]{valueY}[/]" }, "visible": true, "xAxis": "Hour", @@ -2927,6 +2947,7 @@ } }, "props": { + "currentTabIndex": 1, "menuStyle": { "backgroundColor": "#FFFFFFBD", "fontSize": "1.0vmin", @@ -5472,7 +5493,7 @@ }, "props": { "dismissOnSelect": false, - "formattedValue": "Sep 24, 2025 12:41 PM", + "formattedValue": "Oct 12, 2025 7:02 PM", "formattedValues": { "date": "Mar 26, 2021", "datetime": "Mar 26, 2021 12:00 AM", @@ -5490,9 +5511,9 @@ "$": [ "ts", 192, - 1758706866224 + 1760284943009 ], - "$ts": 1758703266000 + "$ts": 1760281343000 } }, "type": "ia.input.date-time-input" @@ -5643,7 +5664,7 @@ }, "props": { "dismissOnSelect": false, - "formattedValue": "Sep 24, 2025 1:41 PM", + "formattedValue": "Oct 12, 2025 8:02 PM", "formattedValues": { "date": "Mar 29, 2021", "datetime": "Mar 29, 2021 1:37 PM", @@ -5661,9 +5682,9 @@ "$": [ "ts", 192, - 1758706866223 + 1760284943106 ], - "$ts": 1758706866000 + "$ts": 1760284943000 } }, "type": "ia.input.date-time-input" diff --git a/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC1/data.bin b/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC1/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..67855b6ac0e0925011efae1ac6a938ee9c5e47a5 GIT binary patch literal 1098 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 Q6QeolUcNAGKFAPF?aJH$9F(*P-$Z9AQgN3jLb z))!*SZ29+pH>$1tIpm7LY{=2*|U18+)@Bm>7?r z8sM{ft@tnBkVQga8bB9)_k(}LWK2Vp#d=e$O4S>wAy=ga5G>ynv1dmX!3zW<;=7Pg zT5*9xeo4g1@mMO9U>Ai1y7LwoN1iaWh#*%5x%o@IMt?$AHv}dDsMlADFIZ040(nxV z&?0`Y4Bs4)lDPDZ<$F^+6T5*Q%{6|{_)tclEWvGo5Rqp{UV%WF%J(4&fU3}cwG+8> zs;W|94@!knZ;uLmN? zj@dKx{y4@tp*+uSV>w55+W2=J(q<2+J8#T;fTpUXRM;h%@tsj$p%bl#rHrFAFbLrC zMEC3w*2_1$mLnXRiuQGa{3(Km+{2_ZtC zmJqzKMH5ErufEooLDMMugaF$C_>)V6`_$4AJSH!-2 zsX_+^Zrm9~0T;V3ZEkT*6&Rie9q7$O&4FP^C0OjL9%>)gg`&Ui)Y|M>+te-QSg0NS zSQg^j8u9SoRqLZ=fVO3!FdX68YhlJbS7cn`)54NcKSIzpe-ALpFGv@P9lhUEN3loP znu%RLlx1<-T3P{(1uPiTRo(n8f)1WyWXF;UvkP6jG4pHG{F4N7S!_jQqk9_`WymYV ziySA{Z2JApQf29`c2}=T4LY%J`FZh5VX{>D?pCTcYI36?H|t7;zsohY5?gzGHoH(a z;$^0|%dCCCE|WGGV-ze>%4V#Q%g$zYkn&PiGb;Inmjkan0`K({?u0;LRU5WH^@5h6DlYl&E_b(aWo3rq(m4ojt zVFuYY(JskWy7(0>ca{S)b|yfh*!1UC&O%^Qj#A-!ys3TR4f+)E#)m`q#c!FPJUr5$Dj_{P@JQmX?FI4^c|N>JF&g(Qxu?>VN3k#OMtN=HpYldpQRQcgMoU zTIhP*NtX*%1E}vH=>z6ror{5~aV$*nc1^hmHG#^@-*`9~X_pgu%~K+;4+9K45C2EZ z$r4a6DmBT+p4M@M*e=)+@FcI_U#?zd9Si5xnvg)xhJn2)m@}e(@d>+n{U2@`^iY!@ F008CtW9a|@ literal 0 HcmV?d00001 diff --git a/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC3/resource.json b/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC3/resource.json new file mode 100644 index 0000000..10c1c3a --- /dev/null +++ b/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC3/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModification": { + "actor": "admin", + "timestamp": "2025-10-12T15:43:43Z" + }, + "lastModificationSignature": "ea17210d5fcdc9ef6529f51f389e4a8bee9b07605100c960bce054651c95cf10" + } +} \ No newline at end of file diff --git a/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC4/data.bin b/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC4/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..cf9c6ef97881619076f03498682516269637e795 GIT binary patch literal 1098 zcmV-Q1hxAgiwFP!00000|J7O9lG-{Dea?J^OYbq5VG<@|oMLPbp)xE5CY4kw^pvGw%2 z0p4pjYViFha%dz?3G~qKfczt;V;Zs|*YD+8wRTr+D79(>NKW9%*q_7>#d8E>8hDU0 zS$U2laY@Z7$yjETVh=?WdSMfcVqfYzR8ne^a{sP=`>v))ZPSvt1)$x$QUl3xqb4Y` zGKCHe$RhgX%1p##Z=ArN;+fngK^*Ghp6g+XUOST41QDVGNPhr{DODaKN`R)aU(JZU zkh!W>_=8$u(wn15zyv5p(Q<5=OL*pEakF&DLllPTV7bd4m%0{u;JOTICMJr?8;pjF6C2a)*nB>=to8%RT;)qD5^d5ANuLnR~%OfPnw_#G`-(@>a@p0 z)37_1*&QV~r;_KzZ7o7H$p*jnAscp&(K$Eo1WmQ7TH%*;#XY^+E{b?c}9LObX98c{n_sTiGWu%1cYq=Hc*^C;)&ZkbV zZCkCjZJ1Aa(q9UrUFC$DWwI8aOS8LcJ18@W&u<5%fW&6y)8rw4&85&|=rAZ!A>1 zR1M*8F=?FEha^RQ77s{`yv2P9vXmA`p8+vr3n#q5HU+v;YL2tJmXN%}{Zc6ZYG~#h z`E=wE9MWhW${S$AO+F$)gAYKO)rd|~LXnwl1W*7Lq48h3ifK3)p(O^-yTY`gW+l7-#x zDVx}*yhY}h7ZsV{`0mx<_64p6th$X5VSDO5wQcaMpIExelIEaJ<3jz|ik8~h*yZ&t z5!}^+6^CCUUL;&Bdi3U@4m7JZY@3#Cw5*nGeHoZnynCphx_ijBWq%&zyAI~mVyhRK@v}RY#dZ)nC0$6~j#?3CF`4t5oP0(&_uMhXP!~S?+o1aa6Y<2oQ`{}vW zzMccWx5vW9d!KsJ0$moW2GG_ZnLW-h<7!}P919aAG1^>M&qe4SXkz&r^~Xc~dNS|+ zl+5cwf}!#Ff8?A}1=>}WCgs>ub%7Ayf*%1-`g;9x`Ksveo3gbgqR^i}GRYejir7!` QPndS|AA|5QU^^QC0G2N&1poj5 literal 0 HcmV?d00001 diff --git a/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC4/resource.json b/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC4/resource.json new file mode 100644 index 0000000..7b00ccd --- /dev/null +++ b/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULC4/resource.json @@ -0,0 +1,16 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "data.bin" + ], + "attributes": { + "lastModification": { + "actor": "admin", + "timestamp": "2025-10-12T15:43:21Z" + }, + "lastModificationSignature": "5ecf14b27628aceb2e660ed1f6861004d372c7ca64f69591bd804201adeae692" + } +} \ No newline at end of file diff --git a/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULGL1/data.bin b/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULGL1/data.bin deleted file mode 100644 index b84652cb996eddc4773cb7ee60e27638f75f57bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1280 zcmV+b1^@aViwFP!00000|J7MrbD~HTeolS`#rtqkljsDQGC*8wy{%$qrna`I4z#9c zxfp1i_1|xIqXZR*8Z%>FMBwzfeCIperyJ$Vf1b-NU>KpmZ}PGr@f`H+z(M}3$xqDt zPj&u_dZ`4DKcI~xZW;m){tUu@g>+0^kcC=9s7RG7sV-NfI?vgGCm`R6ZHyKW#5nK( zCbGf;MeLHAlasN;C`KNPF!1J0{ws92F`RR<#L11%a_w`q!L<#OqZWAe@xi#xaM)gtW zq0?_$W~*)K#{DMgPlZt#`|}{mEdx2X4DyB-*2B^95Ef%FBY}XK4yP!2nX5VLhYm2H zp&v-%wJ|SnpetaaAQDnlssjDkW7(_n#|4qAmm>v!7X&T@J}(x6T%M&httz}4yE9kb zTB*u(jlfTqHOlLKs$w&Zd(_6J#n&oiCC#9I1IC0dl<^GQmTki*8ll+}jtIixX}5d@C)HAEN|+Aq%4Z^h17Kp&6o5Y0=mJF=(~dr_iZxC0TgiSfN`o+)0eGK+Dd z(`Y4`O+Qpv$-I8D{3iw$ROu@1f5pH>Qv{vFQjsBs0cmb%_*D}AQ3jbU+A=us)&aQ0 z+J)lBu3H#3dH-yyvUF3usgdmt=@y@haz|yUEmgj`lH{vOU6QJ`Yei(w3WF7sXbWK% zgZHP=n@XE-sD*Ke9^*2YUs>5y;DXRgde}H*W?x(1wzOti0k&Ydz@G`43!;cvu<2FZ zH$LVI*%PmO>K47%HhoJpmU>s5x`Pql_K4Nfu3H~%CLIj5F$@j_QjF%D7AojGLB#VT_ z3%CqI(L{5yg%KxRO}1pq>ZKXfe%Oo!v~KpbV`uIVGKW5?UMhmkQ@1! zp03c#!I2fsoqKI}PP8jrN2s1?+pyNRDxk8BV1D=o;(5aPq6Z&g)OgiwjoOB3=`E8K z@b{r{#%CC{W6vmu-|C$+zE^L;w{jYMcLj6AwuN>@wx)|e;c}-XozX7{ zq>8OzZWlD8n|2hDod{=6kvHTs!W%F4Jw?B!Jh|%{IW+l==jYc4o}V*l9rm%svX{0C zw?Da@1gjffHNF|z#Ow_EmeHrM>1PAk&7qJb?ZIggs`F}lG?)yn7o6_9t@inRn5iF% z5^XeUNxyMgs2aS=mcQ{}GSbec@*2lfUJrx_=y&f?bF##%XEim+hkn~*2u-@}ZtmfF q0Y2&DmxrrId0&x>7MlnI-vObsX_zS@KgkDq_40qV;wb0B9{>Qd1a?&b diff --git a/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULGL2/data.bin b/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULGL2/data.bin deleted file mode 100644 index d3dccac84654535f29cb961e6f16a3aa1bb4614d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1281 zcmV+c1^)UUiwFP!00000|J7MrbD~HTeolS`#ruG$iDrUK86>W?-WD-4Q(Ie92U^p! z+yafW{`>82l%N7pV`j{Y2%J8b?|i5GbR&QH&vm#33?t-wEnX5TJO@3?w~;q*@l)ge zQi#i5M$p3 zn8*qX6tPQcPD;iSqZqj`!oUq${8wmm6Buw(g_Ev7*Xp0IYFt+{IBJ1cE-z%Cvz(~K z7g?DB3;W?RdUgaN;*uwp@6FI$=!SkAsO&%0Llk|oIJd<|5RUC_2 zI~AjB9s!Th zx>H^2m_0)qOcI<^$+yLAECXm~gMaZM8}^XUc_Z&3oGBGqq?a_~JEIKNUu0?9YQJw+y7*GRPZVSPw_XLs*Q#oCE^q9XLbD%UsP_KRN&d z8v21GUK?|L8#)3e3L+s@rO42WU6#EXe_Rl`dO1?ycfRjH;PGN1$mLmD)2hlVu`_q7 zTPszWE*<=2S);t(rz$qnxJPYlT70cSR?-aWH(*TYLK)A%ZCe(MA|1`2a6}M(FOx}H zv&Pc&>JZrG*AQV?XumjDzZE-e0X;miLKKu@cVtl~_M$|+a0en}5#xK=JX5?_WftQ^ zr_pLMn|`RUl6n1P`A-ZisM1y1|B8WwW(eAer6NNN1Jc~k@M|ReqYN@zv}Lg2tqpLA zwF}vc9j7pC^8VRUq)MaKsFUpu=@y@haz|yUEk(L+Hmdc;&2{yvS(iojtT0$HiM9}S z(SLs$y{WVbhuRp2=rJyX`IVJT0S*Y=q=$_|X7;u9ZA)vW6<`aN1H8GQIv|RO1&dyl zedA-kkUjCbr*6}Gbpn2fYfp!T}IE>*3t6lQ{6>=jF z)6*4tIXJSSxpS}W&WUz~>j;$-Z5!75Rs~eH5zG(2Ks--4U-aN3j5@CvZM~}*W~XhC z0{%YM&iD+Ye(V`Wb{_uqAYY{*58H!t#`o$?_*PGY@2+5u*tXEF$kuf6CtU8dq;vWO zfmE^S2UbBdx@kui*@`e-^fUvRqbx4Y-_VWxQ~ zO0?0aC;i50p}OG}w){;-Q(Zlu%DXwH@&+J8pmX;gH78Yg<*cSA>CkU`454Yi+s{2* rFTf{#{PJ-1DDNwB(P9%};MpLwHw`mI82l%N7pV`j{Y2%J8b?|i5GbR&QL&vm#Z3?t-wZC(;8JO@3?w~@DK^E2cA zbCdt7T*?09cWB{=n}@)KKm71tAsy2cB%$6Cs+H<>r72Y_O`fxSS3sT}TNo`Nh_UYi zOk{;6ir6JJCnaNvQH)#|Vc-UB{u{KpDGWHN!bzXYnqmJ_x4 zA}e!XVLx0&&yGMuT=K;7y*XM4-O!H%mHnrBh@#IH=eGF>;xWKaJV%sDw-F9`MJB(B z7P|p)RTk-uEE4J6QK3%+FoMx~Y>`W7;UV^C?T`yG2-3mAfZVQityJG}2-HNF`S@zI zZ%|zt%6G5?LX43k3_!4!Pn~&r`5TCyG6Jc}AjV8l^>%bSO5c8>xN^vD^A%oEN5lJG zcQ(;AvuEgoX@YYq`L?)?RRHa5@Gm}O!yXbkZ{D;?1y3a6|@# zAy}PA&mM;Enw^{jX?bK-pHBOX-mJc#P2__EIfsqoslDf3F~|3e6p;NzZo_(#QEk$D z=ncE3(dn9+e!ornb754*{yd0s%RtI4gS_E|^>A`LgvA&vNFZRL!8uA^=4#IRp#cnN z=tq)xW6bq!=m?l7h=f#?B112BS@vrDX+h-bAM+D*bGMS_` zYb;Ig1OnUq79tD_?HA|jmtvv=RAh)@K$;sGevO2Gl0jyRwhT7BwE-@% z_DS|)$0-b(ynnV7snV!5>SVh^y2a$1q66$UFN(H6ok z`tMJpHJ;r4)zp}C^zyYC~^ssTr%)Yk1?P$%k0&Kx@fVU7-2SgFEV9~2` zXnf2UvM1j3)E#=SZu^#KEcLE9bw?w<>k+G`eYZZ^Ogb8?Qy4B`STgNU5{&z5LF;_U z(WTvA`C3u?fNKRw9NlQLgOu{r{XOj%Epw`Nv<}+^jVGgro~BR!nXV$DK^&-qiX;*i zFX74$MFRz73nR|@YR!~PqcJqz5#l1U?`UbPqf_&@Mp=hcWzMwM+iLLT=z!_MH6@x6W%zSZ;KyDyj{wkxzRvNK)$4p)0E>4JVi zAXRMofmP6qZrhPXb|RcPMc$In2yeYO^c4Mu^5m|s=g{OAo}b?wd4A5Iwb{oO(^^>$ z-2LQo7OWb)qW`I@Gov>en);B!rd<$XmiT5KW=JR5}ewqd4-{3IXbm8<^&Er-@B!XE$t7}t6M diff --git a/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULGL4/data.bin b/CNO8_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Dumpers/ULGL4/data.bin deleted file mode 100644 index 7e9fbb0b67e9ac67c55a40be34ab34e07797af0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1324 zcmV+{1=IQ;iwFP!00000|J7PsbD~HTeolS`#ruF56Lq3Y86d8;-c~WQTU%RH2U^p! z+yafW{`>826j1>$F%$D5x6|kHolBqYw(;#h$L8iR2$APDc}Xbo9CS_3Lhh`|PxQwx zHU67?-SD1&Kof`DGyo3#=>`7^$(WiT36;7~E|qUfHK|;x@to;70&=a$#Apsdggpmf zLMzNs$S#REDIQCNV&uRO1IKUj-=W2gq0dPrPO5*EDqnBvTwBvQDuI`;uNod_+F_H= zlQIP+_JT$DY72zKA#Y62ouZl04!p=$*gfS#7=1B0r^$y94*`DRIl@%B4{^ZD4e~3i zk>e9p8zOyZh=h83RNxT;j9|DNo2L?*xrp5?6>=a3ell3-k;f&kh2q&ZftnCA9rs%M z2G)h9`~Y(xL>SpZ5BN*^M49!+-$3}1B1l;J5oV0a_k;UE^7V@1$|0-Cmv~tj^dCFz z$w*U;j;{5_G0q9)+w9gCKD5%tuXRY9-6!F^;r9Se~rt%jwHBQzig zz~aR4>|p3Dqm#2CO^-C|)5AW+H_h)?2lBy&oI}R(p}nJCevI!3$qDu~-74ydN7Yg1 zsnc&8daG@y+T&)>p9`a+=+A;EGYzE7G{_pBn-3@3L!uai88HORR5(TP$4t&?Jyd`J zHT}pSUI}wN3)%uE3_>AcB{!fOIm~-E{AosH^5sZ^KX{%Efy;}zAQyXS6;@?lj_jFT z*_x?}c#XhM<~17Ehh)X38xP2hO^N$5WJ%4SegnoNTxi5Ia9gGc!*GOVFE}I!zn93^ zt!ZJ2dq)sh#`geWm@7ZuS09R2+hQwA2<`1r0}or;e(P{uwVq!a?jQy^>UhO<+xpSsf;mSh!Ov{E9zhwdyEd;a8&mqqu&L%y23!}ozdTZ3ybVF_F zB!T}LY8SkRQ8{%FBVC7oJ;=8S$o*FDlJUKL6Tan-!uKx0_rl}%?qq!T7pUD0-B$Z@j?wDJqD0%mO57cu7b>a5 z%dA@&4<;k!a#Bw^_N0;JUJnEas1NUvb&|x(7ge03>_ezM2u-@}ZsuV~4nE22^~>d} itW*EI=_bU$wLoBP3TBMRPy7c8`TBoCpS-tnApiiExr$E! diff --git a/CNO8_SCADA/ignition/event-scripts/data.bin b/CNO8_SCADA/ignition/event-scripts/data.bin index 5fadb5f9022834bd72fbed24f1e7e07c712db471..42a6c96bf5788274e0be6d38a9fc6cef15827ab0 100644 GIT binary patch literal 3429 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