Node red OPC UA server not updating

Hi,

I am setting up OPC UA server(0.2.236) in node red. Using some online code I was able to set it up.

However, when Using Prosys OPC UA Client for testing, i'm able to to see the variable but the problem it is not updating. I have included my flow. Please advise

thank you
flows.json (12.8 KB)


Can you share your flow & I will take a look

Hi,
this is my flow.
flows.json (12.8 KB)

Thank you

Easy fix: variable name must contain namespace index. Add namespace = 1 to payload.
New version gives warning if parameter is missing.

Example:
msg = { payload : { "messageType" : "Variable", "variableName": "Tipo Real", "variableValue": msg.payload }};
msg.payload.namespace = 1;


Hi,
I tried your suggestion but it did not work

Works here:

[{"id":"2e6ccb4b68980f21","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"e1e77abd.c4cd98","type":"s7 endpoint","transport":"iso-on-tcp","address":"192.168.4.30","port":"102","rack":"0","slot":"1","localtsaphi":"01","localtsaplo":"00","remotetsaphi":"01","remotetsaplo":"00","connmode":"rack-slot","adapter":"","busaddr":"2","cycletime":"1000","timeout":"2000","name":"MMB Guard House","vartable":[{"addr":"DB3,X0.1","name":"Main Gate A"},{"addr":"DB3,X0.2","name":"Main Gate B"},{"addr":"M3.5","name":"MMB Panic Button"},{"addr":"DB3,X0.5","name":"Gate Monitoring Time"},{"addr":"Q0.0","name":"Siren"},{"addr":"M3.3","name":"MFP Panic Button to MMB"}]},{"id":"b7575005.7733b","type":"s7 endpoint","transport":"iso-on-tcp","address":"192.168.37.120","port":"102","rack":"0","slot":"1","localtsaphi":"01","localtsaplo":"00","remotetsaphi":"01","remotetsaplo":"00","connmode":"rack-slot","adapter":"","busaddr":"2","cycletime":"1000","timeout":"2000","name":"CCR Guard House","vartable":[{"addr":"DB3,X516.0","name":"Main Gate A"},{"addr":"DB3,X516.1","name":"Main Gate B"},{"addr":"M3.0","name":"CCR Panic Button"},{"addr":"DB15,X4.0","name":"Gate Monitoring Time"},{"addr":"Q0.0","name":"Siren"},{"addr":"M2.6","name":"MFP Panic Button to CCR"}]},{"id":"ed9299ef.cc5a68","type":"debug","z":"2e6ccb4b68980f21","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1270,"y":300,"wires":[]},{"id":"96c75126.400ee","type":"function","z":"2e6ccb4b68980f21","name":"Conversão","func":"msg = { payload : { \"messageType\" : \"Variable\", \"variableName\": \"Tipo Real\", \"variableValue\": msg.payload }};\nmsg.payload.namespace = 1;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":510,"y":420,"wires":[["7072529e4e32c611"]]},{"id":"3b0928ca.37cd38","type":"comment","z":"2e6ccb4b68980f21","name":"Var Float","info":"","x":500,"y":380,"wires":[]},{"id":"d8fb1cee.c19df","type":"function","z":"2e6ccb4b68980f21","name":"MMB Panic Button","func":"msg = { payload : { \"messageType\" : \"Variable\", \"variableName\": \"MMBPanicButton\", \"variableValue\": msg.payload }};\nmsg.payload.namespace = 1;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":490,"y":520,"wires":[["7072529e4e32c611"]]},{"id":"4f483578.dec66c","type":"function","z":"2e6ccb4b68980f21","name":"CCR Panic Button","func":"msg = { payload : { \"messageType\" : \"Variable\", \"variableName\": \"CCRPanicButton\", \"variableValue\": msg.payload }};\nmsg.payload.namespace = 1;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":490,"y":580,"wires":[["7072529e4e32c611"]]},{"id":"e58e521c.40f82","type":"inject","z":"2e6ccb4b68980f21","name":"","props":[{"p":"payload1","v":"0","vt":"num"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":"3","topic":"","x":150,"y":300,"wires":[["fa859d37.57366"]]},{"id":"fa859d37.57366","type":"function","z":"2e6ccb4b68980f21","name":"add folder & add variables","func":"msg = {};\n\nmsg.payload = {opcuaCommand:\"addFolder\"};\nmsg.topic = \"ns=1;s=Variaveis\";\nnode.send(msg);\n\nmsg.payload = {opcuaCommand:\"addVariable\"};\nmsg.topic = \"ns=1;s=Tipo Real;datatype=Float\";\nnode.send(msg);\n\nmsg.payload = {opcuaCommand:\"addVariable\"};\nmsg.topic = \"ns=1;s=MMBPanicButton;datatype=Boolean\";\nnode.send(msg);\n\nmsg.payload = {opcuaCommand:\"addVariable\"};\nmsg.topic = \"ns=1;s=CCRPanicButton;datatype=Boolean\";\nnode.send(msg);\n\nmsg.payload = {opcuaCommand:\"addVariable\"};\nmsg.topic = \"ns=1;s=1HzClockPulse;datatype=Boolean\";\nnode.send(msg);\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":470,"y":300,"wires":[["e67da5ea.115128","7072529e4e32c611"]]},{"id":"e67da5ea.115128","type":"debug","z":"2e6ccb4b68980f21","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload1","targetType":"msg","statusVal":"","statusType":"auto","x":760,"y":260,"wires":[]},{"id":"e6217c56.ee833","type":"function","z":"2e6ccb4b68980f21","name":"1HzClockPulse","func":"var PulseStat = flow.get(\"1HzClockP\");\n\nif(PulseStat == 1 || typeof(PulseStat) =='undefined'){\n flow.set(\"1HzClockP\",0);\n msg.payload = false;\n}else{\n msg.payload = flow.set(\"1HzClockP\",1);\n msg.payload = true;\n}\n\nmsg = { payload : { \"messageType\" : \"Variable\", \"variableName\": \"1:1HzClockPulse\", \"variableValue\": msg.payload }};\nmsg.payload.namespace = 1;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":640,"wires":[["e4ccd8da.362348","7072529e4e32c611"]]},{"id":"e4ccd8da.362348","type":"debug","z":"2e6ccb4b68980f21","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":720,"y":660,"wires":[]},{"id":"7072529e4e32c611","type":"OpcUa-Server","z":"2e6ccb4b68980f21","port":"53888","name":"","endpoint":"opc.tcp://TIA-V15:53880","users":"","nodesetDir":"","folderName4PKI":"","autoAcceptUnknownCertificate":true,"registerToDiscovery":true,"constructDefaultAddressSpace":true,"allowAnonymous":true,"endpointNone":true,"endpointSign":true,"endpointSignEncrypt":true,"endpointBasic128Rsa15":true,"endpointBasic256":true,"endpointBasic256Sha256":true,"maxNodesPerBrowse":"10","maxNodesPerHistoryReadData":"010","maxNodesPerHistoryReadEvents":"010","maxNodesPerHistoryUpdateData":"010","maxNodesPerRead":"010","maxNodesPerWrite":"010","maxNodesPerMethodCall":"10","maxNodesPerRegisterNodes":"010","maxNodesPerNodeManagement":"010","maxMonitoredItemsPerCall":"010","maxNodesPerHistoryUpdateEvents":"010","maxNodesPerTranslateBrowsePathsToNodeIds":"010","x":980,"y":300,"wires":[["ed9299ef.cc5a68"]]},{"id":"aebed155.6bf14","type":"function","z":"2e6ccb4b68980f21","name":"","func":"var random = (Math.random()*10);\nmsg.payload = random;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":340,"y":420,"wires":[["96c75126.400ee"]]},{"id":"d27a6f8.14b039","type":"inject","z":"2e6ccb4b68980f21","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"2","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":170,"y":420,"wires":[["aebed155.6bf14"]]},{"id":"c93d2e0c.13863","type":"s7 in","z":"2e6ccb4b68980f21","endpoint":"e1e77abd.c4cd98","mode":"single","variable":"MMB Panic Button","diff":true,"name":"","x":270,"y":520,"wires":[["d8fb1cee.c19df"]]},{"id":"f04ac183.3636e","type":"s7 in","z":"2e6ccb4b68980f21","endpoint":"b7575005.7733b","mode":"single","variable":"CCR Panic Button","diff":false,"name":"","x":270,"y":580,"wires":[["4f483578.dec66c"]]},{"id":"c70bc756.569718","type":"inject","z":"2e6ccb4b68980f21","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"10","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":260,"y":640,"wires":[["e6217c56.ee833"]]}]

Hi,

It works now. I actually had to update the node red opcua(2.236->2.261(latest)).

Once updated, the flow provided by you started working.

Thank you

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.