423 lines
12 KiB
Plaintext
423 lines
12 KiB
Plaintext
{
|
|
"custom": {
|
|
"CPStateEngUnit": null,
|
|
"allTags": [
|
|
{
|
|
"dataType": "Int4",
|
|
"displaySelection": 0,
|
|
"format": "0.0",
|
|
"instancePosition": 4,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source 1 Frequency",
|
|
"numDecimals": 1,
|
|
"options": []
|
|
},
|
|
{
|
|
"dataType": "Int4",
|
|
"displaySelection": 0,
|
|
"format": "0.0",
|
|
"instancePosition": 4,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source 2 Frequency",
|
|
"numDecimals": 1,
|
|
"options": []
|
|
},
|
|
{
|
|
"dataType": "",
|
|
"displaySelection": 0,
|
|
"format": "0.0",
|
|
"instancePosition": 3,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "CP State Data",
|
|
"numDecimals": 1,
|
|
"options": []
|
|
},
|
|
{
|
|
"dataType": "Int4",
|
|
"displaySelection": 0,
|
|
"format": "0.0",
|
|
"instancePosition": 5,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source 1 Voltage AB",
|
|
"numDecimals": 1,
|
|
"options": []
|
|
},
|
|
{
|
|
"dataType": "Int4",
|
|
"displaySelection": 0,
|
|
"format": "0.0",
|
|
"instancePosition": 6,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source 1 Voltage BC",
|
|
"numDecimals": 1,
|
|
"options": []
|
|
},
|
|
{
|
|
"dataType": "Int4",
|
|
"displaySelection": 0,
|
|
"format": "0.0",
|
|
"instancePosition": 7,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source 1 Voltage CA",
|
|
"numDecimals": 1,
|
|
"options": []
|
|
},
|
|
{
|
|
"dataType": "Int4",
|
|
"displaySelection": 0,
|
|
"format": "0.0",
|
|
"instancePosition": 5,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source 2 Voltage AB",
|
|
"numDecimals": 1,
|
|
"options": []
|
|
},
|
|
{
|
|
"dataType": "Int4",
|
|
"displaySelection": 0,
|
|
"format": "0.0",
|
|
"instancePosition": 6,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source 2 Voltage BC",
|
|
"numDecimals": 1,
|
|
"options": []
|
|
},
|
|
{
|
|
"dataType": "Int4",
|
|
"displaySelection": 0,
|
|
"format": "0.0",
|
|
"instancePosition": 7,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source 2 Voltage CA",
|
|
"numDecimals": 1,
|
|
"options": []
|
|
},
|
|
{
|
|
"dataType": "Boolean",
|
|
"displaySelection": 1,
|
|
"format": "0.0",
|
|
"instancePosition": 11,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Bypass Source 1",
|
|
"numDecimals": 1,
|
|
"options": [
|
|
"False",
|
|
"Bypassed"
|
|
]
|
|
},
|
|
{
|
|
"dataType": "",
|
|
"displaySelection": 1,
|
|
"format": "0.0",
|
|
"instancePosition": 2,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "CP State",
|
|
"numDecimals": 1
|
|
},
|
|
{
|
|
"dataType": "Boolean",
|
|
"displaySelection": 1,
|
|
"format": "0.0",
|
|
"instancePosition": 9,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "On Source 1",
|
|
"numDecimals": 1,
|
|
"options": [
|
|
"False",
|
|
"True"
|
|
]
|
|
},
|
|
{
|
|
"dataType": "Boolean",
|
|
"displaySelection": 1,
|
|
"format": "0.0",
|
|
"instancePosition": 9,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "On Source 2",
|
|
"numDecimals": 1,
|
|
"options": [
|
|
"False",
|
|
"True"
|
|
]
|
|
},
|
|
{
|
|
"dataType": "Int4",
|
|
"displaySelection": 1,
|
|
"format": "0.0",
|
|
"instancePosition": 1,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Operating Mode",
|
|
"numDecimals": 1,
|
|
"options": [
|
|
"Normal",
|
|
"Emergency"
|
|
]
|
|
},
|
|
{
|
|
"dataType": "Boolean",
|
|
"displaySelection": 1,
|
|
"format": "0.0",
|
|
"instancePosition": 1,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source",
|
|
"numDecimals": 1,
|
|
"options": [
|
|
"Utility",
|
|
"Generator"
|
|
]
|
|
},
|
|
{
|
|
"dataType": "Boolean",
|
|
"displaySelection": 1,
|
|
"format": "0.0",
|
|
"instancePosition": 8,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source 1 Available",
|
|
"numDecimals": 1,
|
|
"options": [
|
|
"not Available",
|
|
"Available"
|
|
]
|
|
},
|
|
{
|
|
"dataType": "Boolean",
|
|
"displaySelection": 1,
|
|
"format": "0.0",
|
|
"instancePosition": 10,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source 1 Breaker Tripped",
|
|
"numDecimals": 1,
|
|
"options": [
|
|
"Normal",
|
|
"Tripped"
|
|
]
|
|
},
|
|
{
|
|
"dataType": "Boolean",
|
|
"displaySelection": 1,
|
|
"format": "0.0",
|
|
"instancePosition": 8,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source 2 Available",
|
|
"numDecimals": 1,
|
|
"options": [
|
|
"not Available",
|
|
"Available"
|
|
]
|
|
},
|
|
{
|
|
"dataType": "Boolean",
|
|
"displaySelection": 1,
|
|
"format": "0.0",
|
|
"instancePosition": 10,
|
|
"instanceStyle": {
|
|
"classes": ""
|
|
},
|
|
"name": "Source 2 Breaker Tripped",
|
|
"numDecimals": 1,
|
|
"options": [
|
|
"Normal",
|
|
"Tripped"
|
|
]
|
|
}
|
|
],
|
|
"textArray": [
|
|
"Load on Normal, Normal OK",
|
|
"Timer 1C (TDES) running",
|
|
"Waiting for Emergency acceptable",
|
|
"Transfer to Emergency inhibited by F6Z",
|
|
"Transfer to Emergency inhibited by F34B",
|
|
"Timer 2B (TDNE) running",
|
|
"Timer 31F (N to E pre transfer signal) running",
|
|
"In phase monitor time delay (OTTS N to E transfer)",
|
|
"Waiting for in phase (OTTS N to E transfer)",
|
|
"In phase monitor time delay with load shed",
|
|
"Waiting for in phase with load shed",
|
|
"In sync monitor time delay",
|
|
"Waiting for in sync",
|
|
"Sources paralleled",
|
|
"Load disconnected CT bypass",
|
|
"Load disconnected",
|
|
"Normal to Emergency load shed is active",
|
|
"Timer 31M running",
|
|
"Load on Emergency waiting for removal of transfer requests",
|
|
"Timer 3A running",
|
|
"Transfer to Normal inhibited by G6C",
|
|
"Transfer to N inhibited by F34A",
|
|
"Timer 31G runing",
|
|
"In phase monitor time time delay",
|
|
"waiting for in phase",
|
|
"In phase monitor time delay with load shed",
|
|
"Waiting for in shed load shed",
|
|
"In sync monitor time delay",
|
|
"Waiting for in sync",
|
|
"Sources paralleled",
|
|
"Load disconnected CT bypass",
|
|
"Load disconnected",
|
|
"Emergency to Normal load shed is active",
|
|
"Timer 31N",
|
|
"Timer 2E (Cooldown)",
|
|
"Timer 1C while timer 2E running",
|
|
"Power up inhibit",
|
|
"Transition state"
|
|
]
|
|
},
|
|
"params": {
|
|
"tagPath": "[Ignition_SATB1_IO1_default]ER1242/SWBD/SATB1_ER1242_ATS"
|
|
},
|
|
"propConfig": {
|
|
"custom.CPStateEngUnit": {
|
|
"binding": {
|
|
"config": {
|
|
"fallbackDelay": 2.5,
|
|
"mode": "indirect",
|
|
"references": {
|
|
"tagPath": "{view.params.tagPath}"
|
|
},
|
|
"tagPath": "{tagPath}/CP State"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"code": "\tsystem.tag.writeBlocking(self.params.tagPath+\u0027/CP State Data.EngUnit\u0027,self.custom.textArray[value])\n\t#[Ignition_SATB1_IO1_default]ER1242/SWBD/SATB1_ER1242_ATS/CP State Data.EngUnit\n\treturn self.custom.textArray[value]",
|
|
"type": "script"
|
|
}
|
|
],
|
|
"type": "tag"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.allTags": {
|
|
"binding": {
|
|
"config": {
|
|
"struct": {
|
|
"tagPath": "{view.params.tagPath}"
|
|
},
|
|
"waitOnAll": true
|
|
},
|
|
"enabled": false,
|
|
"transforms": [
|
|
{
|
|
"code": "\toutput \u003d []\n\t# Simulate fetching tag configurations and sorting by name\n\tnodes \u003d system.tag.getConfiguration(value[\u0027tagPath\u0027], True)\n\tfor item in nodes:\n\t if \u0027tags\u0027 in item:\n\t \tsortedTags \u003d sorted(item[\u0027tags\u0027], key\u003dlambda x: x[\u0027name\u0027])\n\t \tsortedTags \u003d sorted(sortedTags, key\u003dlambda x: x.get(\u0027engUnit\u0027, \u0027misc\u0027) if x.get(\u0027engUnit\u0027, \u0027misc\u0027) !\u003d \"\" else \u0027misc\u0027)\n for tagConfig in sortedTags:\n if str(tagConfig[\u0027tagType\u0027]) \u003d\u003d \u0027AtomicTag\u0027:\n name \u003d tagConfig.get(\"name\", \"\")\n dataType \u003d tagConfig.get(\"dataType\", \"\")\n tagPath \u003d value[\u0027tagPath\u0027] + \u0027/\u0027 + name\n if dataType \u003d\u003d \u0027Boolean\u0027:\n \tdisplaySel \u003d 1\n else:\n \tdisplaySel \u003d 0\n instance \u003d {\n \"instanceStyle\": {\n \"classes\": \"\"\n },\n \"instancePosition\": 999,\n \"name\": name,\n \"numDecimals\": 1,\n \"dataType\": dataType,\n \"displaySelection\": displaySel,\n \"format\": \"0.0\",\n \"options\": []\n }\n output.append(instance)\n\t# Return or process the sorted output\n\treturn output",
|
|
"type": "script"
|
|
}
|
|
],
|
|
"type": "expr-struct"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.allTags[10].options": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.custom.textArray"
|
|
},
|
|
"type": "property"
|
|
}
|
|
},
|
|
"custom.textArray": {
|
|
"persistent": true
|
|
},
|
|
"params.tagPath": {
|
|
"paramDirection": "input",
|
|
"persistent": true
|
|
}
|
|
},
|
|
"props": {},
|
|
"root": {
|
|
"children": [
|
|
{
|
|
"meta": {
|
|
"name": "FlexRepeater"
|
|
},
|
|
"position": {
|
|
"basis": "100%"
|
|
},
|
|
"propConfig": {
|
|
"props.instances": {
|
|
"binding": {
|
|
"config": {
|
|
"struct": {
|
|
"allTags": "{view.custom.allTags}",
|
|
"tagPath": "{view.params.tagPath}"
|
|
},
|
|
"waitOnAll": true
|
|
},
|
|
"transforms": [
|
|
{
|
|
"code": "\toutput \u003d []\n\tallTags \u003d system.util.jsonDecode(system.util.jsonEncode(value[\u0027allTags\u0027]))\n\t\n\tfor tag in allTags:\n\t\ttagName \u003d tag[\"name\"]\n\t\ttag[\"tagPath\"] \u003d value[\"tagPath\"] + \"/\" +tagName\n\t\toutput.append(tag)\n\toutput_sorted \u003d sorted(output, key\u003dlambda item: item[\"instancePosition\"])\n\treturn output_sorted",
|
|
"type": "script"
|
|
}
|
|
],
|
|
"type": "expr-struct"
|
|
}
|
|
}
|
|
},
|
|
"props": {
|
|
"alignContent": "flex-start",
|
|
"elementPosition": {
|
|
"basis": "50%",
|
|
"grow": 0
|
|
},
|
|
"loading": {
|
|
"order": "with-parent"
|
|
},
|
|
"path": "Library/Framework/Tag Info",
|
|
"style": {
|
|
"border": "1px solid var(--border)",
|
|
"gap": "10px 0",
|
|
"padding": "10px"
|
|
},
|
|
"useDefaultViewHeight": false,
|
|
"useDefaultViewWidth": false,
|
|
"wrap": "wrap"
|
|
},
|
|
"type": "ia.display.flex-repeater"
|
|
}
|
|
],
|
|
"meta": {
|
|
"name": "root"
|
|
},
|
|
"props": {
|
|
"direction": "column",
|
|
"style": {
|
|
"classes": "containers/padded-container"
|
|
}
|
|
},
|
|
"type": "ia.container.flex"
|
|
}
|
|
} |