sql codes for the alarm and new alarm view for the autStand

This commit is contained in:
Salijoghli 2025-08-18 20:50:58 +04:00
parent 736530228e
commit 1f694c9ded
38 changed files with 28220 additions and 5 deletions

View File

@ -0,0 +1,6 @@
def set_priority_filters(self):
filters = self.props.value
payload = {}
payload["data"] = filters
system.perspective.sendMessage("set-priority-filters", payload = payload,
scope = "page")

View File

@ -0,0 +1,908 @@
{
"custom": {},
"params": {
"alwaysShowAll": false,
"isClickable": true,
"isRightOfSorter": false,
"mirror": false,
"tagPath": "[default]MCP20/SO01/So01_CH01"
},
"propConfig": {
"params.alwaysShowAll": {
"paramDirection": "input",
"persistent": true
},
"params.isClickable": {
"paramDirection": "input",
"persistent": true
},
"params.isRightOfSorter": {
"paramDirection": "input",
"persistent": true
},
"params.mirror": {
"paramDirection": "input",
"persistent": true
},
"params.tagPath": {
"paramDirection": "input",
"persistent": true
}
},
"props": {
"defaultSize": {
"height": 20,
"width": 60
},
"loading": {
"mode": "blocking"
}
},
"root": {
"children": [
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tself.parent.openPopup()"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Conveyor"
},
"position": {
"height": 20,
"width": 38,
"x": 22
},
"propConfig": {
"meta.visible": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/CH/IsChuteMode"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "coalesce({value}, true)",
"type": "expression"
}
],
"type": "tag"
}
}
},
"props": {
"config": {
"enableHighlight": false,
"isClickable": false,
"showLabel": false,
"type": "bar"
},
"status": {
"color": "#FFF"
}
},
"type": "dex.display.conveyor"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tself.parent.openPopup()"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Gaylord"
},
"position": {
"height": 16,
"width": 16,
"x": 22,
"y": 2
},
"propConfig": {
"meta.visible": {
"binding": {
"config": {
"expression": "try( tag({view.params.tagPath}+\"/CH/IsCartMode\")\r\n\t||tag({view.params.tagPath}+\"/CH/IsGLLMode\"),\r\n\ttrue\r\n)"
},
"type": "expr"
}
}
},
"props": {
"config": {
"enableHighlight": false,
"isClickable": false
}
},
"type": "dex.display.gaylord"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tself.parent.openPopup()"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Chute"
},
"position": {
"height": 20,
"rotate": {
"anchor": "0 0"
},
"width": 23
},
"propConfig": {
"props.config.isClickable": {
"binding": {
"config": {
"expression": "!{view.params.isClickable}"
},
"type": "expr"
}
},
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/CH/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
}
},
"props": {
"config": {
"showLabel": false
}
},
"type": "dex.display.conveyor"
},
{
"meta": {
"name": "LS1"
},
"position": {
"height": 6,
"width": 6,
"x": 19,
"y": 14
},
"propConfig": {
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/LS1/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "jsonSet({value}, \"tooltip\", replace(jsonGet({value}, \"tooltip\"), \"\u003cbr\u003e\", \" (GR Presence)\u003cbr\u003e\"))",
"type": "expression"
},
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
}
},
"props": {
"config": {
"showLabel": false
}
},
"type": "dex.display.limitswitch"
},
{
"meta": {
"name": "BCN1_GRN"
},
"position": {
"height": 5,
"rotate": {
"angle": "-90deg"
},
"width": 5,
"x": 5,
"y": 15
},
"propConfig": {
"position.x": {
"binding": {
"config": {
"expression": "if({../BCN1_AMB.meta.visible}, 10, 5)"
},
"type": "expr"
},
"persistent": true
},
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/BCN1/GRN/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
},
"props.style.transform": {
"binding": {
"config": {
"path": "view.params.mirror"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": true,
"output": "scale(-1, 1)"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"type": "dex.display.beacon"
},
{
"meta": {
"name": "BCN1_AMB",
"visible": false
},
"position": {
"height": 5,
"rotate": {
"angle": "-90deg"
},
"width": 5,
"x": 5,
"y": 15
},
"propConfig": {
"meta.visible": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/BCN1/AMB/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "isGood({value})",
"type": "expression"
}
],
"type": "tag"
},
"persistent": true
},
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/BCN1/AMB/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
},
"props.style.transform": {
"binding": {
"config": {
"path": "view.params.mirror"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": true,
"output": "scale(-1, 1)"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"type": "dex.display.beacon"
},
{
"meta": {
"name": "BCN1_BLU"
},
"position": {
"height": 5,
"rotate": {
"angle": "-90deg"
},
"width": 5,
"y": 15
},
"propConfig": {
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/BCN1/BLU/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
},
"props.style.transform": {
"binding": {
"config": {
"path": "view.params.mirror"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": true,
"output": "scale(-1, 1)"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"type": "dex.display.beacon"
},
{
"meta": {
"name": "GS1_ENABLE"
},
"position": {
"height": 6,
"width": 6,
"x": 38,
"y": 14
},
"propConfig": {
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/GS1/Enable/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
}
},
"type": "dex.display.pushbutton"
},
{
"meta": {
"name": "PE3"
},
"position": {
"height": 6,
"rotate": {
"anchor": "0 50%"
},
"width": 8,
"x": 3,
"y": 2
},
"propConfig": {
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/PE3/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "jsonSet({value}, \"tooltip\", replace(jsonGet({value}, \"tooltip\"), \"\u003cbr\u003e\", \" (GL 100% Full)\u003cbr\u003e\"))",
"type": "expression"
},
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
}
},
"props": {
"config": {
"type": "diffuse"
}
},
"type": "dex.display.photoeye"
},
{
"meta": {
"name": "PE4"
},
"position": {
"height": 6,
"rotate": {
"anchor": "0 50%",
"angle": "-45deg"
},
"width": 8,
"x": 5,
"y": 10
},
"propConfig": {
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/PE4/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "jsonSet({value}, \"tooltip\", replace(jsonGet({value}, \"tooltip\"), \"\u003cbr\u003e\", \" (GL Presence)\u003cbr\u003e\"))",
"type": "expression"
},
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
}
},
"props": {
"config": {
"type": "diffuse"
}
},
"type": "dex.display.photoeye"
},
{
"meta": {
"name": "PE2"
},
"position": {
"height": 6,
"width": 28,
"x": 13,
"y": 7
},
"propConfig": {
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/PE2/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "jsonSet({value}, \"tooltip\", replace(jsonGet({value}, \"tooltip\"), \"\u003cbr\u003e\", \" (GR 50% Full)\u003cbr\u003e\"))",
"type": "expression"
},
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
}
},
"props": {
"config": {
"type": "diffuse"
}
},
"type": "dex.display.photoeye"
},
{
"meta": {
"name": "PE1B"
},
"position": {
"height": 6,
"rotate": {
"anchor": "0 50%"
},
"width": 20,
"x": 15
},
"propConfig": {
"position.rotate.angle": {
"binding": {
"config": {
"path": "view.params.isRightOfSorter"
},
"transforms": [
{
"fallback": "-45deg",
"inputType": "scalar",
"mappings": [
{
"input": true,
"output": "45deg"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
},
"position.y": {
"binding": {
"config": {
"path": "view.params.isRightOfSorter"
},
"transforms": [
{
"fallback": 14,
"inputType": "scalar",
"mappings": [
{
"input": true,
"output": 0
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
},
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/PE1B/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "jsonSet({value}, \"tooltip\", replace(jsonGet({value}, \"tooltip\"), \"\u003cbr\u003e\", \" (GR 100% Full)\u003cbr\u003e\"))",
"type": "expression"
},
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
}
},
"props": {
"config": {
"type": "diffuse"
}
},
"type": "dex.display.photoeye"
},
{
"meta": {
"name": "PE1A"
},
"position": {
"height": 6,
"rotate": {
"anchor": "0 50%"
},
"width": 20,
"x": 15
},
"propConfig": {
"position.rotate.angle": {
"binding": {
"config": {
"path": "view.params.isRightOfSorter"
},
"transforms": [
{
"fallback": "45deg",
"inputType": "scalar",
"mappings": [
{
"input": true,
"output": "-45deg"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
},
"position.y": {
"binding": {
"config": {
"path": "view.params.isRightOfSorter"
},
"transforms": [
{
"fallback": 0,
"inputType": "scalar",
"mappings": [
{
"input": true,
"output": 14
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
},
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/PE1A/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "jsonSet({value}, \"tooltip\", replace(jsonGet({value}, \"tooltip\"), \"\u003cbr\u003e\", \" (GR 100% Full)\u003cbr\u003e\"))",
"type": "expression"
},
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
}
},
"props": {
"config": {
"type": "diffuse"
}
},
"type": "dex.display.photoeye"
},
{
"meta": {
"name": "RS1_RESTART"
},
"position": {
"height": 6,
"width": 6,
"x": 44,
"y": 14
},
"propConfig": {
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/RS1/Restart/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
}
},
"type": "dex.display.pushbutton"
},
{
"meta": {
"name": "FIO1"
},
"position": {
"height": 5,
"width": 10,
"x": 50,
"y": 15
},
"propConfig": {
"props.status": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/FIO1/Graphics"
},
"overlayOptOut": true,
"transforms": [
{
"expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
"type": "expression"
}
],
"type": "tag"
}
}
},
"type": "dex.display.eip"
}
],
"meta": {
"name": "root"
},
"propConfig": {
"props.style.transform": {
"binding": {
"config": {
"path": "view.params.mirror"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": true,
"output": "scale(1, -1)"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"style": {
"overflow": "hidden"
}
},
"scripts": {
"customMethods": [
{
"name": "openPopup",
"params": [],
"script": "\tif self.view.params.isClickable:\n\t\tid \u003d \"FlexChute|\" + self.view.params.tagPath\n\t\ttitle \u003d utils.prettyName(self.view.params.tagPath.split(\"/\")[-1])\n\t\tparams \u003d { \n\t\t\t\"deviceType\": \"chutedestination\",\n\t\t\t\"props\": { \n\t\t\t\t\"config\": {\n\t\t\t\t\t\"alwaysShowAll\": self.view.params.alwaysShowAll,\n\t\t\t\t\t\"isClickable\": self.view.params.isClickable,\n\t\t\t\t\t\"isRightOfSorter\": self.view.params.isRightOfSorter,\n\t\t\t\t\t\"mirror\": self.view.params.mirror\n\t\t\t\t},\n\t\t\t\t\"status\": {\n\t\t\t\t\t\"tagPath\": self.view.params.tagPath\n\t\t\t\t}\n\t\t \t},\n\t\t \t\"tabs\": [\"Controls\", \"Alarm History\", \"Devices\"]\t\t\n\t\t}\n\t\tsystem.perspective.openPopup(id, \"Popups/DeviceWrapper\", params, title, resizable \u003d True)"
}
],
"extensionFunctions": null,
"messageHandlers": []
},
"type": "ia.container.coord"
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,209 @@
{
"custom": {
"alarmHighlight": "",
"alarm_filter": {
"show_VFD": true,
"show_beacons": true,
"show_buttons": true,
"show_camera_jams": true,
"show_dpm_mcm": true,
"show_encoders": true,
"show_epc": true,
"show_fio_safety": true,
"show_map": true,
"show_photoeyes": true,
"show_px": true
},
"areaHover": [],
"currentGraphic": "Windows/Graphics/Overview",
"demoHighlight": "",
"dexmanager": {
"config": {
"font": "bold 12px Arial",
"highlight": "#ff0"
},
"show": {
"Beacons": false,
"ConveyorLabels": true,
"ConveyorPatterns": true,
"Conveyors": true,
"DivertPaddles": true,
"EIPs": false,
"Encoders": false,
"Estops": false,
"Gaylords": true,
"LimitSwitches": false,
"MCPs": false,
"PhotoEyes": false,
"PushButtons": false,
"Scanners": false,
"VFDs": false
}
},
"fc": "BNA8",
"heatmapSettings": {
"alarms": [],
"alarmsText": "",
"data": {
"$": [
"ds",
192,
1754654890875
],
"$columns": [
{
"data": [],
"name": "firsttime",
"type": "Date"
},
{
"data": [],
"name": "lasttime",
"type": "Date"
},
{
"data": [],
"name": "duration",
"type": "String"
},
{
"data": [],
"name": "count",
"type": "Long"
},
{
"data": [],
"name": "device",
"type": "String"
},
{
"data": [],
"name": "description",
"type": "String"
}
]
},
"devices": [],
"devicesText": "",
"enabled": false,
"shifts": [],
"shiftsText": "",
"time": {
"end": "2020-07-30 00:00:00",
"start": "2020-07-29 00:00:00"
}
},
"searchId": "value",
"timewidget": {
"endDate": {
"$": [
"ts",
192,
1604092861010
],
"$ts": 1604116800000
},
"mode": "currentDay",
"startDate": {
"$": [
"ts",
192,
1604092861010
],
"$ts": 1604030400000
},
"update": {
"$": [
"ts",
192,
1604092861010
],
"$ts": 1604092861010
}
}
},
"propConfig": {
"custom.dexmanager.highlight": {
"binding": {
"config": {
"struct": {
"alarm": "{this.custom.alarmHighlight}",
"demo": "{this.custom.demoHighlight}",
"toggle": "{[default]Gateway/ToggleTag}"
},
"waitOnAll": true
},
"transforms": [
{
"code": "\thighlights \u003d []\n\t# Add alarm highlight:\n\tif len(value.alarm) \u003e 0:\n\t\thighlights.append({\n\t\t\t\"color\": \"#F00\" if value.toggle else \"#FF0\",\n\t\t\t\"keys\": [value.alarm]\n\t\t})\n\t\tif \".\" in value.alarm:\n\t\t\thighlights.append({\n\t\t\t\t\"color\": \"#F00\" if value.toggle else \"#FF0\",\n\t\t\t\t\"keys\": [value.alarm.split(\".\")[0], \"conveyor\"]\n\t\t\t})\n\t# Add demo highlight:\n\tif False and len(value.demo) \u003e 0:\n\t\thighlights.append({\n\t\t\t\"color\": \"#F00\" if value.toggle else \"#FF0\",\n\t\t\t\"keys\": [\"conveyor\", value.demo]\n\t\t})\n\treturn highlights",
"type": "script"
}
],
"type": "expr-struct"
}
},
"custom.isMobile": {
"binding": {
"config": {
"expression": "indexOf(lower({session.props.device.userAgent}), \"mobile\")\u003e\u003d0"
},
"type": "expr"
}
},
"props.auth": {
"access": "PRIVATE",
"persistent": false
},
"props.device.accelerometer": {
"access": "SYSTEM",
"persistent": false
},
"props.device.identifier": {
"access": "SYSTEM",
"persistent": false
},
"props.device.timezone": {
"access": "SYSTEM",
"persistent": false
},
"props.device.type": {
"access": "SYSTEM",
"persistent": false
},
"props.device.userAgent": {
"access": "SYSTEM",
"persistent": false
},
"props.gateway": {
"access": "SYSTEM",
"persistent": false
},
"props.geolocation.data": {
"access": "SYSTEM",
"persistent": false
},
"props.geolocation.permissionGranted": {
"access": "SYSTEM",
"persistent": false
},
"props.host": {
"access": "SYSTEM",
"persistent": false
},
"props.id": {
"access": "SYSTEM",
"persistent": false
},
"props.lastActivity": {
"access": "SYSTEM",
"persistent": false
}
},
"props": {
"address": "127.0.0.1",
"device": {},
"geolocation": {},
"locale": "en-US",
"timeZoneId": "Asia/Tbilisi"
}
}

View File

@ -0,0 +1,634 @@
{
"pages": {
"/": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "footer",
"modal": false,
"resizable": false,
"show": "visible",
"size": 100,
"viewParams": {},
"viewPath": "Windows/Docked/Footer"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "hide",
"iconUrl": "",
"id": "header",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "Windows/Docked/Header"
}
]
},
"title": "",
"viewPath": "Windows/GraphicsWrapper"
},
"/alarms/active": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "footer",
"modal": false,
"resizable": false,
"show": "visible",
"size": 100,
"viewParams": {},
"viewPath": "Windows/Docked/Footer"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "header",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "Windows/Docked/Header"
}
]
},
"title": "",
"viewPath": "Windows/AlarmWrapper"
},
"/alarms/history": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "footer",
"modal": false,
"resizable": false,
"show": "visible",
"size": 100,
"viewParams": {},
"viewPath": "Windows/Docked/Footer"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "header",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "Windows/Docked/Header"
}
]
},
"viewPath": "Windows/AlarmWrapper"
},
"/alarms/hitlist": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "footer",
"modal": false,
"resizable": false,
"show": "visible",
"size": 100,
"viewParams": {},
"viewPath": "Windows/Docked/Footer"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "header",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "Windows/Docked/Header"
}
]
},
"title": "",
"viewPath": "Windows/AlarmWrapper"
},
"/autStand": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "cover",
"handle": "show",
"iconUrl": "",
"id": "autStand",
"modal": false,
"resizable": false,
"show": "onDemand",
"size": 165,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Footer"
}
],
"left": [
{
"anchor": "fixed",
"autoBreakpoint": 805,
"content": "auto",
"handle": "autoHide",
"iconUrl": "",
"id": "Docked-West",
"modal": false,
"resizable": false,
"show": "auto",
"size": 70,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Docked-West"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "auto",
"handle": "hide",
"iconUrl": "",
"id": "header-autStand",
"modal": false,
"resizable": false,
"show": "visible",
"size": 50,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Header"
}
]
},
"title": "",
"viewPath": "autStand/Overview/BNA8"
},
"/autStand/Alarms": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "cover",
"handle": "show",
"iconUrl": "",
"id": "autStand",
"modal": false,
"resizable": false,
"show": "onDemand",
"size": 165,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Footer"
}
],
"left": [
{
"anchor": "fixed",
"autoBreakpoint": 805,
"content": "auto",
"handle": "autoHide",
"iconUrl": "",
"id": "Docked-West",
"modal": false,
"resizable": false,
"show": "auto",
"size": 70,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Docked-West"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "auto",
"handle": "hide",
"iconUrl": "",
"id": "header-autStand",
"modal": false,
"resizable": false,
"show": "visible",
"size": 50,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Header"
}
]
},
"title": "",
"viewPath": "autStand/Alarms/RealTime"
},
"/cameras": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "footer",
"modal": false,
"resizable": false,
"show": "visible",
"size": 100,
"viewParams": {},
"viewPath": "Windows/Docked/Footer"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "header",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "Windows/Docked/Header"
}
]
},
"title": "",
"viewPath": "Windows/JamCameras"
},
"/commission": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "footer",
"modal": false,
"resizable": false,
"show": "visible",
"size": 100,
"viewParams": {},
"viewPath": "Windows/Docked/Footer"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "header",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "Windows/Docked/Header"
}
]
},
"title": "",
"viewPath": "Windows/Commissioning"
},
"/config": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "footer",
"modal": false,
"resizable": false,
"show": "visible",
"size": 100,
"viewParams": {},
"viewPath": "Windows/Docked/Footer"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "header",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "Windows/Docked/Header"
}
]
},
"viewPath": "Windows/ConfigWrapper"
},
"/custom-reports": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "footer",
"modal": false,
"resizable": false,
"show": "visible",
"size": 100,
"viewParams": {},
"viewPath": "Windows/Docked/Footer"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "header",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "Windows/Docked/Header"
}
]
},
"viewPath": "Windows/CustomReports"
},
"/help": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "footer",
"modal": false,
"resizable": false,
"show": "visible",
"size": 100,
"viewParams": {},
"viewPath": "Windows/Docked/Footer"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "header",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "Windows/Docked/Header"
}
]
},
"viewPath": "Windows/Help"
},
"/mcm01": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "cover",
"handle": "show",
"iconUrl": "",
"id": "autStand",
"modal": false,
"resizable": false,
"show": "onDemand",
"size": 165,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Footer"
}
],
"left": [
{
"anchor": "fixed",
"autoBreakpoint": 805,
"content": "auto",
"handle": "autoHide",
"iconUrl": "",
"id": "Docked-West",
"modal": false,
"resizable": false,
"show": "auto",
"size": 70,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Docked-West"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "hide",
"iconUrl": "",
"id": "header-autStand",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Header"
}
]
},
"title": "",
"viewPath": "autStand/Detailed_Views/MCM01-FLUID INBOUND"
},
"/mcm02": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "show",
"iconUrl": "",
"id": "",
"modal": false,
"resizable": false,
"show": "visible",
"size": 165,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Footer"
}
],
"left": [
{
"anchor": "fixed",
"autoBreakpoint": 805,
"content": "auto",
"handle": "autoHide",
"iconUrl": "",
"id": "Docked-West",
"modal": false,
"resizable": false,
"show": "auto",
"size": 70,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Docked-West"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "hide",
"iconUrl": "",
"id": "header-autStand",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Header"
}
]
},
"title": "",
"viewPath": "autStand/Detailed_Views/MCM02-NC SORTER"
},
"/statistics": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "footer",
"modal": false,
"resizable": false,
"show": "visible",
"size": 100,
"viewParams": {},
"viewPath": "Windows/Docked/Footer"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "header",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "Windows/Docked/Header"
}
]
},
"viewPath": "Windows/Statistics"
},
"/status": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "footer",
"modal": false,
"resizable": false,
"show": "visible",
"size": 100,
"viewParams": {},
"viewPath": "Windows/Docked/Footer"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "push",
"handle": "autoHide",
"iconUrl": "",
"id": "header",
"modal": false,
"resizable": false,
"show": "visible",
"size": 60,
"viewParams": {},
"viewPath": "Windows/Docked/Header"
}
]
},
"title": "",
"viewPath": "Windows/StatusWrapper"
}
},
"sharedDocks": {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -0,0 +1,949 @@
{
"custom": {},
"params": {
"viewFocus": "value"
},
"propConfig": {
"params.viewFocus": {
"paramDirection": "input",
"persistent": true
}
},
"props": {
"defaultSize": {
"height": 373,
"width": 195
}
},
"root": {
"children": [
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "36px",
"shrink": 0
},
"props": {
"style": {
"background-color": "#555555",
"fontWeight": "bold",
"textAlign": "center"
},
"text": "Status Filters"
},
"type": "ia.display.label"
},
{
"children": [
{
"custom": {
"buttonid": "status_filters/all"
},
"events": {
"component": {
"onActionPerformed": [
{
"config": {
"script": "\tpayload \u003d {}\n\tif self.props.selected:\n\t\tvalue \u003d True\n\telse:\n\t\tvalue \u003d False\n\t\n\tpayload[\"data\"] \u003d value\n\t\n\tsystem.perspective.sendMessage(\"select-all-filters\", \n\t\t\t\t\t\t\t\t\tpayload \u003d payload, \n\t\t\t\t\t\t\t\t\tscope \u003d \"view\")"
},
"scope": "G",
"type": "script"
},
{
"config": {
"script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
}
]
}
},
"meta": {
"name": "Select-All",
"tooltip": {
"delay": 250
}
},
"position": {
"basis": "36px"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)"
},
"enabled": false,
"type": "expr"
}
},
"props.selected": {
"binding": {
"config": {
"expression": "if({session.custom.alarm_filter.show_dpm_mcm} \u0026\u0026 \r\n{session.custom.alarm_filter.show_beacons} \u0026\u0026\r\n{session.custom.alarm_filter.show_VFD} \u0026\u0026\r\n{session.custom.alarm_filter.show_buttons} \u0026\u0026\r\n{session.custom.alarm_filter.show_photoeyes} \u0026\u0026\r\n{session.custom.alarm_filter.show_encoders} \u0026\u0026\r\n{session.custom.alarm_filter.show_epc} \u0026\u0026\r\n{session.custom.alarm_filter.show_px} \u0026\u0026\r\n{session.custom.alarm_filter.show_camera_jams} \u0026\u0026\r\n{session.custom.alarm_filter.show_fio_safety}, True, False)"
},
"type": "expr"
}
}
},
"props": {
"checkedIcon": {
"color": {
"disabled": "#FFFFFF",
"enabled": "#FFFFFF"
}
},
"style": {
"color": "#FFFFFF",
"fontFamily": "Arial",
"fontSize": 12,
"fontWeight": "bold",
"marginLeft": 10,
"marginRight": 10
},
"text": "Select All"
},
"type": "ia.input.checkbox"
},
{
"custom": {
"buttonid": "status_filters/running_status"
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Running",
"tooltip": {
"delay": 250
}
},
"position": {
"basis": "36px"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)"
},
"enabled": false,
"type": "expr"
}
},
"props.selected": {
"binding": {
"config": {
"bidirectional": true,
"path": "session.custom.alarm_filter.show_VFD"
},
"type": "property"
}
}
},
"props": {
"checkedIcon": {
"color": {
"disabled": "#FFFFFF",
"enabled": "#FFFFFF"
}
},
"style": {
"color": "#FFFFFF",
"fontFamily": "Arial",
"fontSize": 12,
"fontWeight": "bold",
"marginLeft": 10,
"marginRight": 10
},
"text": "Show VFD"
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "select-all-filters",
"pageScope": false,
"script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data",
"sessionScope": false,
"viewScope": true
}
]
},
"type": "ia.input.checkbox"
},
{
"custom": {
"buttonid": "status_filters/low_alarms"
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Show-Buttons",
"tooltip": {
"delay": 250
}
},
"position": {
"basis": "36px"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)"
},
"enabled": false,
"type": "expr"
}
},
"props.selected": {
"binding": {
"config": {
"bidirectional": true,
"path": "session.custom.alarm_filter.show_buttons"
},
"type": "property"
}
}
},
"props": {
"checkedIcon": {
"color": {
"disabled": "#FFFFFF",
"enabled": "#FFFFFF"
}
},
"style": {
"color": "#FFFFFF",
"fontFamily": "Arial",
"fontSize": 12,
"fontWeight": "bold",
"marginLeft": 10,
"marginRight": 10
},
"text": "Show Buttons"
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "select-all-filters",
"pageScope": false,
"script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data\n\tsystem.perspective.print(data)",
"sessionScope": false,
"viewScope": true
}
]
},
"type": "ia.input.checkbox"
},
{
"custom": {
"buttonid": "status_filters/estops_pullChords"
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "E-Stops",
"tooltip": {
"delay": 250
}
},
"position": {
"basis": "36px"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)"
},
"enabled": false,
"type": "expr"
}
},
"props.selected": {
"binding": {
"config": {
"bidirectional": true,
"path": "session.custom.alarm_filter.show_epc"
},
"type": "property"
}
}
},
"props": {
"checkedIcon": {
"color": {
"disabled": "#FFFFFF",
"enabled": "#FFFFFF"
}
},
"style": {
"color": "#FFFFFF",
"fontFamily": "Arial",
"fontSize": 12,
"fontWeight": "bold",
"marginLeft": 10,
"marginRight": 10
},
"text": "Show E-Stops \u0026 Pull Chords"
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "select-all-filters",
"pageScope": false,
"script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data",
"sessionScope": false,
"viewScope": true
}
]
},
"type": "ia.input.checkbox"
},
{
"custom": {
"buttonid": "status_filters/gateways"
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Show-DPM-MCM",
"tooltip": {
"delay": 250
}
},
"position": {
"basis": "36px"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)"
},
"enabled": false,
"type": "expr"
}
},
"props.selected": {
"binding": {
"config": {
"bidirectional": true,
"path": "session.custom.alarm_filter.show_dpm_mcm"
},
"type": "property"
}
}
},
"props": {
"checkedIcon": {
"color": {
"disabled": "#FFFFFF",
"enabled": "#FFFFFF"
}
},
"style": {
"color": "#FFFFFF",
"fontFamily": "Arial",
"fontSize": 12,
"fontWeight": "bold",
"marginLeft": 10,
"marginRight": 10
},
"text": "Show DPM \u0026 MCM"
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "select-all-filters",
"pageScope": false,
"script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data",
"sessionScope": false,
"viewScope": true
}
]
},
"type": "ia.input.checkbox"
},
{
"custom": {
"buttonid": "status_filters/camera_jams"
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Show-Camera-Jams",
"tooltip": {
"delay": 250
}
},
"position": {
"basis": "36px"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)"
},
"enabled": false,
"type": "expr"
}
},
"props.selected": {
"binding": {
"config": {
"bidirectional": true,
"path": "session.custom.alarm_filter.show_camera_jams"
},
"type": "property"
}
}
},
"props": {
"checkedIcon": {
"color": {
"disabled": "#FFFFFF",
"enabled": "#FFFFFF"
}
},
"style": {
"color": "#FFFFFF",
"fontFamily": "Arial",
"fontSize": 12,
"fontWeight": "bold",
"marginLeft": 10,
"marginRight": 10
},
"text": "Show Camera Jams"
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "select-all-filters",
"pageScope": false,
"script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data",
"sessionScope": false,
"viewScope": true
}
]
},
"type": "ia.input.checkbox"
},
{
"custom": {
"buttonid": "status_filters/fio_sio"
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Show-Fios",
"tooltip": {
"delay": 250
}
},
"position": {
"basis": "36px"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)"
},
"enabled": false,
"type": "expr"
}
},
"props.selected": {
"binding": {
"config": {
"bidirectional": true,
"path": "session.custom.alarm_filter.show_fio_safety"
},
"type": "property"
}
}
},
"props": {
"checkedIcon": {
"color": {
"disabled": "#FFFFFF",
"enabled": "#FFFFFF"
}
},
"style": {
"color": "#FFFFFF",
"fontFamily": "Arial",
"fontSize": 12,
"fontWeight": "bold",
"marginLeft": 10,
"marginRight": 10
},
"text": "Show FIO \u0026 SIO"
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "select-all-filters",
"pageScope": false,
"script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data",
"sessionScope": false,
"viewScope": true
}
]
},
"type": "ia.input.checkbox"
},
{
"custom": {
"buttonid": "status_filters/running_status"
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Show-Photoeyes",
"tooltip": {
"delay": 250
}
},
"position": {
"basis": "36px"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)"
},
"enabled": false,
"type": "expr"
}
},
"props.selected": {
"binding": {
"config": {
"bidirectional": true,
"path": "session.custom.alarm_filter.show_photoeyes"
},
"type": "property"
}
}
},
"props": {
"checkedIcon": {
"color": {
"disabled": "#FFFFFF",
"enabled": "#FFFFFF"
}
},
"style": {
"color": "#FFFFFF",
"fontFamily": "Arial",
"fontSize": 12,
"fontWeight": "bold",
"marginLeft": 10,
"marginRight": 10
},
"text": "Show Photoeyes"
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "select-all-filters",
"pageScope": false,
"script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data",
"sessionScope": false,
"viewScope": true
}
]
},
"type": "ia.input.checkbox"
},
{
"custom": {
"buttonid": "status_filters/running_status"
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Show-Beacons",
"tooltip": {
"delay": 250
}
},
"position": {
"basis": "36px"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)"
},
"enabled": false,
"type": "expr"
}
},
"props.selected": {
"binding": {
"config": {
"bidirectional": true,
"path": "session.custom.alarm_filter.show_beacons"
},
"type": "property"
}
}
},
"props": {
"checkedIcon": {
"color": {
"disabled": "#FFFFFF",
"enabled": "#FFFFFF"
}
},
"style": {
"color": "#FFFFFF",
"fontFamily": "Arial",
"fontSize": 12,
"fontWeight": "bold",
"marginLeft": 10,
"marginRight": 10
},
"text": "Show Beacons"
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "select-all-filters",
"pageScope": false,
"script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data",
"sessionScope": false,
"viewScope": true
}
]
},
"type": "ia.input.checkbox"
},
{
"custom": {
"buttonid": "status_filters/running_status"
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Show-PX",
"tooltip": {
"delay": 250
}
},
"position": {
"basis": "36px"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)"
},
"enabled": false,
"type": "expr"
}
},
"props.selected": {
"binding": {
"config": {
"bidirectional": true,
"path": "session.custom.alarm_filter.show_px"
},
"type": "property"
}
}
},
"props": {
"checkedIcon": {
"color": {
"disabled": "#FFFFFF",
"enabled": "#FFFFFF"
}
},
"style": {
"color": "#FFFFFF",
"fontFamily": "Arial",
"fontSize": 12,
"fontWeight": "bold",
"marginLeft": 10,
"marginRight": 10
},
"text": "Show Prox Switches"
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "select-all-filters",
"pageScope": false,
"script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data",
"sessionScope": false,
"viewScope": true
}
]
},
"type": "ia.input.checkbox"
},
{
"custom": {
"buttonid": "status_filters/running_status"
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Show-Encoders",
"tooltip": {
"delay": 250
}
},
"position": {
"basis": "36px"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)"
},
"enabled": false,
"type": "expr"
}
},
"props.selected": {
"binding": {
"config": {
"bidirectional": true,
"path": "session.custom.alarm_filter.show_encoders"
},
"type": "property"
}
}
},
"props": {
"checkedIcon": {
"color": {
"disabled": "#FFFFFF",
"enabled": "#FFFFFF"
}
},
"style": {
"color": "#FFFFFF",
"fontFamily": "Arial",
"fontSize": 12,
"fontWeight": "bold",
"marginLeft": 10,
"marginRight": 10
},
"text": "Show Encoders"
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "select-all-filters",
"pageScope": false,
"script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data",
"sessionScope": false,
"viewScope": true
}
]
},
"type": "ia.input.checkbox"
}
],
"meta": {
"name": "FlexContainer"
},
"position": {
"grow": 1
},
"props": {
"direction": "column",
"justify": "space-between"
},
"type": "ia.container.flex"
},
{
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tsystem.perspective.closePopup(\u0027\u0027)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Button"
},
"position": {
"basis": "30px",
"shrink": 0
},
"props": {
"box-shadow": "5px 5px 5px",
"style": {
"backgroundColor": "#555555",
"classes": "Background-Styles/Controller",
"marginBottom": 5,
"marginLeft": 20,
"marginRight": 20,
"marginTop": 5
},
"text": "Close"
},
"type": "ia.input.button"
}
],
"meta": {
"name": "Status"
},
"position": {
"basis": "200px",
"shrink": 0
},
"props": {
"direction": "column",
"style": {
"borderColor": "#FFFFFF",
"borderStyle": "solid",
"borderWidth": 1
}
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "root"
},
"props": {
"style": {
"classes": "Background-Styles/Controller",
"overflow": "hidden"
}
},
"type": "ia.container.flex"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

View File

@ -0,0 +1,31 @@
WITH Active AS (
SELECT
ae.id,
ae.eventid,
ae.priority,
aed.strValue
FROM alarm_events ae
LEFT JOIN alarm_event_data aed ON ae.id = aed.id AND aed.propname = 'myTag'
WHERE ae.eventtype = 0
AND NOT EXISTS (
SELECT 1 FROM alarm_events ae_clear
WHERE ae_clear.eventid = ae.eventid
AND ae_clear.eventtype = 1
)
AND ae.displaypath NOT LIKE '%System Startup%'
AND ae.source NOT LIKE '%System Startup%'
)
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(strValue, '/', 2), '/', -1) AS Location,
CASE priority
WHEN 0 THEN 'Diagnostic'
WHEN 1 THEN 'Low'
WHEN 2 THEN 'Medium'
WHEN 3 THEN 'High'
WHEN 4 THEN 'Critical'
ELSE 'Unknown'
END AS Priority,
COUNT(*) AS Count
FROM Active
GROUP BY Location, Priority
ORDER BY Location, Priority;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,64 @@
SELECT
CONCAT(Active.displaypath, ' - ', SUBSTRING_INDEX(Active.source, ':/alm:', -1)) AS Description,
SUBSTRING_INDEX(SUBSTRING_INDEX(aed.strValue, '/', 2), '/', -1) AS Location,
-- Formatted OPC-style tag
CONCAT(
Active.displaypath,
'.HMI.',
SUBSTRING_INDEX(aed.strValue, '/', -1)
) AS Tag,
CASE Active.priority
WHEN 0 THEN 'Diagnostic'
WHEN 1 THEN 'Low'
WHEN 2 THEN 'Medium'
WHEN 3 THEN 'High'
WHEN 4 THEN 'Critical'
ELSE 'Unknown'
END AS Priority,
-- First and last seen times for this alarm
MIN(Active.eventtime) AS FirstTimestamp,
MAX(Active.eventtime) AS LastTimestamp,
-- Total duration summed from each active-clear pair
CONCAT(
LPAD(FLOOR(SUM(Active.duration_seconds) / 3600), 2, '0'), ':',
LPAD(FLOOR((SUM(Active.duration_seconds) % 3600) / 60), 2, '0'), ':',
LPAD(SUM(Active.duration_seconds) % 60, 2, '0')
) AS Duration,
-- Total number of activations
COUNT(*) AS Count,
-- Newly added columns
aed.strValue AS FullTag,
Active.displaypath AS Device
FROM (
SELECT
ae.id,
ae.source,
ae.eventid,
ae.eventtime,
ae.priority,
ae.displaypath,
TIMESTAMPDIFF(SECOND, ae.eventtime, COALESCE(ae_clear.eventtime, NOW())) AS duration_seconds
FROM alarm_events ae
LEFT JOIN alarm_events ae_clear
ON ae.eventid = ae_clear.eventid AND ae_clear.eventtype = 1
WHERE ae.eventtype = 0
AND ae.displaypath NOT LIKE '%System Startup%'
AND ae.source NOT LIKE '%System Startup%'
) AS Active
-- OPC tag path for building .hmi.Tag output
LEFT JOIN alarm_event_data aed
ON aed.id = Active.id AND aed.propname = 'myTag'
-- 🔹 Group by the full unique alarm key (tag + alarm name)
GROUP BY Active.source, Active.displaypath, aed.strValue
ORDER BY FirstTimestamp DESC;

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,804 @@
{
"custom": {},
"params": {},
"props": {
"defaultSize": {
"height": 1080,
"width": 70
}
},
"root": {
"children": [
{
"children": [
{
"custom": {
"show": true
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tmap_selected \u003d self.session.custom.alarm_filter.show_map\n\tself.custom.show \u003d False\n\tif not map_selected:\n\t\tsystem.perspective.navigate(\"/autStand\")\n\telse:\n\t\tsystem.perspective.navigate(\"/Home\")"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Home",
"tooltip": {
"enabled": true,
"text": "Home"
}
},
"position": {
"basis": "70px"
},
"propConfig": {
"props.style.classes": {
"binding": {
"config": {
"path": "session.props.theme"
},
"transforms": [
{
"code": "\tif \u0027dark\u0027 in value:\n\t\treturn \u0027Buttons/Button-Menu\u0027\n\telse:\n\t\treturn \u0027Buttons/Button-Menu\u0027",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"image": {
"height": 32,
"icon": {
"color": "#FFFFFF",
"path": "material/home"
},
"position": "top",
"width": 32
},
"style": {
"margin": 1
},
"text": "Home",
"textStyle": {
"fontSize": 10
}
},
"type": "ia.input.button"
},
{
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tif self.props.selected \u003d\u003d True and self.page.props.path \u003d\u003d \"/\":\n\t\tsystem.perspective.navigate(\"/MAP-Home\")\n\t\t\n\telif self.page.props.path \u003d\u003d \"/MAP-Home\":\n\t\tsystem.perspective.navigate(\"/\")"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "ToggleSwitch",
"tooltip": {
"enabled": true
}
},
"position": {
"basis": "60px"
},
"propConfig": {
"meta.tooltip.text": {
"binding": {
"config": {
"path": "session.custom.alarm_filter.show_map"
},
"transforms": [
{
"expression": "if({value}, \"Toggle for home card view\", \"Toggle for home detailed view\")",
"type": "expression"
}
],
"type": "property"
}
},
"position.display": {
"binding": {
"config": {
"path": "/root.custom.show_home_selector"
},
"type": "property"
}
},
"props.selected": {
"binding": {
"config": {
"bidirectional": true,
"path": "session.custom.alarm_filter.show_map"
},
"type": "property"
}
}
},
"props": {
"color": {
"background-color": "",
"selected": "#FFFFFF",
"unselected": "#FFFFFF"
},
"label": {
"position": "left",
"style": {
"classes": "",
"fontSize": "10px"
},
"text": "Map View"
},
"style": {
"borderBottomLeftRadius": "5px",
"borderBottomRightRadius": "5px",
"borderColor": "#AAAAAA",
"borderStyle": "solid",
"borderTopLeftRadius": "5px",
"borderTopRightRadius": "5px",
"borderWidth": "0.5px",
"classes": "Buttons/Button-Menu",
"margin": "1px"
}
},
"type": "ia.input.toggle-switch"
}
],
"events": {
"dom": {
"onMouseEnter": {
"config": {
"script": "\tself.parent.custom.show_home_selector \u003d True"
},
"scope": "G",
"type": "script"
},
"onMouseLeave": {
"config": {
"script": "\tself.parent.custom.show_home_selector \u003d False"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "FlexContainer"
},
"propConfig": {
"position.basis": {
"binding": {
"config": {
"expression": "if({parent.custom.show_home_selector} \u003d True, \"130px\", \"70px\")"
},
"type": "expr"
}
}
},
"props": {
"direction": "column",
"style": {
"overflow": "hidden"
}
},
"type": "ia.container.flex"
},
{
"custom": {
"show": true
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tsystem.perspective.closePopup(\"DevicePopUP\")\n\tsystem.perspective.closePopup(\"StatusPopUP\")\n\tself.custom.show \u003d False\n\tsystem.perspective.navigate(\"/autStand/Alarms\")"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Alarms",
"tooltip": {
"enabled": true,
"text": "Alarms"
}
},
"position": {
"basis": "70px"
},
"propConfig": {
"props.style.classes": {
"binding": {
"config": {
"path": "session.props.theme"
},
"transforms": [
{
"code": "\tif \u0027dark\u0027 in value:\n\t\treturn \u0027Buttons/Button-Menu\u0027\n\telse:\n\t\treturn \u0027Buttons/Button-Menu\u0027",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"image": {
"height": 32,
"icon": {
"color": "#FFFFFF",
"path": "material/access_alarm"
},
"position": "top",
"width": 32
},
"style": {
"margin": 1
},
"text": "Alarms",
"textStyle": {
"classes": "Text-Styles/Docked-Buttons"
}
},
"type": "ia.input.button"
},
{
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\n\tsystem.perspective.openPopup(id \u003d \"Search\", view \u003d \"PopUp-Views/Search\", \n\t\t\t\t\t\t\t\t\t\t\t\tshowCloseIcon \u003d False, modal \u003d True,\n\t\t\t\t\t\t\t\t\t\t\t\tviewportBound \u003d True,\n\t\t\t\t\t\t\t\t\t\t\t\tdraggable \u003d False,\n\t\t\t\t\t\t\t\t\t\t\t\toverlayDismiss \u003d True\n\t\t\t\t\t\t\t\t\t\t\t\t)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "search",
"tooltip": {
"enabled": true,
"text": "Search"
}
},
"position": {
"basis": "70px"
},
"propConfig": {
"props.style.classes": {
"binding": {
"config": {
"path": "session.props.theme"
},
"transforms": [
{
"code": "\tif \u0027dark\u0027 in value:\n\t\treturn \u0027Buttons/Button-Menu\u0027\n\telse:\n\t\treturn \u0027Buttons/Button-Menu\u0027",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"image": {
"height": 32,
"icon": {
"color": "#FFFFFF",
"path": "material/search"
},
"position": "top",
"width": 32
},
"style": {
"margin": 1
},
"text": "Search",
"textStyle": {
"classes": "Text-Styles/Docked-Buttons"
}
},
"type": "ia.input.button"
},
{
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tself.session.custom.searchId \u003d \"\"\n\tself.session.custom.deviceSearchId \u003d \"\"\n\tsystem.perspective.closePopup(id \u003d \"TagSearch\")"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Search off",
"tooltip": {
"enabled": true,
"text": "Search Off"
}
},
"position": {
"basis": "70px"
},
"propConfig": {
"props.style.classes": {
"binding": {
"config": {
"path": "session.props.theme"
},
"transforms": [
{
"code": "\tif \u0027dark\u0027 in value:\n\t\treturn \u0027Buttons/Button-Menu\u0027\n\telse:\n\t\treturn \u0027Buttons/Button-Menu\u0027",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"image": {
"height": 32,
"icon": {
"color": "#FFFFFF",
"path": "material/search_off"
},
"position": "top",
"width": 32
},
"style": {
"margin": 1
},
"text": "Search Off",
"textStyle": {
"classes": "Text-Styles/Docked-Buttons"
}
},
"type": "ia.input.button"
},
{
"custom": {
"show": false
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"draggable": false,
"modal": true,
"overlayDismiss": true,
"position": {
"relativeLocation": "top-right"
},
"positionType": "relative",
"resizable": false,
"showCloseIcon": false,
"type": "open",
"viewParams": {
"viewFocus": "{session.custom.view_in_focus}"
},
"viewPath": "autStand/PopUp-Views/Detail-View-Filter",
"viewportBound": true
},
"scope": "C",
"type": "popup"
}
}
},
"meta": {
"name": "Filter",
"tooltip": {
"enabled": true
}
},
"position": {
"basis": "70px"
},
"propConfig": {
"custom.filters_active": {
"binding": {
"config": {
"expression": "if(\r\n !{session.custom.alarm_filter.show_dpm_mcm} ||\r\n !{session.custom.alarm_filter.show_beacons} ||\r\n !{session.custom.alarm_filter.show_VFD} ||\r\n !{session.custom.alarm_filter.show_buttons} ||\r\n !{session.custom.alarm_filter.show_photoeyes} ||\r\n !{session.custom.alarm_filter.show_encoders} ||\r\n !{session.custom.alarm_filter.show_epc} ||\r\n !{session.custom.alarm_filter.show_px} ||\r\n !{session.custom.alarm_filter.show_camera_jams} ||\r\n !{session.custom.alarm_filter.show_fio_safety},\r\n True,\r\n False\r\n)\r\n"
},
"type": "expr"
}
},
"meta.tooltip.text": {
"binding": {
"config": {
"expression": "if({this.custom.filters_active}, \"Status Filters are active\",\r\n\"Select Status Filters\")"
},
"type": "expr"
}
},
"props.image.icon.color": {
"binding": {
"config": {
"expression": "if({this.custom.filters_active},\r\n\"#FF8C00\",\r\n\"#FFFFFF\")\r\n"
},
"type": "expr"
}
}
},
"props": {
"image": {
"height": 32,
"icon": {
"path": "material/filter_alt",
"style": {
"classes": ""
}
},
"position": "top",
"width": 32
},
"style": {
"classes": "Buttons/Button-Menu, filter-button",
"margin": 1
},
"text": "Filter",
"textStyle": {
"classes": "Text-Styles/Docked-Buttons"
}
},
"type": "ia.input.button"
},
{
"events": {
"component": {
"onActionPerformed": {
"config": {
"page": "/Command"
},
"scope": "C",
"type": "nav"
}
}
},
"meta": {
"name": "Control",
"tooltip": {
"enabled": true
}
},
"position": {
"basis": "70px"
},
"propConfig": {
"custom.has_role": {
"binding": {
"config": {
"expression": "{session.custom.fc}"
},
"transforms": [
{
"code": "#\trme_role \u003d value +\"-rme-all\"\n\trme_role \u003d \"eurme-ignition-developers\"\n\troles \u003d (self.session.props.auth.user.roles)\n\tif (rme_role.lower() in roles \n\tor rme_role.upper() in roles):\n\t\treturn True\n\telse:\n\t\treturn False",
"type": "script"
}
],
"type": "expr"
}
},
"meta.tooltip.text": {
"binding": {
"config": {
"expression": "if({this.custom.has_role}\u003d False, \r\n\"You do not have the required role to access this page\",\r\n\"Access controls page\")\r\n"
},
"type": "expr"
}
},
"props.style.classes": {
"binding": {
"config": {
"path": "session.props.theme"
},
"transforms": [
{
"code": "\tif \u0027dark\u0027 in value:\n\t\treturn \u0027Buttons/Button-Menu\u0027\n\telse:\n\t\treturn \u0027Buttons/Button-Menu\u0027",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"image": {
"height": 32,
"icon": {
"color": "#FFFFFF",
"path": "material/gamepad"
},
"position": "top",
"width": 32
},
"style": {
"margin": 1
},
"text": "Control",
"textStyle": {
"classes": "Text-Styles/Docked-Buttons"
}
},
"type": "ia.input.button"
},
{
"custom": {
"show": false
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tsystem.perspective.navigate(\"/Windows/Statistics\")"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Statistic",
"tooltip": {
"enabled": true,
"text": "Notifications"
}
},
"position": {
"basis": "70px"
},
"propConfig": {
"position.display": {
"binding": {
"config": {
"expression": "if(isNull({session.custom.download_url}), False, True)"
},
"enabled": false,
"type": "expr"
}
}
},
"props": {
"image": {
"height": 32,
"icon": {
"color": "#FCFFFC",
"path": "material/leaderboard"
},
"position": "top",
"width": 32
},
"style": {
"classes": "Buttons/Button-Menu",
"color": "#FFFFFF",
"margin": 1
},
"text": "Statistic",
"textStyle": {
"classes": "Text-Styles/Docked-Buttons"
}
},
"type": "ia.input.button"
},
{
"custom": {
"show": false
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tsystem.perspective.navigate(\"/Windows/Status\")\n\tself.session.custom.show_dpm_view \u003d False\n\tself.session.custom.show_dpm_device_view \u003d False"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Status",
"tooltip": {
"enabled": true,
"text": "Notifications"
}
},
"position": {
"basis": "70px"
},
"propConfig": {
"position.display": {
"binding": {
"config": {
"expression": ""
},
"enabled": false,
"type": "expr"
}
}
},
"props": {
"image": {
"height": 32,
"icon": {
"color": "#FFFFFD",
"path": "material/done"
},
"position": "top",
"width": 32
},
"style": {
"classes": "Buttons/Button-Menu",
"color": "#FFFFFF",
"margin": 1
},
"text": "Status",
"textStyle": {
"classes": "Text-Styles/Docked-Buttons"
}
},
"type": "ia.input.button"
},
{
"custom": {
"show": false
},
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tsystem.perspective.closePopup(\"DevicePopUP\")\n\tsystem.perspective.closePopup(\"StatusPopUP\")\n\tself.custom.show \u003d False\n\tsystem.perspective.navigate(\"/Help\")"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Help",
"tooltip": {
"enabled": true,
"text": "Navigate to the help wiki"
}
},
"position": {
"basis": "70px"
},
"propConfig": {
"props.style.classes": {
"binding": {
"config": {
"path": "session.props.theme"
},
"transforms": [
{
"code": "\tif \u0027dark\u0027 in value:\n\t\treturn \u0027Buttons/Button-Menu\u0027\n\telse:\n\t\treturn \u0027Buttons/Button-Menu\u0027",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"image": {
"height": 32,
"icon": {
"color": "#FFFFFF",
"path": "material/help_outline"
},
"position": "top",
"width": 32
},
"style": {
"margin": 1
},
"text": "Help",
"textStyle": {
"classes": "Text-Styles/Docked-Buttons"
}
},
"type": "ia.input.button"
},
{
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tsystem.perspective.navigateBack()"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Back",
"tooltip": {
"enabled": true,
"text": "Back"
}
},
"position": {
"basis": "70px"
},
"propConfig": {
"props.style.classes": {
"binding": {
"config": {
"path": "session.props.theme"
},
"transforms": [
{
"code": "\tif \u0027dark\u0027 in value:\n\t\treturn \u0027Buttons/Button-Menu\u0027\n\telse:\n\t\treturn \u0027Buttons/Button-Menu\u0027",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"image": {
"height": 32,
"icon": {
"color": "#FFFFFF",
"path": "material/keyboard_return"
},
"position": "top",
"width": 32
},
"style": {
"margin": 1
},
"text": "Back",
"textStyle": {
"fontSize": 10
}
},
"type": "ia.input.button"
}
],
"custom": {
"show_home_selector": true
},
"meta": {
"name": "root"
},
"propConfig": {
"props.style.classes": {
"binding": {
"config": {
"path": "session.props.theme"
},
"transforms": [
{
"code": "\tif \u0027dark\u0027 in value:\n\t\treturn \u0027Buttons/Button-Menu\u0027\n\telse:\n\t\treturn \u0027Buttons/Button-Menu\u0027",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"direction": "column",
"style": {}
},
"type": "ia.container.flex"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -0,0 +1,181 @@
{
"custom": {},
"params": {},
"props": {
"defaultSize": {
"height": 1080,
"width": 1920
}
},
"root": {
"children": [
{
"meta": {
"name": "overview"
},
"position": {
"height": 1,
"width": 1
},
"props": {
"fit": {
"mode": "fill"
},
"source": "/system/images/overview.svg"
},
"type": "ia.display.image"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"page": "/mcm01"
},
"scope": "C",
"type": "nav"
}
}
},
"meta": {
"name": "Button"
},
"position": {
"height": 0.0333,
"width": 0.0646,
"x": 0.1448,
"y": 0.5796
},
"props": {
"primary": false,
"text": "MCM01 - FLUID INBOUND"
},
"type": "ia.input.button"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"page": "/mcm02"
},
"scope": "C",
"type": "nav"
}
}
},
"meta": {
"name": "Button_0"
},
"position": {
"height": 0.0333,
"width": 0.0646,
"x": 0.5479,
"y": 0.6722
},
"props": {
"primary": false,
"text": "MCM02 - NC SORTER"
},
"type": "ia.input.button"
},
{
"meta": {
"name": "Camera"
},
"position": {
"height": 0.037,
"width": 0.0208,
"x": 0.0042,
"y": 0.3407
},
"props": {
"path": "autStand/Equipment/Camera",
"style": {
"overflow": "hidden"
}
},
"type": "ia.display.view"
},
{
"meta": {
"name": "Camera_0"
},
"position": {
"height": 0.037,
"width": 0.0208,
"x": 0.2531,
"y": 0.4
},
"props": {
"path": "autStand/Equipment/Camera",
"style": {
"overflow": "hidden"
}
},
"type": "ia.display.view"
},
{
"meta": {
"name": "Camera_1"
},
"position": {
"height": 0.037,
"width": 0.0208,
"x": 0.3953,
"y": 0.5676
},
"props": {
"path": "autStand/Equipment/Camera",
"style": {
"overflow": "hidden"
}
},
"type": "ia.display.view"
},
{
"meta": {
"name": "Camera_2"
},
"position": {
"height": 0.037,
"width": 0.0208,
"x": 0.4896,
"y": 0.3778
},
"props": {
"path": "autStand/Equipment/Camera",
"style": {
"overflow": "hidden"
}
},
"type": "ia.display.view"
},
{
"meta": {
"name": "Camera_3"
},
"position": {
"height": 0.037,
"width": 0.0208,
"x": 0.9703,
"y": 0.5778
},
"props": {
"path": "autStand/Equipment/Camera",
"style": {
"overflow": "hidden"
}
},
"type": "ia.display.view"
}
],
"meta": {
"name": "root"
},
"props": {
"mode": "percent"
},
"type": "ia.container.coord"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -205,6 +205,60 @@
"title": "", "title": "",
"viewPath": "autStand/Overview/BNA8" "viewPath": "autStand/Overview/BNA8"
}, },
"/autStand/Alarms": {
"docks": {
"bottom": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "cover",
"handle": "show",
"iconUrl": "",
"id": "autStand",
"modal": false,
"resizable": false,
"show": "onDemand",
"size": 165,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Footer"
}
],
"left": [
{
"anchor": "fixed",
"autoBreakpoint": 805,
"content": "auto",
"handle": "autoHide",
"iconUrl": "",
"id": "Docked-West",
"modal": false,
"resizable": false,
"show": "auto",
"size": 70,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Docked-West"
}
],
"top": [
{
"anchor": "fixed",
"autoBreakpoint": 480,
"content": "auto",
"handle": "hide",
"iconUrl": "",
"id": "header-autStand",
"modal": false,
"resizable": false,
"show": "visible",
"size": 50,
"viewParams": {},
"viewPath": "autStand/Docked_Views/Header"
}
]
},
"title": "",
"viewPath": "autStand/Alarms/RealTime"
},
"/cameras": { "/cameras": {
"docks": { "docks": {
"bottom": [ "bottom": [

View File

@ -246,7 +246,7 @@
"angle": "-90deg" "angle": "-90deg"
}, },
"width": 5, "width": 5,
"x": 10, "x": 5,
"y": 15 "y": 15
}, },
"propConfig": { "propConfig": {
@ -306,7 +306,8 @@
}, },
{ {
"meta": { "meta": {
"name": "BCN1_AMB" "name": "BCN1_AMB",
"visible": false
}, },
"position": { "position": {
"height": 5, "height": 5,

View File

@ -0,0 +1,17 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"view.json",
"thumbnail.png"
],
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-18T16:18:33Z"
},
"lastModificationSignature": "f1a6186325c1eb03e4a69c27678301699368abd35ff5cdae58977a03dacc26c8"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@
"children": [ "children": [
{ {
"custom": { "custom": {
"show": false "show": true
}, },
"events": { "events": {
"component": { "component": {
@ -196,13 +196,13 @@
}, },
{ {
"custom": { "custom": {
"show": false "show": true
}, },
"events": { "events": {
"component": { "component": {
"onActionPerformed": { "onActionPerformed": {
"config": { "config": {
"script": "\tsystem.perspective.closePopup(\"DevicePopUP\")\n\tsystem.perspective.closePopup(\"StatusPopUP\")\n\tself.custom.show \u003d False\n\tsystem.perspective.navigate(\"/Real-Time\")" "script": "\tsystem.perspective.closePopup(\"DevicePopUP\")\n\tsystem.perspective.closePopup(\"StatusPopUP\")\n\tself.custom.show \u003d False\n\tsystem.perspective.navigate(\"/autStand/Alarms\")"
}, },
"scope": "G", "scope": "G",
"type": "script" "type": "script"

View File

@ -0,0 +1,62 @@
WITH Active AS (
SELECT
ae.id,
ae.eventtime,
ae.eventid,
ae.source,
ae.priority,
ae.displaypath,
TIMESTAMPDIFF(SECOND, ae.eventtime, NOW()) AS duration_seconds
FROM alarm_events ae
WHERE ae.eventtype = 0
AND NOT EXISTS (
SELECT 1 FROM alarm_events ae_clear
WHERE ae_clear.eventid = ae.eventid
AND ae_clear.eventtype = 1
)
AND ae.displaypath NOT LIKE '%System Startup%'
AND ae.source NOT LIKE '%System Startup%'
-- Priority filter using FIND_IN_SET for comma-separated values
AND (
:priorityList IS NULL
OR :priorityList = ''
OR FIND_IN_SET(ae.priority, :priorityList) > 0
)
GROUP BY ae.id
),
SingleMyTag AS (
SELECT aed.id, aed.strValue
FROM alarm_event_data aed
WHERE aed.propname = 'myTag'
GROUP BY aed.id
)
SELECT
Active.id AS ID,
Active.eventtime AS StartTimestamp,
NULL AS EndTimestamp, -- no end time since it's still active
CONCAT(
LPAD(FLOOR(Active.duration_seconds / 3600), 2, '0'), ':',
LPAD(FLOOR((Active.duration_seconds % 3600) / 60), 2, '0'), ':',
LPAD(Active.duration_seconds % 60, 2, '0')
) AS Duration,
CONCAT(Active.displaypath, ' - ', SUBSTRING_INDEX(Active.source, ':/alm:', -1)) AS Description,
CASE Active.priority
WHEN 0 THEN 'Diagnostic'
WHEN 1 THEN 'Low'
WHEN 2 THEN 'Medium'
WHEN 3 THEN 'High'
WHEN 4 THEN 'Critical'
ELSE 'Unknown'
END AS Priority,
CONCAT(
Active.displaypath,
'.HMI.',
SUBSTRING_INDEX(aed.strValue, '/', -1)
) AS Tag,
SUBSTRING_INDEX(SUBSTRING_INDEX(aed.strValue, '/', 2), '/', -1) AS Location ,
aed.strValue AS FullTag,
Active.displaypath as Device
FROM Active
LEFT JOIN SingleMyTag aed
ON aed.id = Active.id
ORDER BY Active.eventtime DESC;

View File

@ -0,0 +1,40 @@
{
"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": "cf47efbfe13b48021895feacfbb1dece1a6026c2e0c5b1fac39ae2f66500bce0",
"permissions": [
{
"zone": "default",
"role": ""
}
],
"lastModification": {
"actor": "external",
"timestamp": "2025-08-08T11:51:47Z"
},
"parameters": [
{
"type": "Parameter",
"identifier": "priorityList",
"sqlType": 7
}
]
}
}

View File

@ -0,0 +1,31 @@
WITH Active AS (
SELECT
ae.id,
ae.eventid,
ae.priority,
aed.strValue
FROM alarm_events ae
LEFT JOIN alarm_event_data aed ON ae.id = aed.id AND aed.propname = 'myTag'
WHERE ae.eventtype = 0
AND NOT EXISTS (
SELECT 1 FROM alarm_events ae_clear
WHERE ae_clear.eventid = ae.eventid
AND ae_clear.eventtype = 1
)
AND ae.displaypath NOT LIKE '%System Startup%'
AND ae.source NOT LIKE '%System Startup%'
)
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(strValue, '/', 2), '/', -1) AS Location,
CASE priority
WHEN 0 THEN 'Diagnostic'
WHEN 1 THEN 'Low'
WHEN 2 THEN 'Medium'
WHEN 3 THEN 'High'
WHEN 4 THEN 'Critical'
ELSE 'Unknown'
END AS Priority,
COUNT(*) AS Count
FROM Active
GROUP BY Location, Priority
ORDER BY Location, Priority;

View File

@ -0,0 +1,33 @@
{
"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": "80f83b24faa23ffaeab4f29512af25ef545b9e049281c352198e65c896d0461b",
"permissions": [
{
"zone": "default",
"role": ""
}
],
"lastModification": {
"actor": "external",
"timestamp": "2025-08-18T15:48:26Z"
}
}
}

View File

@ -0,0 +1,71 @@
WITH Active AS (
SELECT
ae.id,
ae.eventtime,
ae.eventid,
ae.source,
ae.priority,
ae.displaypath,
TIMESTAMPDIFF(SECOND, ae.eventtime, COALESCE(ae_clear.eventtime, NOW())) AS duration_seconds
FROM alarm_events ae
LEFT JOIN alarm_events ae_clear
ON ae.eventid = ae_clear.eventid AND ae_clear.eventtype = 1
WHERE ae.eventtype = 0
AND ae.displaypath NOT LIKE '%System Startup%'
AND ae.source NOT LIKE '%System Startup%'
GROUP BY ae.id -- Ensure one row per alarm
),
SingleMyTag AS (
SELECT aed.id, aed.strValue
FROM alarm_event_data aed
WHERE aed.propname = 'myTag'
GROUP BY aed.id -- Collapse duplicates by id
),
SingleClear AS (
SELECT eventid, MIN(eventtime) AS eventtime
FROM alarm_events
WHERE eventtype = 1
GROUP BY eventid
)
SELECT
Active.id AS ID,
Active.eventtime AS StartTimestamp,
Clear.eventtime AS EndTimestamp,
CONCAT(
LPAD(FLOOR(Active.duration_seconds / 3600), 2, '0'), ':',
LPAD(FLOOR((Active.duration_seconds % 3600) / 60), 2, '0'), ':',
LPAD(Active.duration_seconds % 60, 2, '0')
) AS Duration,
CONCAT(Active.displaypath, ' - ', SUBSTRING_INDEX(Active.source, ':/alm:', -1)) AS Description,
CASE Active.priority
WHEN 0 THEN 'Diagnostic'
WHEN 1 THEN 'Low'
WHEN 2 THEN 'Medium'
WHEN 3 THEN 'High'
WHEN 4 THEN 'Critical'
ELSE 'Unknown'
END AS Priority,
CONCAT(
Active.displaypath,
'.HMI.',
SUBSTRING_INDEX(aed.strValue, '/', -1)
) AS Tag,
SUBSTRING_INDEX(SUBSTRING_INDEX(aed.strValue, '/', 2), '/', -1) AS Location ,
aed.strValue AS FullTag,
Active.displaypath as Device
FROM Active
LEFT JOIN SingleClear Clear
ON Active.eventid = Clear.eventid
LEFT JOIN SingleMyTag aed
ON aed.id = Active.id
ORDER BY Active.eventtime DESC;

View File

@ -0,0 +1,33 @@
{
"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": "357393576fe650f77047d722c3a7e592f814406f28a97d27c235d6e891d7ff2a",
"permissions": [
{
"zone": "default",
"role": ""
}
],
"lastModification": {
"actor": "external",
"timestamp": "2025-08-08T11:51:47Z"
}
}
}

View File

@ -0,0 +1,64 @@
SELECT
CONCAT(Active.displaypath, ' - ', SUBSTRING_INDEX(Active.source, ':/alm:', -1)) AS Description,
SUBSTRING_INDEX(SUBSTRING_INDEX(aed.strValue, '/', 2), '/', -1) AS Location,
-- Formatted OPC-style tag
CONCAT(
Active.displaypath,
'.HMI.',
SUBSTRING_INDEX(aed.strValue, '/', -1)
) AS Tag,
CASE Active.priority
WHEN 0 THEN 'Diagnostic'
WHEN 1 THEN 'Low'
WHEN 2 THEN 'Medium'
WHEN 3 THEN 'High'
WHEN 4 THEN 'Critical'
ELSE 'Unknown'
END AS Priority,
-- First and last seen times for this alarm
MIN(Active.eventtime) AS FirstTimestamp,
MAX(Active.eventtime) AS LastTimestamp,
-- Total duration summed from each active-clear pair
CONCAT(
LPAD(FLOOR(SUM(Active.duration_seconds) / 3600), 2, '0'), ':',
LPAD(FLOOR((SUM(Active.duration_seconds) % 3600) / 60), 2, '0'), ':',
LPAD(SUM(Active.duration_seconds) % 60, 2, '0')
) AS Duration,
-- Total number of activations
COUNT(*) AS Count,
-- Newly added columns
aed.strValue AS FullTag,
Active.displaypath AS Device
FROM (
SELECT
ae.id,
ae.source,
ae.eventid,
ae.eventtime,
ae.priority,
ae.displaypath,
TIMESTAMPDIFF(SECOND, ae.eventtime, COALESCE(ae_clear.eventtime, NOW())) AS duration_seconds
FROM alarm_events ae
LEFT JOIN alarm_events ae_clear
ON ae.eventid = ae_clear.eventid AND ae_clear.eventtype = 1
WHERE ae.eventtype = 0
AND ae.displaypath NOT LIKE '%System Startup%'
AND ae.source NOT LIKE '%System Startup%'
) AS Active
-- OPC tag path for building .hmi.Tag output
LEFT JOIN alarm_event_data aed
ON aed.id = Active.id AND aed.propname = 'myTag'
-- 🔹 Group by the full unique alarm key (tag + alarm name)
GROUP BY Active.source, Active.displaypath, aed.strValue
ORDER BY FirstTimestamp DESC;

View File

@ -0,0 +1,33 @@
{
"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": "7763890ee1746da8f25d0591716a167839949a337cf74bc0932b0f7e5ea4534b",
"permissions": [
{
"zone": "default",
"role": ""
}
],
"lastModification": {
"actor": "external",
"timestamp": "2025-08-18T15:48:26Z"
}
}
}

View File

@ -0,0 +1,6 @@
def set_priority_filters(self):
filters = self.props.value
payload = {}
payload["data"] = filters
system.perspective.sendMessage("set-priority-filters", payload = payload,
scope = "page")

View File

@ -0,0 +1,17 @@
{
"scope": "A",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"code.py"
],
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-18T16:17:47Z"
},
"hintScope": 2,
"lastModificationSignature": "f67ab11f1918cf781f4baa586423a5f4cb4c5f47cc67fb6afec9305d7f8dc371"
}
}