369 lines
9.0 KiB
JSON
369 lines
9.0 KiB
JSON
[
|
|
{
|
|
"id": "rm_int_tab",
|
|
"type": "tab",
|
|
"label": "RotatingMachine - Integration with Machine Group",
|
|
"disabled": false,
|
|
"info": "Demonstrates a machineGroupControl parent with two rotatingMachine children and a measurement node."
|
|
},
|
|
{
|
|
"id": "rm_int_comment_title",
|
|
"type": "comment",
|
|
"z": "rm_int_tab",
|
|
"name": "RotatingMachine - Integration with Parent\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nShows how rotatingMachine registers with a\nmachineGroupControl parent via Port 2.\nAlso shows a measurement node providing\npressure data to a pump.\n\nPrerequisites: EVOLV package installed.",
|
|
"info": "",
|
|
"x": 380,
|
|
"y": 40,
|
|
"wires": []
|
|
},
|
|
{
|
|
"id": "rm_int_comment_howto",
|
|
"type": "comment",
|
|
"z": "rm_int_tab",
|
|
"name": "HOW TO USE:\n1. Deploy flow - pumps auto-register with MGC via Port 2\n2. Set Pump 1 to virtualControl, then Startup\n3. Set speed setpoints on individual pumps\n4. Observe MGC aggregating child state on Port 0\n5. Inject pressure measurement to see curve predictions",
|
|
"info": "",
|
|
"x": 380,
|
|
"y": 110,
|
|
"wires": []
|
|
},
|
|
{
|
|
"id": "rm_int_mgc",
|
|
"type": "machineGroupControl",
|
|
"z": "rm_int_tab",
|
|
"name": "Machine Group",
|
|
"enableLog": true,
|
|
"logLevel": "info",
|
|
"positionVsParent": "atEquipment",
|
|
"positionIcon": "",
|
|
"hasDistance": false,
|
|
"distance": "",
|
|
"distanceUnit": "m",
|
|
"x": 570,
|
|
"y": 300,
|
|
"wires": [
|
|
["rm_int_debug_mgc_port0"],
|
|
["rm_int_debug_mgc_port1"],
|
|
["rm_int_debug_mgc_port2"]
|
|
]
|
|
},
|
|
{
|
|
"id": "rm_int_pump1",
|
|
"type": "rotatingMachine",
|
|
"z": "rm_int_tab",
|
|
"name": "Pump 1",
|
|
"speed": "1",
|
|
"startup": "2",
|
|
"warmup": "1",
|
|
"shutdown": "2",
|
|
"cooldown": "1",
|
|
"movementMode": "staticspeed",
|
|
"machineCurve": "",
|
|
"uuid": "example-pump-001",
|
|
"supplier": "hidrostal",
|
|
"category": "pump",
|
|
"assetType": "pump-centrifugal",
|
|
"model": "hidrostal-H05K-S03R",
|
|
"unit": "m3/h",
|
|
"curvePressureUnit": "mbar",
|
|
"curveFlowUnit": "m3/h",
|
|
"curvePowerUnit": "kW",
|
|
"curveControlUnit": "%",
|
|
"enableLog": true,
|
|
"logLevel": "info",
|
|
"positionVsParent": "atEquipment",
|
|
"positionIcon": "",
|
|
"hasDistance": false,
|
|
"distance": "",
|
|
"distanceUnit": "m",
|
|
"distanceDescription": "",
|
|
"x": 570,
|
|
"y": 480,
|
|
"wires": [
|
|
["rm_int_debug_p1_port0"],
|
|
[],
|
|
["rm_int_mgc"]
|
|
]
|
|
},
|
|
{
|
|
"id": "rm_int_pump2",
|
|
"type": "rotatingMachine",
|
|
"z": "rm_int_tab",
|
|
"name": "Pump 2",
|
|
"speed": "1",
|
|
"startup": "2",
|
|
"warmup": "1",
|
|
"shutdown": "2",
|
|
"cooldown": "1",
|
|
"movementMode": "staticspeed",
|
|
"machineCurve": "",
|
|
"uuid": "example-pump-002",
|
|
"supplier": "hidrostal",
|
|
"category": "pump",
|
|
"assetType": "pump-centrifugal",
|
|
"model": "hidrostal-H05K-S03R",
|
|
"unit": "m3/h",
|
|
"curvePressureUnit": "mbar",
|
|
"curveFlowUnit": "m3/h",
|
|
"curvePowerUnit": "kW",
|
|
"curveControlUnit": "%",
|
|
"enableLog": true,
|
|
"logLevel": "info",
|
|
"positionVsParent": "atEquipment",
|
|
"positionIcon": "",
|
|
"hasDistance": false,
|
|
"distance": "",
|
|
"distanceUnit": "m",
|
|
"distanceDescription": "",
|
|
"x": 570,
|
|
"y": 620,
|
|
"wires": [
|
|
["rm_int_debug_p2_port0"],
|
|
[],
|
|
["rm_int_mgc"]
|
|
]
|
|
},
|
|
{
|
|
"id": "rm_int_inject_mode_p1",
|
|
"type": "inject",
|
|
"z": "rm_int_tab",
|
|
"name": "P1: virtualControl",
|
|
"props": [
|
|
{ "p": "topic", "vt": "str" },
|
|
{ "p": "payload", "v": "virtualControl", "vt": "str" }
|
|
],
|
|
"topic": "setMode",
|
|
"repeat": "",
|
|
"crontab": "",
|
|
"once": false,
|
|
"onceDelay": "",
|
|
"x": 200,
|
|
"y": 440,
|
|
"wires": [["rm_int_pump1"]]
|
|
},
|
|
{
|
|
"id": "rm_int_inject_start_p1",
|
|
"type": "inject",
|
|
"z": "rm_int_tab",
|
|
"name": "P1: Startup",
|
|
"props": [
|
|
{ "p": "topic", "vt": "str" },
|
|
{ "p": "payload", "v": "{\"source\":\"GUI\",\"action\":\"execSequence\",\"parameter\":\"startup\"}", "vt": "json" }
|
|
],
|
|
"topic": "execSequence",
|
|
"repeat": "",
|
|
"crontab": "",
|
|
"once": false,
|
|
"onceDelay": "",
|
|
"x": 180,
|
|
"y": 480,
|
|
"wires": [["rm_int_pump1"]]
|
|
},
|
|
{
|
|
"id": "rm_int_inject_setpoint_p1",
|
|
"type": "inject",
|
|
"z": "rm_int_tab",
|
|
"name": "P1: Set 75%",
|
|
"props": [
|
|
{ "p": "topic", "vt": "str" },
|
|
{ "p": "payload", "v": "{\"source\":\"GUI\",\"action\":\"execMovement\",\"setpoint\":75}", "vt": "json" }
|
|
],
|
|
"topic": "execMovement",
|
|
"repeat": "",
|
|
"crontab": "",
|
|
"once": false,
|
|
"onceDelay": "",
|
|
"x": 180,
|
|
"y": 520,
|
|
"wires": [["rm_int_pump1"]]
|
|
},
|
|
{
|
|
"id": "rm_int_inject_mode_p2",
|
|
"type": "inject",
|
|
"z": "rm_int_tab",
|
|
"name": "P2: virtualControl",
|
|
"props": [
|
|
{ "p": "topic", "vt": "str" },
|
|
{ "p": "payload", "v": "virtualControl", "vt": "str" }
|
|
],
|
|
"topic": "setMode",
|
|
"repeat": "",
|
|
"crontab": "",
|
|
"once": false,
|
|
"onceDelay": "",
|
|
"x": 200,
|
|
"y": 580,
|
|
"wires": [["rm_int_pump2"]]
|
|
},
|
|
{
|
|
"id": "rm_int_inject_start_p2",
|
|
"type": "inject",
|
|
"z": "rm_int_tab",
|
|
"name": "P2: Startup",
|
|
"props": [
|
|
{ "p": "topic", "vt": "str" },
|
|
{ "p": "payload", "v": "{\"source\":\"GUI\",\"action\":\"execSequence\",\"parameter\":\"startup\"}", "vt": "json" }
|
|
],
|
|
"topic": "execSequence",
|
|
"repeat": "",
|
|
"crontab": "",
|
|
"once": false,
|
|
"onceDelay": "",
|
|
"x": 180,
|
|
"y": 620,
|
|
"wires": [["rm_int_pump2"]]
|
|
},
|
|
{
|
|
"id": "rm_int_inject_setpoint_p2",
|
|
"type": "inject",
|
|
"z": "rm_int_tab",
|
|
"name": "P2: Set 50%",
|
|
"props": [
|
|
{ "p": "topic", "vt": "str" },
|
|
{ "p": "payload", "v": "{\"source\":\"GUI\",\"action\":\"execMovement\",\"setpoint\":50}", "vt": "json" }
|
|
],
|
|
"topic": "execMovement",
|
|
"repeat": "",
|
|
"crontab": "",
|
|
"once": false,
|
|
"onceDelay": "",
|
|
"x": 180,
|
|
"y": 660,
|
|
"wires": [["rm_int_pump2"]]
|
|
},
|
|
{
|
|
"id": "rm_int_inject_pressure",
|
|
"type": "inject",
|
|
"z": "rm_int_tab",
|
|
"name": "P1: Sim downstream 900 mbar",
|
|
"props": [
|
|
{ "p": "topic", "vt": "str" },
|
|
{ "p": "payload", "v": "{\"type\":\"pressure\",\"position\":\"downstream\",\"value\":900,\"unit\":\"mbar\"}", "vt": "json" }
|
|
],
|
|
"topic": "simulateMeasurement",
|
|
"repeat": "",
|
|
"crontab": "",
|
|
"once": false,
|
|
"onceDelay": "",
|
|
"x": 240,
|
|
"y": 740,
|
|
"wires": [["rm_int_pump1"]]
|
|
},
|
|
{
|
|
"id": "rm_int_inject_shutdown_p1",
|
|
"type": "inject",
|
|
"z": "rm_int_tab",
|
|
"name": "P1: Shutdown",
|
|
"props": [
|
|
{ "p": "topic", "vt": "str" },
|
|
{ "p": "payload", "v": "{\"source\":\"GUI\",\"action\":\"execSequence\",\"parameter\":\"shutdown\"}", "vt": "json" }
|
|
],
|
|
"topic": "execSequence",
|
|
"repeat": "",
|
|
"crontab": "",
|
|
"once": false,
|
|
"onceDelay": "",
|
|
"x": 190,
|
|
"y": 780,
|
|
"wires": [["rm_int_pump1"]]
|
|
},
|
|
{
|
|
"id": "rm_int_inject_shutdown_p2",
|
|
"type": "inject",
|
|
"z": "rm_int_tab",
|
|
"name": "P2: Shutdown",
|
|
"props": [
|
|
{ "p": "topic", "vt": "str" },
|
|
{ "p": "payload", "v": "{\"source\":\"GUI\",\"action\":\"execSequence\",\"parameter\":\"shutdown\"}", "vt": "json" }
|
|
],
|
|
"topic": "execSequence",
|
|
"repeat": "",
|
|
"crontab": "",
|
|
"once": false,
|
|
"onceDelay": "",
|
|
"x": 190,
|
|
"y": 820,
|
|
"wires": [["rm_int_pump2"]]
|
|
},
|
|
{
|
|
"id": "rm_int_debug_mgc_port0",
|
|
"type": "debug",
|
|
"z": "rm_int_tab",
|
|
"name": "MGC Port 0: Group State",
|
|
"active": true,
|
|
"tosidebar": true,
|
|
"console": false,
|
|
"tostatus": true,
|
|
"complete": "payload",
|
|
"targetType": "msg",
|
|
"statusVal": "payload",
|
|
"statusType": "auto",
|
|
"x": 830,
|
|
"y": 260,
|
|
"wires": []
|
|
},
|
|
{
|
|
"id": "rm_int_debug_mgc_port1",
|
|
"type": "debug",
|
|
"z": "rm_int_tab",
|
|
"name": "MGC Port 1: InfluxDB",
|
|
"active": false,
|
|
"tosidebar": true,
|
|
"console": false,
|
|
"tostatus": false,
|
|
"complete": "true",
|
|
"targetType": "full",
|
|
"x": 820,
|
|
"y": 300,
|
|
"wires": []
|
|
},
|
|
{
|
|
"id": "rm_int_debug_mgc_port2",
|
|
"type": "debug",
|
|
"z": "rm_int_tab",
|
|
"name": "MGC Port 2: Parent",
|
|
"active": true,
|
|
"tosidebar": true,
|
|
"console": false,
|
|
"tostatus": false,
|
|
"complete": "true",
|
|
"targetType": "full",
|
|
"x": 810,
|
|
"y": 340,
|
|
"wires": []
|
|
},
|
|
{
|
|
"id": "rm_int_debug_p1_port0",
|
|
"type": "debug",
|
|
"z": "rm_int_tab",
|
|
"name": "P1 Port 0: Process",
|
|
"active": false,
|
|
"tosidebar": true,
|
|
"console": false,
|
|
"tostatus": true,
|
|
"complete": "payload",
|
|
"targetType": "msg",
|
|
"statusVal": "payload.state",
|
|
"statusType": "auto",
|
|
"x": 810,
|
|
"y": 460,
|
|
"wires": []
|
|
},
|
|
{
|
|
"id": "rm_int_debug_p2_port0",
|
|
"type": "debug",
|
|
"z": "rm_int_tab",
|
|
"name": "P2 Port 0: Process",
|
|
"active": false,
|
|
"tosidebar": true,
|
|
"console": false,
|
|
"tostatus": true,
|
|
"complete": "payload",
|
|
"targetType": "msg",
|
|
"statusVal": "payload.state",
|
|
"statusType": "auto",
|
|
"x": 810,
|
|
"y": 600,
|
|
"wires": []
|
|
}
|
|
]
|