From cbd91276d9820598fb063125bc0fd03221e9aff8 Mon Sep 17 00:00:00 2001 From: "b.makharadze" <81828475+bmidf@users.noreply.github.com> Date: Wed, 28 May 2025 17:46:58 +0400 Subject: [PATCH] Fix Lane Status --- .../views/Windows/Status/view.json | 1831 +++++------------ .../named-query/Status/Lane Status/query.sql | 138 ++ .../Status/Lane Status/resource.json | 46 + 3 files changed, 675 insertions(+), 1340 deletions(-) create mode 100644 MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql create mode 100644 MTN6_SCADA/ignition/named-query/Status/Lane Status/resource.json diff --git a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json index 5a814d7..04f715c 100644 --- a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json +++ b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json @@ -1,10 +1,10 @@ { "custom": { - "currentTab": "Windows/Tabs/Enternet Windows/Enternet" + "currentTab": null }, "params": { - "Tab_ID": null, - "Table": null + "Tab_ID": 1, + "Table": "Status_tab" }, "propConfig": { "custom.currentTab": { @@ -40,7 +40,7 @@ "props": { "defaultSize": { "height": 930, - "width": 1909 + "width": 1905 } }, "root": { @@ -1090,10 +1090,9 @@ "name": "Lane Status" }, "position": { - "height": "100%", + "height": 894, "width": "100%", - "x": -1, - "y": 10 + "x": -1 }, "propConfig": { "props.query": { @@ -1101,153 +1100,16 @@ "config": { "expression": "now(1000)" }, - "enabled": false, "type": "expr" }, "onChange": { "enabled": null, - "script": "\t\n\tfrom system import date\n\t\n\tfrom java.lang import System\n\t\n\tfrom com.inductiveautomation.ignition.common.config import BasicProperty\n\t\n\tfrom com.inductiveautomation.ignition.common.alarming.config import CommonAlarmProperties\n\t\n\tp_tag \u003d BasicProperty(\"Tag\", BasicProperty().getType())\n\tp_jam \u003d BasicProperty(\"Jam\", BasicProperty().getType())\n\tp_full \u003d BasicProperty(\"Full\", BasicProperty().getType())\n\t\n\tdef testRow2(startTime,endTime,lane,count,duration,type):\n\t return {\n\t \"value\":{\n\t\t \"StartTimestamp\": startTime, \n\t\t \"EndTimestamp\": endTime,\n\t\t \"Lane\": lane,\n\t\t \"Count\": count,\n\t\t \"Duration\": duration,\n\t\t \"Type\": type\n\t\t }\n\t } \n\t\n\tdef testRow(startTime,endTime,lane,fullCount,jamCount,fullDuration,jamDuration):\n\t\t return {\n\t\t \"value\":{\n\t\t\t \"StartTimestamp\": startTime, \n\t\t\t \"EndTimestamp\": endTime,\n\t\t\t \"Lane\": lane,\n\t\t\t \"FullCount\": fullCount,\n\t\t\t \"JamCount\": jamCount,\n\t\t\t \"FullDuration\": fullDuration,\n\t\t\t \"JamDuration\": jamDuration\n\t\t\t }\n\t\t } \n \t\t \n\tdata \u003d []\n\t\n\tpar_class \u003d [(\"Jam\",\"\u003d\",\"1\"),(\"Full\",\"\u003d\",\"1\")]\n\t\n\tevents \u003d system.alarm.queryJournal(journalName\u003d\"Journal\", startDate\u003dself.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.StartDate, \n\tendDate\u003dself.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.EndDate,state\u003d[\u0027ActiveUnacked\u0027],any_properties\u003dpar_class, includeData\u003dTrue)\n\t\t\n\t# Get a dict where the key is alarm id and the value is a list of corresponding events.\n\talarms \u003d {}\n\tfor e in events:\n\t\tif e.source in alarms: alarms[e.source].append(e)\n\t\telse: alarms[e.source] \u003d [e]\n\t\t\n\t\n\t# Get the active duration for each alarm id\n\tfor id in alarms:\n\t\tactTime \u003d None\n\t\tclrTime \u003d None\n\t\talarmEvents \u003d alarms[id]\n\t\tcount \u003d 0\n\t\ttimes \u003d []\n\t\tstartCount \u003d 0\n\t\tfor e in alarmEvents:\n\t\t\t# Get active time\n\t\t\td \u003d e.activeData\n\t\t\tif d !\u003d None and d.get(p_tag) !\u003d None:\n\t\t\t\tactTime \u003d d.timestamp\n\t\t\t\tlane \u003d d.get(p_tag)\n\t\t\t\tif d.get(p_jam) !\u003d None:\n\t\t\t\t\ttype \u003d \"Jam\"\n\t\t\t\telse:\n\t\t\t\t\ttype \u003d \"Full\"\n\t\t\t\tlane \u003d lane.replace(\"[Interroll]\",\"\")\n\t\t\t\tfirst \u003d lane.find(\"[\")\n\t\t\t\tsecond \u003d lane.find(\"]\")\n\t\t\t\tlane \u003d \"S1-CH\" + lane[first + 1:second]\n\t\t\t\tcount \u003d count + 1\n\t\t\t\ttimes.append(d.timestamp)\n\t\t\t\tstartCount \u003d 1\t\t\n\t\t\t# Get cleared time\n\t\t\tfindOutsidePeriod \u003d system.db.runQuery(\"SELECT eventtime FROM alarm_events where eventid \u003d \" + \"\u0027\" + str(e.id) + \"\u0027 AND eventtype \u003d 1\",\"MariaDB80\")\n\t\t\tif len(findOutsidePeriod) \u003e 0:\n\t\t\t\tif startCount \u003d\u003d 1:\n\t\t\t\t\ttimes.append(date.toMillis(findOutsidePeriod[0][0]))\n\t\t\t\tclrTime \u003d date.toMillis(findOutsidePeriod[0][0])\n\t\t# Populate Table\n\t\tu \u003d 0\t\t\t\n\t\tduration \u003d 0\n\t\tendTime \u003d \"\"\n\t\tif len(times) \u003e 0:\n\t\t\tif len(times) % 2 \u003d\u003d 0:\n\t\t\t\twhile u \u003c len(times): \n\t\t\t\t\tduration \u003d duration + ((times[u+1] - times[u]) / 1000)\n\t\t\t\t\tu \u003d u + 2\n\t\t\t\tendTime \u003d times[-1]\n\t\t\telse:\n\t\t\t\twhile u \u003c len(times):\n\t\t\t\t\tif u !\u003d len(times) - 1:\n\t\t\t\t\t\tduration \u003d duration + ((times[u+1] - times[u]) / 1000)\n\t\t\t\t\telse:\n\t\t\t\t\t\tduration \u003d duration + ((date.toMillis(date.now()) - times[u]) / 1000)\n\t\t\t\t\tu \u003d u + 2\t\n\t\t\tif actTime !\u003d None:\t\n\t\t\t\tdata.append(testRow2(\n\t\t\t\t#Start Time\t \n\t\t\t\ttimes[0],\n\t\t\t\t#End Time\n\t\t\t\tendTime,\n\t\t\t\t#Lane\n\t\t\t\tlane,\n\t\t\t\t#Count\n\t\t\t\tcount,\n\t\t\t\t#Duration\n\t\t\t\tdate.format(date.addSeconds(date.midnight(date.now()),duration),\"HH:mm:ss\"),\n\t\t\t\t#Type\n\t\t\t\ttype))\n\t\t\n\tdata2 \u003d []\n\t\n\tfor i in range(110):\n\t\tstartTime \u003d \"\"\n\t\tendTime \u003d \"\"\n\t\tlane \u003d \"S3-CH\" + str(i + 1)\n\t\tfullCount \u003d 0\n\t\tjamCount \u003d 0\n\t\tfullDuration \u003d \"00:00:00\"\n\t\tjamDuration \u003d \"00:00:00\"\n\t\talarming \u003d 0\n\t\tjamEndStamp \u003d \"\"\n\t\tfullEndStamp \u003d \"\"\n\t\tjamStartStamp \u003d \"\"\n\t\tfullStartStamp \u003d \"\"\n\t\tfor d in data:\n\t\t\tif d[\"value\"][\"Lane\"] \u003d\u003d \"S1-CH\" + str(i + 1):\n\t\t\t\t\n\t\t\t\tif d[\"value\"][\"Type\"] \u003d\u003d \"Jam\":\n\t\t\t\t\tjamCount \u003d d[\"value\"][\"Count\"]\n\t\t\t\t\tjamDuration \u003d d[\"value\"][\"Duration\"]\n\t\t\t\t\tjamEndStamp \u003d d[\"value\"][\"EndTimestamp\"]\n\t\t\t\t\tjamStartStamp \u003d d[\"value\"][\"StartTimestamp\"]\n\t\t\t\telse:\n\t\t\t\t\tfullCount \u003d d[\"value\"][\"Count\"]\n\t\t\t\t\tfullDuration \u003d d[\"value\"][\"Duration\"]\n\t\t\t\t\tfullEndStamp \u003d d[\"value\"][\"EndTimestamp\"]\n\t\t\t\t\tfullStartStamp \u003d d[\"value\"][\"StartTimestamp\"]\n\t\t\t\tif (jamStartStamp !\u003d \"\" and jamEndStamp \u003d\u003d \"\") or (fullStartStamp !\u003d \"\" and fullEndStamp \u003d\u003d \"\"):\n\t\t\t\t\tendTime \u003d \"\"\n\t\t\t\telse:\n\t\t\t\t\tif (jamEndStamp \u003e fullEndStamp) and jamEndStamp !\u003d \"\":\n\t\t\t\t\t\tendTime \u003d jamEndStamp\n\t\t\t\t\t\tendTime \u003d date.format(date.fromMillis(endTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\t\telif fullEndStamp !\u003d \"\":\t\t\t\n\t\t\t\t\t\tendTime \u003d fullEndStamp\n\t\t\t\t\t\tendTime \u003d date.format(date.fromMillis(endTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\tif jamStartStamp \u003c fullStartStamp:\n\t\t\t\t\tstartTime \u003d jamStartStamp\n\t\t\t\t\tstartTime \u003d date.format(date.fromMillis(startTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\telse:\n\t\t\t\t\tstartTime \u003d fullStartStamp\n\t\t\t\t\tstartTime \u003d date.format(date.fromMillis(startTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\tdata2.append(testRow(\n\t\t\t#Start Time\n\t\t\tstartTime,\n\t\t\tendTime,\n\t\t\tlane,\n\t\t\tfullCount,\n\t\t\tjamCount,\n\t\t\tfullDuration,\n\t\t\tjamDuration))\n\t\t\t\t\t\n\t\t\t\t\n\tself.props.data \u003d data2" + "script": "\tfrom system import date\n\t\n\tdef testRow(lane, fullCount, jamCount, fullDuration, jamDuration):\n\t return {\n\t \"value\": {\n\t \"Lane\": lane,\n\t \"FullCount\": fullCount,\n\t \"JamCount\": jamCount,\n\t \"FullDuration\": fullDuration,\n\t \"JamDuration\": jamDuration\n\t }\n\t }\n\t\n\ttry:\n\t data \u003d system.db.runNamedQuery(\n\t \"Status/Lane Status\",\n\t {\n\t \"startDate\": self.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.StartDate,\n\t \"endDate\": self.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.EndDate\n\t }\n\t )\n\t\n\t result \u003d []\n\t for row in data:\n\t result.append(testRow(\n\t row[\"lane\"],\n\t row[\"full_count\"],\n\t row[\"jam_count\"],\n\t row[\"full_duration\"],\n\t row[\"jam_duration\"]\n\t ))\n\t \n\t self.props.data \u003d result\n\t\n\texcept Exception as e:\n\t system.util.getLogger(\"AlarmScript\").error(\"Error: \" + str(e))\n\t self.props.data \u003d []" } } }, "props": { "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "StartTimestamp", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Start Timestamp" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "EndTimestamp", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "End Timestamp" - }, - "justify": "center", - "number": "value", - "numberFormat": "00:00:00", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "date", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, { "align": "center", "boolean": "value", @@ -1592,1212 +1454,524 @@ "data": [ { "value": { - "EndTimestamp": "", "FullCount": 0, "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH1", - "StartTimestamp": "" + "JamCount": 5, + "JamDuration": "00:00:40", + "Lane": "S02_101CH" } }, { "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH2", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH3", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH4", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH5", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH6", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH7", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH8", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH9", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH10", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH11", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH12", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH13", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH14", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH15", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH16", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH17", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH18", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH19", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH20", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH21", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH22", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH23", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH24", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH25", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH26", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH27", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH28", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH29", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH30", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH31", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH32", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH33", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH34", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH35", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH36", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH37", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH38", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH39", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH40", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH41", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH42", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH43", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH44", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH45", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH46", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH47", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH48", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH49", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH50", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH51", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH52", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH53", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH54", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH55", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH56", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH57", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH58", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH59", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH60", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH61", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH62", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH63", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH64", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH65", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH66", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH67", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH68", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH69", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH70", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH71", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH72", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH73", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH74", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH75", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH76", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH77", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH78", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH79", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH80", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH81", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH82", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH83", - "StartTimestamp": "" + "FullCount": 8, + "FullDuration": "00:01:02", + "JamCount": 8, + "JamDuration": "00:01:16", + "Lane": "S02_102CH" } }, { "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH84", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH85", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH86", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH87", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH88", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH89", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH90", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH91", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH92", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH93", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH94", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH95", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH96", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH97", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH98", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH99", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH100", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH101", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH102", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH103", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH104", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", + "FullCount": 1, + "FullDuration": "00:03:02", "JamCount": 1, - "JamDuration": "00:07:19", - "Lane": "S3-CH105", - "StartTimestamp": "2023-11-06 11:29:53" + "JamDuration": "00:00:08", + "Lane": "S02_103CH" } }, { "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH106", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", + "FullCount": 1, + "FullDuration": "00:03:31", "JamCount": 1, - "JamDuration": "00:07:20", - "Lane": "S3-CH107", - "StartTimestamp": "2023-11-06 11:29:53" + "JamDuration": "00:04:09", + "Lane": "S02_104CH" } }, { "value": { - "EndTimestamp": "", "FullCount": 0, "FullDuration": "00:00:00", "JamCount": 0, "JamDuration": "00:00:00", - "Lane": "S3-CH108", - "StartTimestamp": "" + "Lane": "S02_105CH" } }, { "value": { - "EndTimestamp": "", "FullCount": 0, "FullDuration": "00:00:00", "JamCount": 0, "JamDuration": "00:00:00", - "Lane": "S3-CH109", - "StartTimestamp": "" + "Lane": "S02_106CH" } }, { "value": { - "EndTimestamp": "", "FullCount": 0, "FullDuration": "00:00:00", "JamCount": 0, "JamDuration": "00:00:00", - "Lane": "S3-CH110", - "StartTimestamp": "" + "Lane": "S02_107CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_108CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_109CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_110CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_111CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_112CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_113CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_114CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_115CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_116CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_117CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_118CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_119CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_120CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_121CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_122CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_123CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_124CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_125CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_126CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_127CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_128CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_129CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_201CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_202CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_203CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_204CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_205CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_206CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_207CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_208CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_209CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_210CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_211CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_212CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_213CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_214CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_215CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_216CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_217CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_218CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_219CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_220CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_221CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_222CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_223CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_224CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_225CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_226CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_227CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_228CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_229CH" } } ], @@ -2816,34 +1990,11 @@ 100 ] }, - "query": { - "$": [ - "ts", - 192, - 1748247880155 - ], - "$ts": 1748247880155 - }, "rows": { "style": { "textAlign": "center" } }, - "selection": { - "data": [ - { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH16", - "StartTimestamp": "" - } - ], - "selectedColumn": "FullCount", - "selectedRow": 15 - }, "virtualized": false }, "type": "ia.display.table" @@ -4740,7 +3891,7 @@ }, "props": { "dismissOnSelect": false, - "formattedValue": "May 26, 2025 10:07 AM", + "formattedValue": "May 28, 2025 5:12 PM", "formattedValues": { "date": "Mar 26, 2021", "datetime": "Mar 26, 2021 12:00 AM", @@ -4750,9 +3901,9 @@ "$": [ "ts", 192, - 1748241439441 + 1748439758604 ], - "$ts": 1748239639000 + "$ts": 1748437958000 } }, "type": "ia.input.date-time-input" @@ -4900,7 +4051,7 @@ }, "props": { "dismissOnSelect": false, - "formattedValue": "May 26, 2025 10:37 AM", + "formattedValue": "May 28, 2025 5:42 PM", "formattedValues": { "date": "Mar 29, 2021", "datetime": "Mar 29, 2021 1:37 PM", @@ -4910,9 +4061,9 @@ "$": [ "ts", 192, - 1748241439441 + 1748439758604 ], - "$ts": 1748241439000 + "$ts": 1748439758000 } }, "type": "ia.input.date-time-input" diff --git a/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql new file mode 100644 index 0000000..001fc15 --- /dev/null +++ b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql @@ -0,0 +1,138 @@ +WITH DesiredLanes AS ( + SELECT lane_number + FROM ( + SELECT 101 + n AS lane_number FROM ( + SELECT a.N + b.N * 10 AS n + FROM (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a, + (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2) b + ) numbers WHERE n <= 28 -- 101 to 129 + UNION + SELECT 201 + n FROM ( + SELECT a.N + b.N * 10 AS n + FROM (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a, + (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2) b + ) numbers WHERE n <= 28 -- 201 to 229 + ) lanes +), +AlarmData AS ( + SELECT DISTINCT + ae.id AS record_id, + ae.eventid AS event_uuid, + ae.source, + ae.eventtime AS active_time, + (SELECT MIN(eventtime) + FROM alarm_events ae2 + WHERE ae2.eventid = ae.eventid + AND ae2.eventtype = 1 + AND ae2.eventtime >= ae.eventtime + ) AS clear_time + FROM alarm_events ae + WHERE + ae.eventtime BETWEEN :startDate AND :endDate + AND ae.eventtype = 0 + AND (ae.source LIKE '%Chute%' OR ae.source LIKE '%ChuteStatus%') +), +LaneMapping AS ( + SELECT + id AS record_id, + strvalue AS tag_value, + CASE + WHEN strvalue LIKE '%Chute[%' THEN + CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, + LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) + WHEN strvalue LIKE '%Chute[_%' THEN + CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) + WHEN strvalue LIKE '%Chute%' THEN + CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) + ELSE NULL + END AS plc_index, + CASE + WHEN strvalue LIKE '%Chute[%' THEN + CASE + WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, + LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) BETWEEN 1 AND 29 + THEN 101 + (CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, + LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) - 1) + WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, + LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) BETWEEN 30 AND 59 + THEN 201 + (CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, + LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) - 31) + ELSE NULL + END + WHEN strvalue LIKE '%Chute[_%' THEN + CASE + WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) BETWEEN 1 AND 29 + THEN 101 + (CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) - 1) + WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) BETWEEN 30 AND 59 + THEN 201 + (CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) - 31) + ELSE NULL + END + WHEN strvalue LIKE '%Chute%' THEN + CASE + WHEN CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) BETWEEN 1 AND 29 + THEN 101 + (CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) - 1) + WHEN CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) BETWEEN 30 AND 59 + THEN 201 + (CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) - 31) + ELSE NULL + END + ELSE NULL + END AS lane_number + FROM alarm_event_data + WHERE propname = 'Tag' AND strvalue LIKE '%Chute%' +), +-- Pre-aggregate jam and full events separately to avoid cross-joins +JamEvents AS ( + SELECT + lm.lane_number, + ad.event_uuid, + ad.active_time, + ad.clear_time + FROM LaneMapping lm + INNER JOIN AlarmData ad ON lm.record_id = ad.record_id + INNER JOIN alarm_event_data aed ON ad.record_id = aed.id + WHERE aed.propname = 'Jam' AND aed.strvalue = '1' +), +FullEvents AS ( + SELECT + lm.lane_number, + ad.event_uuid, + ad.active_time, + ad.clear_time + FROM LaneMapping lm + INNER JOIN AlarmData ad ON lm.record_id = ad.record_id + INNER JOIN alarm_event_data aed ON ad.record_id = aed.id + WHERE aed.propname = 'Full' AND aed.strvalue = '1' +), +Aggregated AS ( + SELECT + CONCAT('S02_', dl.lane_number, 'CH') AS lane, + COALESCE(j.jam_count, 0) AS jam_count, + COALESCE(f.full_count, 0) AS full_count, + COALESCE(j.jam_duration_seconds, 0) AS jam_duration_seconds, + COALESCE(f.full_duration_seconds, 0) AS full_duration_seconds + FROM DesiredLanes dl + LEFT JOIN ( + SELECT + lane_number, + COUNT(DISTINCT event_uuid) AS jam_count, + SUM(TIMESTAMPDIFF(SECOND, active_time, COALESCE(clear_time, NOW()))) AS jam_duration_seconds + FROM JamEvents + GROUP BY lane_number + ) j ON dl.lane_number = j.lane_number + LEFT JOIN ( + SELECT + lane_number, + COUNT(DISTINCT event_uuid) AS full_count, + SUM(TIMESTAMPDIFF(SECOND, active_time, COALESCE(clear_time, NOW()))) AS full_duration_seconds + FROM FullEvents + GROUP BY lane_number + ) f ON dl.lane_number = f.lane_number +) +SELECT + lane, + jam_count, + full_count, + COALESCE(SEC_TO_TIME(jam_duration_seconds), '00:00:00') AS jam_duration, + COALESCE(SEC_TO_TIME(full_duration_seconds), '00:00:00') AS full_duration +FROM Aggregated +ORDER BY lane; \ No newline at end of file diff --git a/MTN6_SCADA/ignition/named-query/Status/Lane Status/resource.json b/MTN6_SCADA/ignition/named-query/Status/Lane Status/resource.json new file mode 100644 index 0000000..90bab96 --- /dev/null +++ b/MTN6_SCADA/ignition/named-query/Status/Lane Status/resource.json @@ -0,0 +1,46 @@ +{ + "scope": "DG", + "version": 2, + "restricted": false, + "overridable": true, + "files": [ + "query.sql" + ], + "attributes": { + "useMaxReturnSize": false, + "autoBatchEnabled": false, + "fallbackValue": "", + "maxReturnSize": 100, + "cacheUnit": "SEC", + "type": "Query", + "enabled": true, + "cacheAmount": 1, + "cacheEnabled": false, + "database": "MariaDB", + "fallbackEnabled": false, + "lastModificationSignature": "85e4db79c801fef9b6b254b5156b0eac5a3f6c66ca2fea85c0616ce67592448a", + "permissions": [ + { + "zone": "", + "role": "" + } + ], + "lastModification": { + "actor": "admin", + "timestamp": "2025-05-28T13:42:10Z" + }, + "syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider", + "parameters": [ + { + "type": "Parameter", + "identifier": "startDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "endDate", + "sqlType": 8 + } + ] + } +} \ No newline at end of file