This commit is contained in:
gigi.mamaladze 2025-06-18 16:23:14 +04:00
parent d04a4e5f35
commit cf8c302e03
10 changed files with 1017 additions and 368 deletions

View File

@ -2,7 +2,11 @@
"pages": {
"/": {
"title": "",
"viewPath": "Simulations/Station_JR_PB"
"viewPath": "Simulations/Nav"
},
"/APF_VFD": {
"title": "",
"viewPath": "Simulations/VFD_APF"
},
"/Command": {
"title": "",
@ -36,6 +40,14 @@
"/Real-Time": {
"viewPath": "Alarm-Views/RealTime"
},
"/Station_EPC": {
"title": "",
"viewPath": "Simulations/Station_EPC"
},
"/Station_JR": {
"title": "",
"viewPath": "Simulations/Station_JR_PB"
},
"/Temperature": {
"title": "",
"viewPath": "Main-Views/TempMonitoring"

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-06-15T15:33:58Z"
},
"lastModificationSignature": "9616454f3323bca3b71b52e2d029c87565a7a0e9ca637cf4c980403399f177ce"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -0,0 +1,100 @@
{
"custom": {},
"params": {},
"props": {},
"root": {
"children": [
{
"events": {
"dom": {
"onClick": {
"config": {
"page": "/APF_VFD"
},
"scope": "C",
"type": "nav"
}
}
},
"meta": {
"name": "Button"
},
"position": {
"height": 101,
"rotate": {
"anchor": "100% 129%"
},
"width": 169,
"x": 65,
"y": 149
},
"props": {
"text": "APF/VFD"
},
"type": "ia.input.button"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"page": "/Station_JR"
},
"scope": "C",
"type": "nav"
}
}
},
"meta": {
"name": "Button_0"
},
"position": {
"height": 104,
"rotate": {
"anchor": "75% 25%"
},
"width": 188,
"x": 264,
"y": 146
},
"props": {
"text": "Station_JR"
},
"type": "ia.input.button"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"page": "/Station_EPC"
},
"scope": "C",
"type": "nav"
}
}
},
"meta": {
"name": "Button_1"
},
"position": {
"height": 105,
"rotate": {
"anchor": "100% -106%"
},
"width": 184,
"x": 483,
"y": 145
},
"props": {
"text": "Station_EPC"
},
"type": "ia.input.button"
}
],
"meta": {
"name": "root"
},
"type": "ia.container.coord"
}
}

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-06-15T17:54:34Z"
},
"lastModificationSignature": "d42d4bb2237b811ac7af2d0388892855cc023ec4f868670e318db6872d3db22e"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,107 @@
{
"custom": {},
"params": {},
"props": {},
"root": {
"children": [
{
"meta": {
"name": "UL1_3_VFD1"
},
"position": {
"height": 186.64,
"width": 97.92,
"x": 460.6,
"y": 287.6
},
"props": {
"params": {
"directionLeft": false,
"forceFaultStatus": null,
"forceRunningStatus": null,
"tagProps": [
"/System/Conveyor/UL1_3_VFD1",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value"
]
},
"path": "Symbol-Views/Equipment-Views/Status"
},
"type": "ia.display.view"
},
{
"meta": {
"name": "UL1_3_VFD2"
},
"position": {
"height": 186.64,
"width": 97.92,
"x": 260.6,
"y": 294.6
},
"props": {
"params": {
"directionLeft": false,
"forceFaultStatus": null,
"forceRunningStatus": null,
"tagProps": [
"System/Conveyor/APF/FL1038_2_VFD1",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value"
]
},
"path": "Symbol-Views/Equipment-Views/Status"
},
"type": "ia.display.view"
},
{
"meta": {
"name": "Label"
},
"position": {
"height": 32,
"width": 50,
"x": 459.5555610656738,
"y": 262.59722900390625
},
"props": {
"text": "VFD"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Label_0"
},
"position": {
"height": 32,
"width": 50,
"x": 267,
"y": 260
},
"props": {
"text": "APF"
},
"type": "ia.display.label"
}
],
"meta": {
"name": "root"
},
"type": "ia.container.coord"
}
}

View File

@ -7,7 +7,7 @@
},
"params": {
"tagProps": [
"/System/Conveyor/UL1_11_VFD1",
"System/Conveyor/APF/UL1_3",
"value",
"value",
"value",
@ -125,7 +125,7 @@
},
"props": {
"defaultSize": {
"width": 400
"width": 403
}
},
"root": {
@ -167,7 +167,7 @@
"dom": {
"onClick": {
"config": {
"script": "\tsystem.perspective.closeDock(\u0027Docked-East-JR\u0027)\n\tself.getSibling(\"tabs\").props.currentTabIndex \u003d 0"
"script": "\tsystem.perspective.closeDock(\u0027Docked-East-VFD\u0027)\n\tself.getSibling(\"tabs\").props.currentTabIndex \u003d 0"
},
"scope": "G",
"type": "script"
@ -414,7 +414,7 @@
"props.text": {
"binding": {
"config": {
"expression": "case({..../State.custom.state},\r\n0, \"Off(Inactive)\",\r\n1, \"Enabled, Not Running\",\r\n2, \"Running\",\r\n3, \"Energy Management\",\r\n4, \"Jammed\",\r\n5, \"Full\",\r\n6, \"Maintenance Mode / Conveyor Stopped In Maintenance Mode\",\r\n7, \"VFD Faulted\",\r\n8, \"Communication Fault\",\r\n9, \"E-Stop\",\r\n13,\"Encoder_Fault\",\r\n14,\"Stopped\",\r\n61,\"Conveyor Running in Maintenance Mode\",\r\n\"Unknown\")"
"expression": "case({..../State.custom.state},\r\n0, \"Off(Inactive)\",\r\n1, \"Enabled, Not Running\",\r\n2, \"Running\",\r\n3, \"Energy Management\",\r\n4, \"Jammed\",\r\n5, \"Full\",\r\n6, \"Maintenance Mode / Conveyor Stopped In Maintenance Mode\",\r\n7, \"Communication Fault\",\r\n8, \"VFD Fault\",\r\n9, \"E-Stop\",\r\n13,\"Encoder_Fault\",\r\n14,\"Stopped\",\r\n61,\"Conveyor Running in Maintenance Mode\",\r\n\"Unknown\")"
},
"type": "expr"
}
@ -584,17 +584,54 @@
"basis": "50%",
"grow": 1
},
"propConfig": {
"props.text": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/VFD_Type"
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},\u0027Unknown (Freq/Velocity\u0027)",
"type": "expression"
},
{
"fallback": "Unknown (Freq/Velocity",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "Velocity"
},
{
"input": 0,
"output": "Frequency"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
}
}
},
"props": {
"style": {
"paddingLeft": 100
},
"text": "Frequency"
}
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Frequency"
"name": "Frequency_Velocity"
},
"position": {
"basis": "50%",
@ -610,12 +647,12 @@
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Frequenncy"
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/VFD_Type"
},
"transforms": [
{
"expression": "if(coalesce({value},{view.params.forceFaultStatus},\u0027Unknown\u0027) \u003d \u0027Unknown\u0027, \u0027Unknown\u0027, coalesce({value},{view.params.forceFaultStatus}) + \" Hz\")",
"type": "expression"
"code": "\n provider \u003d self.session.custom.fc + \"_SCADA_TAG_PROVIDER\"\n baseTag \u003d self.view.params.tagProps[0]\n basePath \u003d \"[\"+ provider + \"]\" + baseTag\n child \u003d \"\"\n unit \u003d \"\"\n \n\n if value \u003d\u003d 1:\n child \u003d \"Velocity\"\n unit \u003d \" Rev/s\"\n else:\n child \u003d \"Frequency\"\n unit \u003d \" Hz\"\n\n fullPath \u003d basePath + \"/\" + child\n tagValue \u003d system.tag.readBlocking([fullPath])[0]\n result \u003d tagValue.value\n\t\n if result is None or str(result) \u003d\u003d \"None\":\n return \"Unknown\"\n else:\n return str(result) + unit",
"type": "script"
}
],
"type": "tag"
@ -648,7 +685,7 @@
}
],
"meta": {
"name": "Frequency"
"name": "Frequency_Velocity"
},
"position": {
"basis": "35px"
@ -1128,17 +1165,54 @@
"children": [
{
"meta": {
"name": "Speed_At_60Hz"
"name": "Speed_At_60Hz_30rev"
},
"position": {
"basis": "50px",
"grow": 1
},
"propConfig": {
"props.text": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/VFD_Type"
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},\u0027Unknown (60hz/30rev\u0027)",
"type": "expression"
},
{
"fallback": "Unknown (60hz/30rev",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "Speed At 30 rev/s"
},
{
"input": 0,
"output": "Speed At 60Hz"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
}
}
},
"props": {
"style": {
"padding": 20
},
"text": "Speed At 60Hz",
"textStyle": {
"color": "#7D7D7D"
}
@ -1150,7 +1224,7 @@
"component": {
"onActionPerformed": {
"config": {
"script": "\tpropMaintMode \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Maintenance/Speed_At_60Hz\"\n\tvalue \u003d self.props.value\n\tsystem.tag.writeAsync([propMaintMode], [value])"
"script": "\n\tvfdType \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\" + self.view.params.tagProps[0] + \"/VFD_Type\"\n\tprop \u003d \"\"\n\t\n\tvfdTypeVal \u003d system.tag.readBlocking([vfdType])[0].value\n\t\n\tif vfdTypeVal \u003d\u003d 1:\n\t\tprop \u003d \"Speed_At_30rev\"\n\telse:\n\t\tprop \u003d \"Speed_At_60Hz\"\n\t\t\n\tpropHzRev \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\" + self.view.params.tagProps[0] + \"/\" + prop\n\tvalue \u003d self.props.value\n\tsystem.tag.writeAsync([propHzRev], [value])\n\t\t\n\t"
},
"scope": "G",
"type": "script"
@ -1175,15 +1249,20 @@
"props.value": {
"binding": {
"config": {
"bidirectional": true,
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Speed_At_60Hz"
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/VFD_Type"
},
"transforms": [
{
"code": "\n provider \u003d self.session.custom.fc + \"_SCADA_TAG_PROVIDER\"\n baseTag \u003d self.view.params.tagProps[0]\n basePath \u003d \"[\"+ provider + \"]\" + baseTag\n child \u003d \"\"\n \n\n if value \u003d\u003d 1:\n child \u003d \"Speed_At_30rev\"\n else:\n child \u003d \"Speed_At_60Hz\"\n\n fullPath \u003d basePath + \"/\" + child\n tagValue \u003d system.tag.readBlocking([fullPath])[0]\n result \u003d tagValue.value\n\t\n \n return result",
"type": "script"
}
],
"type": "tag"
}
}
@ -1207,7 +1286,7 @@
}
],
"meta": {
"name": "Speed_At_60Hz"
"name": "Speed_At_60Hz_30rev"
},
"position": {
"basis": "46px"
@ -1245,7 +1324,7 @@
"component": {
"onActionPerformed": {
"config": {
"script": "\tpropMaintMode \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Maintenance/Cycle_Time_Factor\"\n\tvalue \u003d self.props.value\n\tsystem.tag.writeAsync([propMaintMode], [value])"
"script": "\tpropMaintMode \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+ self.view.params.tagProps[0] + \"/Cycle_Time_Factor\"\n\tvalue \u003d self.props.value\n\tsystem.tag.writeAsync([propMaintMode], [value])"
},
"scope": "G",
"type": "script"
@ -1715,14 +1794,49 @@
],
"type": "tag"
}
},
"props.text": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Maintenance/Direction"
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},\u0027Direction\u0027)",
"type": "expression"
},
{
"fallback": "Direction",
"inputType": "scalar",
"mappings": [
{
"input": false,
"output": "Direction Backward"
},
{
"input": true,
"output": "Direction Forward"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
}
}
},
"props": {
"style": {
"backgroundColor": "#0068F7",
"marginBottom": 10
},
"text": "Direction"
}
},
"type": "ia.input.button"
}
@ -1784,7 +1898,7 @@
"grow": 1
},
"props": {
"currentTabIndex": 2,
"currentTabIndex": 1,
"menuType": "modern",
"tabSize": {
"width": 1000

View File

@ -5,11 +5,11 @@
"display_icon": true,
"plc": "value",
"priority": 0,
"priority_string": "Medium",
"priority_string": "No Active Alarms",
"running": false,
"searchId": "PLC01",
"state": 131,
"state_string": "Disconnected"
"state": 0,
"state_string": "Off(Inactive)"
},
"params": {
"angle": 0,
@ -278,7 +278,7 @@
"custom.state_string": {
"binding": {
"config": {
"expression": "case({view.custom.state},\r\n0, \"Off(Inactive)\",\r\n1, \"Enabled, Not Running\",\r\n2, \"Running\",\r\n3, \"Energy Management\",\r\n4, \"Jammed\",\r\n5, \"Full\",\r\n6, \"Maintenance Mode / Conveyor Stopped In Maintenance Mode\",\r\n7, \"VFD Faulted\",\r\n8, \"Communication Fault\",\r\n9, \"E-Stop\",\r\n13,\"Encoder_Fault\",\r\n14,\"Stopped\",\r\n61,\"Conveyor Running In Maintenance Mode\",\r\n131, \"Disconnected\",\r\n\"Unknown\")"
"expression": "case({view.custom.state},\r\n0, \"Off(Inactive)\",\r\n1, \"Enabled, Not Running\",\r\n2, \"Running\",\r\n3, \"Energy Management\",\r\n4, \"Jammed\",\r\n5, \"Full\",\r\n6, \"Maintenance Mode / Conveyor Stopped In Maintenance Mode\",\r\n7, \"Communication Fault\",\r\n8, \"VFD Fault\",\r\n9, \"E-Stop\",\r\n13,\"Encoder_Fault\",\r\n14,\"Stopped\",\r\n61,\"Conveyor Running In Maintenance Mode\",\r\n131, \"Disconnected\",\r\n\"Unknown\")"
},
"type": "expr"
},

File diff suppressed because it is too large Load Diff