Skip to content

Instantly share code, notes, and snippets.

@gdziuba
Created February 9, 2024 20:27
Show Gist options
  • Save gdziuba/04a84fe5b0db7cda9e74ba811e7b0ca5 to your computer and use it in GitHub Desktop.
Save gdziuba/04a84fe5b0db7cda9e74ba811e7b0ca5 to your computer and use it in GitHub Desktop.
Quick Start Guide for OPC and KeserverEX
[
{
"id": "4ce867cf99f83967",
"type": "group",
"z": "1e5a89d7e25de505",
"name": "Quick Start Guide to OPC",
"style": {
"label": true
},
"nodes": [
"1cbc398e79846cde",
"22a9a25a3328defe",
"ac721b9ee6029c4a",
"f8e835895bdb8c1f",
"2ff48ed1a7f05e30",
"45dc76db6975c6d5",
"0a3d290d39b372f7",
"b06860496056652f",
"93cd856f17717533",
"97a7efc3363486a6",
"1d3c76e4c6aab9fa",
"0e1cbba094b40f03"
],
"x": 34,
"y": 19,
"w": 752,
"h": 202
},
{
"id": "1cbc398e79846cde",
"type": "inject",
"z": "1e5a89d7e25de505",
"g": "4ce867cf99f83967",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "ns=0;i=84",
"payload": "",
"payloadType": "date",
"x": 170,
"y": 60,
"wires": [
[
"ac721b9ee6029c4a"
]
]
},
{
"id": "22a9a25a3328defe",
"type": "debug",
"z": "1e5a89d7e25de505",
"g": "4ce867cf99f83967",
"name": "debug 16",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 680,
"y": 60,
"wires": []
},
{
"id": "ac721b9ee6029c4a",
"type": "OpcUa-Client",
"z": "1e5a89d7e25de505",
"g": "4ce867cf99f83967",
"endpoint": "",
"action": "browse",
"deadbandtype": "a",
"deadbandvalue": 1,
"time": 10,
"timeUnit": "s",
"certificate": "n",
"localfile": "",
"localkeyfile": "",
"securitymode": "None",
"securitypolicy": "None",
"useTransport": false,
"maxChunkCount": 1,
"maxMessageSize": 8192,
"receiveBufferSize": 8192,
"sendBufferSize": 8192,
"name": "",
"x": 360,
"y": 60,
"wires": [
[
"f8e835895bdb8c1f"
],
[]
]
},
{
"id": "f8e835895bdb8c1f",
"type": "function",
"z": "1e5a89d7e25de505",
"g": "4ce867cf99f83967",
"name": "regex",
"func": "// Extract the part after \"s=\" using regex\nconst regex = /;s=(.*)/;\nconst match = msg.topic.match(regex);\n\nif (match && match[1]) {\n // Get the matched group, which is the part after \"s=\"\n const extractedString = match[1];\n\n // Retrieve the existing array from the context store, or initialize it if it doesn't exist\n let myArray = flow.get(\"myArray\") || [];\n\n // Add the extracted string to the array\n myArray.push(extractedString);\n\n // Save the updated array back to the context store\n flow.set(\"myArray\", myArray);\n\n // Optionally, you can pass the updated array in the message payload for further use\n msg.payload = myArray;\n} else {\n // Handle the case where the regex does not match\n // node.warn(\"The payload does not contain the expected pattern.\");\n}\n\n// Return the message to continue the flow\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 510,
"y": 60,
"wires": [
[
"22a9a25a3328defe"
]
]
},
{
"id": "2ff48ed1a7f05e30",
"type": "inject",
"z": "1e5a89d7e25de505",
"g": "4ce867cf99f83967",
"name": "Read",
"repeat": "",
"crontab": "",
"once": false,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 130,
"y": 120,
"wires": [
[
"45dc76db6975c6d5"
]
]
},
{
"id": "45dc76db6975c6d5",
"type": "OpcUa-Item",
"z": "1e5a89d7e25de505",
"g": "4ce867cf99f83967",
"item": "ns=2;s=Simulation Examples.Functions.Ramp1",
"datatype": "Int32",
"value": "",
"name": "Read",
"x": 270,
"y": 120,
"wires": [
[
"0a3d290d39b372f7"
]
]
},
{
"id": "0a3d290d39b372f7",
"type": "OpcUa-Client",
"z": "1e5a89d7e25de505",
"g": "4ce867cf99f83967",
"endpoint": "",
"action": "read",
"deadbandvalue": "",
"time": "",
"certificate": "n",
"localfile": "",
"localkeyfile": "",
"useTransport": false,
"maxChunkCount": "1",
"maxMessageSize": "8192",
"receiveBufferSize": "8192",
"sendBufferSize": "8192",
"name": "",
"x": 420,
"y": 120,
"wires": [
[
"b06860496056652f"
],
[]
]
},
{
"id": "b06860496056652f",
"type": "debug",
"z": "1e5a89d7e25de505",
"g": "4ce867cf99f83967",
"name": "Read value",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 590,
"y": 120,
"wires": []
},
{
"id": "93cd856f17717533",
"type": "inject",
"z": "1e5a89d7e25de505",
"g": "4ce867cf99f83967",
"name": "Write",
"repeat": "",
"crontab": "",
"once": false,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 130,
"y": 180,
"wires": [
[
"97a7efc3363486a6"
]
]
},
{
"id": "97a7efc3363486a6",
"type": "OpcUa-Item",
"z": "1e5a89d7e25de505",
"g": "4ce867cf99f83967",
"item": "ns=2;s=Simulation Examples.Functions.myInt",
"datatype": "Int32",
"value": "8",
"name": "Write",
"x": 270,
"y": 180,
"wires": [
[
"1d3c76e4c6aab9fa"
]
]
},
{
"id": "1d3c76e4c6aab9fa",
"type": "OpcUa-Client",
"z": "1e5a89d7e25de505",
"g": "4ce867cf99f83967",
"endpoint": "",
"action": "write",
"deadbandvalue": "",
"time": "",
"localfile": "",
"localkeyfile": "",
"useTransport": false,
"maxChunkCount": "",
"maxMessageSize": "",
"receiveBufferSize": "",
"sendBufferSize": "",
"name": "",
"x": 420,
"y": 180,
"wires": [
[
"0e1cbba094b40f03"
],
[]
]
},
{
"id": "0e1cbba094b40f03",
"type": "debug",
"z": "1e5a89d7e25de505",
"g": "4ce867cf99f83967",
"name": "Write value",
"active": true,
"console": "false",
"complete": "true",
"x": 610,
"y": 180,
"wires": []
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment