some changes

This commit is contained in:
Salijoghli 2026-03-03 16:49:04 +04:00
parent f4e0d1ea45
commit 5cbab37af2
33 changed files with 13513 additions and 15747 deletions

4999
IMAGE_SERVER/MCM08.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 238 KiB

View File

@ -1,5 +1,16 @@
{ {
"custom": {}, "custom": {
"devices_filter": {
"show_buttons": true,
"show_camera_jams": true,
"show_fio": true,
"show_gateways": true,
"show_inductions": true,
"show_pes": true,
"show_safety": true
},
"fc": "TPA8"
},
"propConfig": { "propConfig": {
"props.auth": { "props.auth": {
"access": "PRIVATE", "access": "PRIVATE",
@ -63,11 +74,11 @@
} }
}, },
"props": { "props": {
"address": "[0:0:0:0:0:0:0:1]", "address": "127.0.0.1",
"device": {}, "device": {},
"geolocation": {}, "geolocation": {},
"locale": "en-US", "locale": "en-US",
"offline": {}, "offline": {},
"timeZoneId": "America/Los_Angeles" "timeZoneId": "Asia/Tbilisi"
} }
} }

View File

@ -7,10 +7,10 @@
"props.json" "props.json"
], ],
"attributes": { "attributes": {
"lastModificationSignature": "53ccc198eeaf547575e3fcdf55ffb434c1c05d83ab7de48f1c6092fd4c8ea970", "lastModificationSignature": "553f31339fe7c5e99de5476c70406e5b0429c370a5e0c5b5446404efd299537d",
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2026-01-29T12:09:46Z" "timestamp": "2026-03-03T11:29:46Z"
} }
} }
} }

View File

@ -8,10 +8,10 @@
"thumbnail.png" "thumbnail.png"
], ],
"attributes": { "attributes": {
"lastModificationSignature": "91fd69522cf3ea7b0b9cadf02fbbdd7adb47227c83b609d2dacd6ecb0b54d564", "lastModificationSignature": "5a1e4db5627e6d877a4b4157b9aefaee8e8d436dc36511b6cd51a8d8bf325124",
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2026-01-17T18:10:47Z" "timestamp": "2026-03-03T11:48:03Z"
} }
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File

@ -25,13 +25,59 @@
} }
} }
}, },
"params": {}, "params": {
"colours": {
"Fallback": "#00FF00",
"colour_impaired": false,
"state0": "#8C8C8C",
"state1": "#FF0000",
"state2": "#FF8000",
"state3": "#FFFF00",
"state4": "#007EFC",
"state5": "#00CC00",
"state6": "#CCCCFF"
},
"command_auth": {
"auth_time": {
"$": [
"ts",
192,
1772537304592
],
"$ts": 1674052360661
},
"auth_timeout": 0,
"enabled": false,
"timeout_sp": 500
},
"devices_filter": {
"show_buttons": true,
"show_camera_jams": true,
"show_fio": true,
"show_gateways": true,
"show_inductions": true,
"show_pes": true,
"show_safety": true
}
},
"propConfig": { "propConfig": {
"custom.Update": { "custom.Update": {
"persistent": true "persistent": true
}, },
"custom.activityLogger": { "custom.activityLogger": {
"persistent": true "persistent": true
},
"params.colours": {
"paramDirection": "input",
"persistent": true
},
"params.command_auth": {
"paramDirection": "input",
"persistent": true
},
"params.devices_filter": {
"paramDirection": "input",
"persistent": true
} }
}, },
"props": { "props": {
@ -211,12 +257,36 @@
"value": "MCM07" "value": "MCM07"
}, },
{ {
"label": "SMC", "label": "MCM08",
"value": "SMC" "value": "MCM08"
}, },
{ {
"label": "CMC", "label": "MCM09",
"value": "CMC" "value": "MCM09"
},
{
"label": "MCM10",
"value": "MCM10"
},
{
"label": "MCM11",
"value": "MCM11"
},
{
"label": "MCM12",
"value": "MCM12"
},
{
"label": "MCM13",
"value": "MCM13"
},
{
"label": "MCM14",
"value": "MCM14"
},
{
"label": "MCM15",
"value": "MCM15"
} }
], ],
"placeholder": { "placeholder": {
@ -1212,17 +1282,17 @@
"$": [ "$": [
"ts", "ts",
192, 192,
1768672910731 1772537550931
], ],
"$ts": 1768672910729 "$ts": 1772537550931
}, },
"startDate": { "startDate": {
"$": [ "$": [
"ts", "ts",
192, 192,
1768672910730 1772537550931
], ],
"$ts": 1768671110729 "$ts": 1772535750931
} }
}, },
"meta": { "meta": {
@ -1389,7 +1459,7 @@
} }
}, },
"props": { "props": {
"formattedValue": "Jan 17, 2026 9:23 AM", "formattedValue": "Mar 3, 2026 3:02 PM",
"minDate": { "minDate": {
"$": [ "$": [
"ts", "ts",
@ -1481,7 +1551,7 @@
} }
}, },
"props": { "props": {
"formattedValue": "Jan 17, 2026 9:53 AM", "formattedValue": "Mar 3, 2026 3:32 PM",
"style": { "style": {
"margin": 15 "margin": 15
}, },
@ -1489,9 +1559,9 @@
"$": [ "$": [
"ts", "ts",
192, 192,
1768672910731 1772537550931
], ],
"$ts": 1768672910729 "$ts": 1772537550931
} }
}, },
"scripts": { "scripts": {
@ -1657,12 +1727,36 @@
"value": "MCM07" "value": "MCM07"
}, },
{ {
"label": "SMC", "label": "MCM08",
"value": "SMC" "value": "MCM08"
}, },
{ {
"label": "CMC", "label": "MCM09",
"value": "CMC" "value": "MCM09"
},
{
"label": "MCM10",
"value": "MCM10"
},
{
"label": "MCM11",
"value": "MCM11"
},
{
"label": "MCM12",
"value": "MCM12"
},
{
"label": "MCM13",
"value": "MCM13"
},
{
"label": "MCM14",
"value": "MCM14"
},
{
"label": "MCM15",
"value": "MCM15"
} }
], ],
"placeholder": { "placeholder": {
@ -3055,7 +3149,7 @@
} }
}, },
"props": { "props": {
"formattedValue": "Dec 12, 2025 4:54 AM", "formattedValue": "Dec 12, 2025 4:54 PM",
"minDate": { "minDate": {
"$": [ "$": [
"ts", "ts",
@ -3147,7 +3241,7 @@
} }
}, },
"props": { "props": {
"formattedValue": "Dec 12, 2025 5:24 AM", "formattedValue": "Dec 12, 2025 5:24 PM",
"style": { "style": {
"margin": 15 "margin": 15
}, },
@ -3333,12 +3427,36 @@
"value": "MCM07" "value": "MCM07"
}, },
{ {
"label": "SMC", "label": "MCM08",
"value": "SMC" "value": "MCM08"
}, },
{ {
"label": "CMC", "label": "MCM09",
"value": "CMC" "value": "MCM09"
},
{
"label": "MCM10",
"value": "MCM10"
},
{
"label": "MCM11",
"value": "MCM11"
},
{
"label": "MCM12",
"value": "MCM12"
},
{
"label": "MCM13",
"value": "MCM13"
},
{
"label": "MCM14",
"value": "MCM14"
},
{
"label": "MCM15",
"value": "MCM15"
} }
], ],
"placeholder": { "placeholder": {

View File

@ -8,10 +8,10 @@
"thumbnail.png" "thumbnail.png"
], ],
"attributes": { "attributes": {
"lastModificationSignature": "8fdfeac828e3e99f1e9e10d191c3693a5d967acb22ecc3ad16750b969a2e98de", "lastModificationSignature": "7f027393e6dd8b9fee4e9bb4919938ad92255a65c858566975fd9c01bc59734f",
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2026-01-13T09:26:26Z" "timestamp": "2026-03-03T11:49:14Z"
} }
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 49 KiB

View File

@ -136,171 +136,6 @@
"children": [ "children": [
{ {
"children": [ "children": [
{
"children": [
{
"meta": {
"name": "Icon"
},
"position": {
"basis": "58px"
},
"props": {
"color": "#4D9CCE",
"path": "material/menu_book",
"style": {
"margin": "10px",
"marginTop": "50px"
}
},
"type": "ia.display.icon"
},
{
"meta": {
"name": "Label"
},
"position": {
"basis": "100px"
},
"props": {
"text": "User Guide",
"textStyle": {
"color": "#000000",
"fontFamily": "Arial",
"fontSize": "22px",
"fontWeight": "bold",
"marginTop": "",
"textAlign": "center"
}
},
"type": "ia.display.label"
}
],
"custom": {
"buttonid": "help/user_guide"
},
"events": {
"dom": {
"onClick": [
{
"config": {
"script": "\tbuttonid \u003d self.custom.buttonid\n\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
},
{
"config": {
"newTab": true,
"url": "https://w.amazon.com/bin/view/EURME/MAP/Product_Management/SCADA2/Resources/UserGuide"
},
"scope": "C",
"type": "nav"
}
]
}
},
"meta": {
"name": "UserGuideCard"
},
"position": {
"basis": "400px"
},
"props": {
"direction": "column",
"style": {
"backgroundColor": "#F2F3F4",
"classes": "FadeInFast, background, background-none",
"cursor": "pointer",
"marginBottom": "10px",
"marginRight": "50px",
"marginTop": "10px"
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Icon"
},
"position": {
"basis": "58px"
},
"props": {
"color": "#4D9CCE",
"path": "material/developer_mode",
"style": {
"margin": "10px",
"marginTop": "50px"
}
},
"type": "ia.display.icon"
},
{
"meta": {
"name": "Label"
},
"position": {
"basis": "100px"
},
"props": {
"text": "Developer Guide",
"textStyle": {
"color": "#000000",
"fontFamily": "Arial",
"fontSize": "22px",
"fontWeight": "bold",
"textAlign": "center"
}
},
"type": "ia.display.label"
}
],
"custom": {
"buttonid": "help/dev_guide"
},
"events": {
"dom": {
"onClick": [
{
"config": {
"script": "\tbuttonid \u003d self.custom.buttonid\n\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
},
{
"config": {
"newTab": true,
"url": "https://w.amazon.com/bin/view/EURME/MAP/Projects/Amazon_SCADA/Expanding_BU_and_New_Regions_SCADA/AMZL/DeveloperGuide/"
},
"scope": "C",
"type": "nav"
}
]
}
},
"meta": {
"name": "DevelopmentGuideCard"
},
"position": {
"basis": "400px"
},
"props": {
"direction": "column",
"style": {
"backgroundColor": "#F2F3F4",
"classes": "FadeInFast, background, background-none",
"cursor": "pointer",
"marginBottom": "10px",
"marginRight": "50px",
"marginTop": "10px"
}
},
"type": "ia.container.flex"
},
{ {
"children": [ "children": [
{ {
@ -459,29 +294,12 @@
"classes": "FadeInFast, background, background-none", "classes": "FadeInFast, background, background-none",
"cursor": "pointer", "cursor": "pointer",
"marginBottom": "10px", "marginBottom": "10px",
"marginRight": "50px",
"marginTop": "10px" "marginTop": "10px"
} }
}, },
"type": "ia.container.flex" "type": "ia.container.flex"
} },
],
"meta": {
"name": "CardsTopRow"
},
"position": {
"basis": "280px"
},
"props": {
"justify": "center",
"style": {
"marginBottom": "20px",
"marginTop": "20px"
}
},
"type": "ia.container.flex"
},
{
"children": [
{ {
"children": [ "children": [
{ {
@ -575,7 +393,7 @@
}, },
"props": { "props": {
"color": "#4D9CCE", "color": "#4D9CCE",
"path": "material/playlist_add_check", "path": "material/local_library",
"style": { "style": {
"margin": "10px", "margin": "10px",
"marginTop": "50px" "marginTop": "50px"
@ -591,7 +409,7 @@
"basis": "100px" "basis": "100px"
}, },
"props": { "props": {
"text": "Commissioning Tool Guide", "text": "Legend",
"textStyle": { "textStyle": {
"color": "#000000", "color": "#000000",
"fontFamily": "Arial", "fontFamily": "Arial",
@ -604,7 +422,7 @@
} }
], ],
"custom": { "custom": {
"buttonid": "help/commission_guide" "buttonid": "help/symbol_library"
}, },
"events": { "events": {
"dom": { "dom": {
@ -618,8 +436,8 @@
}, },
{ {
"config": { "config": {
"newTab": true, "params": {},
"url": "https://w.amazon.com/bin/view/EURME/MAP/Product_Management/SCADA2/Resources/CommissioningToolUserGuide" "view": "Symbol-Views/Symbol Library"
}, },
"scope": "C", "scope": "C",
"type": "nav" "type": "nav"
@ -628,7 +446,7 @@
} }
}, },
"meta": { "meta": {
"name": "Commissioning Tool guide" "name": "Legend"
}, },
"position": { "position": {
"basis": "400px" "basis": "400px"
@ -657,7 +475,7 @@
}, },
"props": { "props": {
"color": "#4D9CCE", "color": "#4D9CCE",
"path": "material/local_library", "path": "material/remove_red_eye",
"style": { "style": {
"margin": "10px", "margin": "10px",
"marginTop": "50px" "marginTop": "50px"
@ -673,7 +491,7 @@
"basis": "100px" "basis": "100px"
}, },
"props": { "props": {
"text": "Symbol Library", "text": "Banner Q5X Sensors",
"textStyle": { "textStyle": {
"color": "#000000", "color": "#000000",
"fontFamily": "Arial", "fontFamily": "Arial",
@ -701,7 +519,7 @@
{ {
"config": { "config": {
"params": {}, "params": {},
"view": "Symbol-Views/Symbol-Library-Views/Symbol-Icons-View" "view": "Symbol-Views/Banner Q5X Sensors"
}, },
"scope": "C", "scope": "C",
"type": "nav" "type": "nav"
@ -710,7 +528,7 @@
} }
}, },
"meta": { "meta": {
"name": "Symbol Library" "name": "Banner Q5X Sensors"
}, },
"position": { "position": {
"basis": "400px" "basis": "400px"
@ -730,14 +548,15 @@
} }
], ],
"meta": { "meta": {
"name": "CardsBottomRow" "name": "CardsTopRow"
}, },
"position": { "position": {
"basis": "260px" "basis": "280px"
}, },
"props": { "props": {
"justify": "center", "justify": "center",
"style": { "style": {
"marginBottom": "20px",
"marginTop": "20px" "marginTop": "20px"
} }
}, },
@ -752,7 +571,8 @@
"grow": 1 "grow": 1
}, },
"props": { "props": {
"direction": "column" "direction": "column",
"justify": "center"
}, },
"type": "ia.container.flex" "type": "ia.container.flex"
} }

View File

@ -8,10 +8,10 @@
"thumbnail.png" "thumbnail.png"
], ],
"attributes": { "attributes": {
"lastModificationSignature": "4ef9bfde498a99283ddef4b1a9b9965f04f6b0535081fb26a7a0414bdfb3e4e4",
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-11-13T18:09:43Z" "timestamp": "2026-03-03T12:20:08Z"
}, }
"lastModificationSignature": "d66e293388335aba243c1daa698d0d28194334a33d0affa9cbb3930a84008479"
} }
} }

View File

@ -94,7 +94,20 @@
} }
], ],
"meta": { "meta": {
"name": "root" "name": "root",
"tooltip": {
"enabled": true
}
},
"propConfig": {
"meta.tooltip.text": {
"binding": {
"config": {
"expression": "\"Navigate to \" + {view.params.text}"
},
"type": "expr"
}
}
}, },
"props": { "props": {
"alignContent": "flex-start", "alignContent": "flex-start",

View File

@ -8,10 +8,10 @@
"thumbnail.png" "thumbnail.png"
], ],
"attributes": { "attributes": {
"lastModificationSignature": "269e20a8f3a094e4dda533ff27215e4fa75fe23acd0a2ee5c929c30e5304746c",
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-12-01T15:01:01Z" "timestamp": "2026-03-03T11:55:10Z"
}, }
"lastModificationSignature": "fc7017268e23c03b42689598e57983c55ef8d725e2b2e154c751c4e879756941"
} }
} }

View File

@ -172,7 +172,7 @@
"meta.visible": { "meta.visible": {
"binding": { "binding": {
"config": { "config": {
"path": "session.custom.alarm_filter.show_camera_jams" "path": "session.custom.devices_filter.show_camera_jams"
}, },
"type": "property" "type": "property"
} }

View File

@ -0,0 +1,17 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"view.json",
"thumbnail.png"
],
"attributes": {
"lastModificationSignature": "2c853cff8fdba920c45e1cfa31a32c1d0f64d64b9d18f214a4cacffaedc67027",
"lastModification": {
"actor": "admin",
"timestamp": "2026-03-03T11:26:04Z"
}
}
}

View File

@ -8,10 +8,10 @@
"thumbnail.png" "thumbnail.png"
], ],
"attributes": { "attributes": {
"lastModificationSignature": "8d5c9a98fb21b71722d8a5b9f936d44786a3f9a2fb35e21c3d6fa03b3ac9e3bc", "lastModificationSignature": "8362971bd195edce46b53af576682bf6d6e3699bdf91f06192bb10dc1db6c301",
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2026-01-17T17:17:23Z" "timestamp": "2026-03-03T12:30:15Z"
} }
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 130 KiB

View File

@ -8,10 +8,10 @@
"thumbnail.png" "thumbnail.png"
], ],
"attributes": { "attributes": {
"lastModificationSignature": "2fb1ab51ed2efbe2259e19e6986c900cadafe8d372c649dce28c5388cbc02256", "lastModificationSignature": "c38668ff9cc3eddc6cc6db3d8dca1552aad48d9ad33b46df83a45ebd837ef825",
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2026-01-13T10:40:07Z" "timestamp": "2026-03-03T12:02:02Z"
} }
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 KiB

After

Width:  |  Height:  |  Size: 122 KiB

View File

@ -8,10 +8,10 @@
"thumbnail.png" "thumbnail.png"
], ],
"attributes": { "attributes": {
"lastModificationSignature": "7da06415b1dc526ccbf3fe2efa8003d2593b36f0d0af482e740c7195671bf76a",
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-12-23T13:31:13Z" "timestamp": "2026-03-03T12:10:16Z"
}, }
"lastModificationSignature": "b3fd557d14d41050d3b0b92d6fb91f3bfd197441f1886c52225f7e7b765762ed"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -12,7 +12,7 @@
} }
}, },
"params": { "params": {
"Tab_ID": 0, "Tab_ID": 9,
"Table": "Statistics" "Table": "Statistics"
}, },
"propConfig": { "propConfig": {
@ -88555,6 +88555,7 @@
} }
}, },
"props": { "props": {
"currentTabIndex": 9,
"menuStyle": { "menuStyle": {
"backgroundColor": "#FFFFFFBD", "backgroundColor": "#FFFFFFBD",
"fontSize": "1.0vmin", "fontSize": "1.0vmin",
@ -88649,10 +88650,6 @@
{ {
"label": "Percentage", "label": "Percentage",
"value": "Percentage" "value": "Percentage"
},
{
"label": "Rate",
"value": "Rate"
} }
], ],
"style": { "style": {
@ -92376,18 +92373,18 @@
"$": [ "$": [
"ts", "ts",
192, 192,
1766496664067 1772539493002
], ],
"$ts": 1766496664067 "$ts": 1772539492999
}, },
"rollingWindow": 30, "rollingWindow": 30,
"startDate": { "startDate": {
"$": [ "$": [
"ts", "ts",
192, 192,
1766496664067 1772539493001
], ],
"$ts": 1766494875166 "$ts": 1772537692999
} }
}, },
"meta": { "meta": {
@ -92560,7 +92557,7 @@
}, },
"props": { "props": {
"dismissOnSelect": false, "dismissOnSelect": false,
"formattedValue": "Dec 23, 2025 5:01 PM", "formattedValue": "Mar 3, 2026 3:34 PM",
"formattedValues": { "formattedValues": {
"date": "Mar 26, 2021", "date": "Mar 26, 2021",
"datetime": "Mar 26, 2021 12:00 AM", "datetime": "Mar 26, 2021 12:00 AM",
@ -92672,7 +92669,7 @@
}, },
"props": { "props": {
"dismissOnSelect": false, "dismissOnSelect": false,
"formattedValue": "Dec 23, 2025 5:31 PM", "formattedValue": "Mar 3, 2026 4:04 PM",
"formattedValues": { "formattedValues": {
"date": "Mar 29, 2021", "date": "Mar 29, 2021",
"datetime": "Mar 29, 2021 1:37 PM", "datetime": "Mar 29, 2021 1:37 PM",

View File

@ -6,11 +6,12 @@ SELECT
COALESCE(c.Fluid_Inbound_Merge_5,0) + COALESCE(c.Fluid_Inbound_Merge_6,0) + COALESCE(c.Fluid_Inbound_Merge_5,0) + COALESCE(c.Fluid_Inbound_Merge_6,0) +
COALESCE(c.Fluid_Inbound_Merge_7,0) + COALESCE(c.Non_Con_Merge,0) + COALESCE(c.Fluid_Inbound_Merge_7,0) + COALESCE(c.Non_Con_Merge,0) +
COALESCE(c.NCP,0) + COALESCE(c.Bulk_Inbound_MCM04,0) + COALESCE(c.NCP,0) + COALESCE(c.Bulk_Inbound_MCM04,0) +
COALESCE(c.Fluid_Outbound_MCM04,0) + COALESCE(c.Problem_Solve_MCM04,0) + COALESCE(c.Fluid_Outbound_MCM04,0) + COALESCE(c.Problem_Solve_MCM14,0) +
COALESCE(c.Bulk_Inbound_MCM05,0) + COALESCE(c.Fluid_Outbound_MCM05,0) + COALESCE(c.Bulk_Inbound_MCM05,0) + COALESCE(c.Fluid_Outbound_MCM05,0) +
COALESCE(c.Problem_Solve_MCM05,0) + COALESCE(c.NCS1,0) + COALESCE(c.NCS2,0) + COALESCE(c.Problem_Solve_MCM15,0) + COALESCE(c.NCS1,0) + COALESCE(c.NCS2,0) +
COALESCE(c.BYB,0) + COALESCE(c.BYA,0) + COALESCE(c.BYC,0) + COALESCE(c.BYD,0) + COALESCE(c.BYB,0) + COALESCE(c.BYA,0) + COALESCE(c.BYC,0) +
COALESCE(c.Chutes_MCM04,0) + COALESCE(c.Chutes_MCM05,0) AS Total, COALESCE(c.BYD,0) AS Total,
COALESCE(c.Fluid_Inbound_Merge_1,0) AS Fluid_Inbound_Merge_1, COALESCE(c.Fluid_Inbound_Merge_1,0) AS Fluid_Inbound_Merge_1,
COALESCE(c.Fluid_Inbound_Merge_2,0) AS Fluid_Inbound_Merge_2, COALESCE(c.Fluid_Inbound_Merge_2,0) AS Fluid_Inbound_Merge_2,
COALESCE(c.Fluid_Inbound_Merge_3,0) AS Fluid_Inbound_Merge_3, COALESCE(c.Fluid_Inbound_Merge_3,0) AS Fluid_Inbound_Merge_3,
@ -22,18 +23,17 @@ SELECT
COALESCE(c.NCP,0) AS NCP, COALESCE(c.NCP,0) AS NCP,
COALESCE(c.Bulk_Inbound_MCM04,0) AS Bulk_Inbound_MCM04, COALESCE(c.Bulk_Inbound_MCM04,0) AS Bulk_Inbound_MCM04,
COALESCE(c.Fluid_Outbound_MCM04,0) AS Fluid_Outbound_MCM04, COALESCE(c.Fluid_Outbound_MCM04,0) AS Fluid_Outbound_MCM04,
COALESCE(c.Problem_Solve_MCM04,0) AS Problem_Solve_MCM04, COALESCE(c.Problem_Solve_MCM14,0) AS Problem_Solve_MCM14,
COALESCE(c.Bulk_Inbound_MCM05,0) AS Bulk_Inbound_MCM05, COALESCE(c.Bulk_Inbound_MCM05,0) AS Bulk_Inbound_MCM05,
COALESCE(c.Fluid_Outbound_MCM05,0) AS Fluid_Outbound_MCM05, COALESCE(c.Fluid_Outbound_MCM05,0) AS Fluid_Outbound_MCM05,
COALESCE(c.Problem_Solve_MCM05,0) AS Problem_Solve_MCM05, COALESCE(c.Problem_Solve_MCM15,0) AS Problem_Solve_MCM15,
COALESCE(c.NCS1,0) AS NCS1, COALESCE(c.NCS1,0) AS NCS1,
COALESCE(c.NCS2,0) AS NCS2, COALESCE(c.NCS2,0) AS NCS2,
COALESCE(c.BYB,0) AS BYB, COALESCE(c.BYB,0) AS BYB,
COALESCE(c.BYA,0) AS BYA, COALESCE(c.BYA,0) AS BYA,
COALESCE(c.BYC,0) AS BYC, COALESCE(c.BYC,0) AS BYC,
COALESCE(c.BYD,0) AS BYD, COALESCE(c.BYD,0) AS BYD
COALESCE(c.Chutes_MCM04,0) AS Chutes_MCM04,
COALESCE(c.Chutes_MCM05,0) AS Chutes_MCM05
FROM (SELECT 1) AS p FROM (SELECT 1) AS p
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
@ -48,18 +48,16 @@ LEFT JOIN (
SUM(NCP = 1) AS NCP, SUM(NCP = 1) AS NCP,
SUM(Bulk_Inbound_MCM04 = 1) AS Bulk_Inbound_MCM04, SUM(Bulk_Inbound_MCM04 = 1) AS Bulk_Inbound_MCM04,
SUM(Fluid_Outbound_MCM04 = 1) AS Fluid_Outbound_MCM04, SUM(Fluid_Outbound_MCM04 = 1) AS Fluid_Outbound_MCM04,
SUM(Problem_Solve_MCM04 = 1) AS Problem_Solve_MCM04, SUM(Problem_Solve_MCM14 = 1) AS Problem_Solve_MCM14,
SUM(Bulk_Inbound_MCM05 = 1) AS Bulk_Inbound_MCM05, SUM(Bulk_Inbound_MCM05 = 1) AS Bulk_Inbound_MCM05,
SUM(Fluid_Outbound_MCM05 = 1) AS Fluid_Outbound_MCM05, SUM(Fluid_Outbound_MCM05 = 1) AS Fluid_Outbound_MCM05,
SUM(Problem_Solve_MCM05 = 1) AS Problem_Solve_MCM05, SUM(Problem_Solve_MCM15 = 1) AS Problem_Solve_MCM15,
SUM(NCS1 = 1) AS NCS1, SUM(NCS1 = 1) AS NCS1,
SUM(NCS2 = 1) AS NCS2, SUM(NCS2 = 1) AS NCS2,
SUM(BYB = 1) AS BYB, SUM(BYB = 1) AS BYB,
SUM(BYA = 1) AS BYA, SUM(BYA = 1) AS BYA,
SUM(BYC = 1) AS BYC, SUM(BYC = 1) AS BYC,
SUM(BYD = 1) AS BYD, SUM(BYD = 1) AS BYD
SUM(Chutes_MCM04 = 1) AS Chutes_MCM04,
SUM(Chutes_MCM05 = 1) AS Chutes_MCM05
FROM jam_area FROM jam_area
WHERE t_stamp BETWEEN :starttime AND :endtime WHERE t_stamp BETWEEN :starttime AND :endtime
) AS c ON 1=1; ) AS c ON 1=1;

View File

@ -18,7 +18,7 @@
"cacheEnabled": false, "cacheEnabled": false,
"database": "MariaDB", "database": "MariaDB",
"fallbackEnabled": false, "fallbackEnabled": false,
"lastModificationSignature": "cdb4c3d700445a6915630b88607d95727ed339f12ddcf1d6b37f108b2e806f65", "lastModificationSignature": "5b1c3498f0b5369b9c3756937f221bf5a543d5d2a195307dd58ac2afc7b610a8",
"permissions": [ "permissions": [
{ {
"zone": "", "zone": "",
@ -27,7 +27,7 @@
], ],
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-11-09T13:20:40Z" "timestamp": "2026-03-03T12:13:38Z"
}, },
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider", "syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [ "parameters": [

View File

@ -1,58 +0,0 @@
def onTagChange(initialChange, newValue, previousValue, event, executionCount):
# ============================================================================
# Gateway Tag Change Script - Induction Statistics
# Triggers on: Induction_X/* tags (diTotal_* statistics)
# Logic:
# - Only act when:
# * not initialChange
# * quality is good
# * quality transition from bad to good is ignored
# - Then:
# * Read induction name
# * INSERT into induction_data with appropriate column
# ============================================================================
DB_NAME = "MariaDB"
import system
# ============================================================================
# ENTRY BLOCK runs on every configured tag change
# Objects: event, initialChange, currentValue, previousValue, executionCount
# ============================================================================
tagPath = str(event.getTagPath())
# Extract tag name from path (e.g., "diTotal_Double_Carrier" from full path)
tagName = tagPath.split("/")[-1]
# Handle diTotal_Double_Carrier
if tagName == "diTotal_Double_Carrier":
if not (initialChange or not currentValue.quality.isGood() or (not previousValue.quality.isGood() and currentValue.quality.isGood())):
try:
parentPath = "/".join(tagPath.split("/")[:-1])
namePath = parentPath + "/sInduction_Name"
name = system.tag.readBlocking([namePath])[0].value
system.db.runPrepUpdate("""
INSERT INTO induction_data (t_stamp, sInduction_Name, diTotal_Double_Carrier)
VALUES (NOW(), ?, 1)
""", [name], DB_NAME)
except Exception as e:
system.util.getLogger("InductionStatistics").error("double_carrier: %s" % e)
# Handle diTotal_Single_Carrier
if tagName == "diTotal_Single_Carrier":
if not (initialChange or not currentValue.quality.isGood() or (not previousValue.quality.isGood() and currentValue.quality.isGood())):
try:
parentPath = "/".join(tagPath.split("/")[:-1])
namePath = parentPath + "/sInduction_Name"
name = system.tag.readBlocking([namePath])[0].value
system.db.runPrepUpdate("""
INSERT INTO induction_data (t_stamp, sInduction_Name, diTotal_Single_Carrier)
VALUES (NOW(), ?, 1)
""", [name], DB_NAME)
except Exception as e:
system.util.getLogger("InductionStatistics").error("single_carrier: %s" % e)

View File

@ -1,52 +0,0 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"onTagChange.py"
],
"attributes": {
"changeTypes": [
"ValueChange",
"QualityChange",
"TimestampChange"
],
"lastModificationSignature": "9eb1fa079d3a3493f190db573dd2d306069eb50f37f4abc548620f23ec2ee4bc",
"paths": [
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_000/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_001/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_002/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_003/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_004/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_005/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_006/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_007/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_008/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_009/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_010/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_011/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_012/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_013/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_014/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_015/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_016/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_017/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_018/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_019/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_020/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_021/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_022/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_023/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_024/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_025/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_026/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Induction/Induction_027/*"
],
"lastModification": {
"actor": "admin",
"timestamp": "2026-01-17T17:34:01Z"
},
"enabled": false
}
}

View File

@ -1,127 +0,0 @@
def onTagChange(initialChange, newValue, previousValue, event, executionCount):
# ============================================================================
# Gateway Tag Change Script - MTN6_SCADA/Item Change
# Triggers on: Item_000..Item_100 bData_Ready (listed in Tags tab)
# Logic:
# - Only act when:
# * not initialChange
# * quality is good
# * tag ends with /bData_Ready
# * rising edge 0 -> 1
# - Then:
# * Read sibling tags
# * INSERT into item_data
# * Reset bData_Ready to 0
# ============================================================================
DB_NAME = "MariaDB"
import system
# ============================================================================
# ENTRY BLOCK runs on every configured tag change
# Objects: event, initialChange, newValue, previousValue, executionCount
# ============================================================================
logger = system.util.getLogger("ItemDataGateway")
tag_path = str(event.getTagPath())
# Quality check
quality_ok = newValue.getQuality().isGood()
# Rising edge detection 0 -> 1 (defensive)
try:
prev_raw = previousValue.getValue()
cur_raw = newValue.getValue()
prev_val = int(prev_raw) if prev_raw not in (None, "") else 0
cur_val = int(cur_raw) if cur_raw not in (None, "") else 0
except Exception:
prev_val = 0
cur_val = 0
is_rising_edge = (prev_val == 0 and cur_val == 1)
# Gate all conditions in one boolean
should_process = (
(not initialChange) and
quality_ok and
tag_path.endswith("/bData_Ready") and
is_rising_edge
)
if should_process:
try:
parent = tag_path.rsplit("/", 1)[0]
read_paths = [
parent + "/sBarcode",
parent + "/iPackage_Length",
parent + "/adiSort_Code_0",
parent + "/asRequested_Dest_ID_0",
parent + "/sActual_Dest_ID",
parent + "/sLocation_ID",
parent + "/iItem_Carrier_Count",
parent + "/diPLC_RecordNumber",
]
results = system.tag.readBlocking(read_paths)
if not all(r.quality.isGood() for r in results):
logger.warn(
"Bad quality reading tags for [{}]: {}".format(
parent, [str(r.quality) for r in results]
)
)
else:
logger.warn("HELLO")
barcode = results[0].value
length = results[1].value
sort_code = results[2].value
req_dest = results[3].value
act_dest = results[4].value
location_id = results[5].value
carrier_count = results[6].value
record_num = results[7].value
sql = """
INSERT INTO item_data (
t_stamp,
sBarcode,
iPackage_Length,
adiSort_Code_0,
asRequested_Dest_ID_0,
sActual_Dest_ID,
sLocation_ID,
iItem_Carrier_Count,
diPLC_RecordNumber
)
VALUES (CURRENT_TIMESTAMP, ?, ?, ?, ?, ?, ?, ?, ?)
"""
params = [
barcode,
length,
sort_code,
req_dest,
act_dest,
location_id,
carrier_count,
record_num,
]
system.db.runPrepUpdate(sql, params, DB_NAME)
# Reset handshake to 0
wr = system.tag.writeBlocking([tag_path], [0])
if not wr[0].isGood():
logger.warn("Failed to reset {}: {}".format(tag_path, wr[0]))
except Exception as ex:
logger.error("Error processing {}: {}".format(tag_path, ex))
# Best-effort reset on error so PLC doesn't hang
try:
system.tag.writeBlocking([tag_path], [0])
except Exception:
pass

View File

@ -1,125 +0,0 @@
{
"scope": "A",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"onTagChange.py"
],
"attributes": {
"changeTypes": [
"ValueChange",
"QualityChange",
"TimestampChange"
],
"lastModificationSignature": "330bad4018800d83d7f6eba62e331bfd1cb2d6cfc73da21148b054a9e0af58f5",
"paths": [
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_000/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_001/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_002/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_003/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_004/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_005/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_006/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_007/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_008/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_009/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_010/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_011/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_012/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_013/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_014/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_015/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_016/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_017/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_018/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_019/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_020/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_021/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_022/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_023/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_024/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_025/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_026/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_027/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_028/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_029/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_030/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_031/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_032/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_033/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_034/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_035/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_036/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_037/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_038/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_039/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_040/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_041/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_042/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_043/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_044/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_045/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_046/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_047/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_048/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_049/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_050/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_051/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_052/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_053/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_054/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_055/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_056/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_057/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_058/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_059/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_060/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_061/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_062/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_063/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_064/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_065/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_066/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_067/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_068/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_069/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_070/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_071/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_072/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_073/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_074/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_075/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_076/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_077/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_078/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_079/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_080/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_081/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_082/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_083/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_084/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_085/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_086/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_087/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_088/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_089/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_090/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_091/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_092/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_093/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_094/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_095/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_096/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_097/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_098/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_099/bData_Ready",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Item/Item_100/bData_Ready"
],
"lastModification": {
"actor": "admin",
"timestamp": "2026-01-15T13:44:38Z"
},
"enabled": false
}
}

View File

@ -1,133 +0,0 @@
def onTagChange(initialChange, newValue, previousValue, event, executionCount):
# ============================================================================
# Gateway Tag Change Script - Scanner Statistics
# Triggers on: Scanner_X/* tags (diScanner_* statistics)
# Logic:
# - Only act when:
# * not initialChange
# * quality is good
# * quality transition from bad to good is ignored
# - Then:
# * Read scanner name
# * INSERT into scanner_reads with appropriate column
# ============================================================================
DB_NAME = "MariaDB"
import system
# ============================================================================
# ENTRY BLOCK runs on every configured tag change
# Objects: event, initialChange, currentValue, previousValue, executionCount
# ============================================================================
tagPath = str(event.getTagPath())
# Extract tag name from path (e.g., "diScanner_bad_reads" from full path)
tagName = tagPath.split("/")[-1]
# Handle diScanner_bad_reads
if tagName == "diScanner_bad_reads":
if not (initialChange or not currentValue.quality.isGood() or (not previousValue.quality.isGood() and currentValue.quality.isGood())):
try:
parentPath = "/".join(tagPath.split("/")[:-1])
namePath = parentPath + "/sScanner_Name"
name = system.tag.readBlocking([namePath])[0].value
system.db.runPrepUpdate("""
INSERT INTO scanner_reads (t_stamp, sScanner_Name, diScanner_bad_reads)
VALUES (NOW(), ?, 1)
""", [name], DB_NAME)
except Exception as e:
system.util.getLogger("ScannerStatistics").error("bad_reads: %s" % e)
# Handle diScanner_comm_fault
if tagName == "diScanner_comm_fault":
if not (initialChange or not currentValue.quality.isGood() or (not previousValue.quality.isGood() and currentValue.quality.isGood())):
try:
parentPath = "/".join(tagPath.split("/")[:-1])
namePath = parentPath + "/sScanner_Name"
name = system.tag.readBlocking([namePath])[0].value
system.db.runPrepUpdate("""
INSERT INTO scanner_reads (t_stamp, sScanner_Name, diScanner_comm_fault)
VALUES (NOW(), ?, 1)
""", [name], DB_NAME)
except Exception as e:
system.util.getLogger("ScannerStatistics").error("comm_fault: %s" % e)
# Handle diScanner_good_reads
if tagName == "diScanner_good_reads":
if not (initialChange or not currentValue.quality.isGood() or (not previousValue.quality.isGood() and currentValue.quality.isGood())):
try:
parentPath = "/".join(tagPath.split("/")[:-1])
namePath = parentPath + "/sScanner_Name"
name = system.tag.readBlocking([namePath])[0].value
system.db.runPrepUpdate("""
INSERT INTO scanner_reads (t_stamp, sScanner_Name, diScanner_good_reads)
VALUES (NOW(), ?, 1)
""", [name], DB_NAME)
except Exception as e:
system.util.getLogger("ScannerStatistics").error("good_reads: %s" % e)
# Handle diScanner_multi_items
if tagName == "diScanner_multi_items":
if not (initialChange or not currentValue.quality.isGood() or (not previousValue.quality.isGood() and currentValue.quality.isGood())):
try:
parentPath = "/".join(tagPath.split("/")[:-1])
namePath = parentPath + "/sScanner_Name"
name = system.tag.readBlocking([namePath])[0].value
system.db.runPrepUpdate("""
INSERT INTO scanner_reads (t_stamp, sScanner_Name, diScanner_multi_items)
VALUES (NOW(), ?, 1)
""", [name], DB_NAME)
except Exception as e:
system.util.getLogger("ScannerStatistics").error("multi_items: %s" % e)
# Handle diScanner_multi_reads
if tagName == "diScanner_multi_reads":
if not (initialChange or not currentValue.quality.isGood() or (not previousValue.quality.isGood() and currentValue.quality.isGood())):
try:
parentPath = "/".join(tagPath.split("/")[:-1])
namePath = parentPath + "/sScanner_Name"
name = system.tag.readBlocking([namePath])[0].value
system.db.runPrepUpdate("""
INSERT INTO scanner_reads (t_stamp, sScanner_Name, diScanner_multi_reads)
VALUES (NOW(), ?, 1)
""", [name], DB_NAME)
except Exception as e:
system.util.getLogger("ScannerStatistics").error("multi_reads: %s" % e)
# Handle diScanner_no_data
if tagName == "diScanner_no_data":
if not (initialChange or not currentValue.quality.isGood() or (not previousValue.quality.isGood() and currentValue.quality.isGood())):
try:
parentPath = "/".join(tagPath.split("/")[:-1])
namePath = parentPath + "/sScanner_Name"
name = system.tag.readBlocking([namePath])[0].value
system.db.runPrepUpdate("""
INSERT INTO scanner_reads (t_stamp, sScanner_Name, diScanner_no_data)
VALUES (NOW(), ?, 1)
""", [name], DB_NAME)
except Exception as e:
system.util.getLogger("ScannerStatistics").error("no_data: %s" % e)
# Handle diScanner_no_reads
if tagName == "diScanner_no_reads":
if not (initialChange or not currentValue.quality.isGood() or (not previousValue.quality.isGood() and currentValue.quality.isGood())):
try:
parentPath = "/".join(tagPath.split("/")[:-1])
namePath = parentPath + "/sScanner_Name"
name = system.tag.readBlocking([namePath])[0].value
system.db.runPrepUpdate("""
INSERT INTO scanner_reads (t_stamp, sScanner_Name, diScanner_no_reads)
VALUES (NOW(), ?, 1)
""", [name], DB_NAME)
except Exception as e:
system.util.getLogger("ScannerStatistics").error("no_reads: %s" % e)

View File

@ -1,60 +0,0 @@
{
"scope": "A",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"onTagChange.py"
],
"attributes": {
"changeTypes": [
"ValueChange",
"QualityChange",
"TimestampChange"
],
"lastModificationSignature": "05e735e5d871b0612b576a073a3c3d1d5c476a711ec0988563705c32cc936eb8",
"paths": [
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_0/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_1/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_2/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_3/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_4/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_5/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_6/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_7/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_8/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_9/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_10/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_11/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_12/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_13/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_14/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_15/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_16/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_17/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_18/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_19/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_20/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_21/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_22/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_23/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_24/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_25/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_26/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_27/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_28/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_29/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_30/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_31/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_32/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_33/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_34/*",
"[MTN6_SCADA_TAG_PROVIDER]System/SMC/Statistics/Scanner/Scanner_35/*"
],
"lastModification": {
"actor": "admin",
"timestamp": "2026-01-15T13:44:38Z"
},
"enabled": false
}
}