Hi everyone,
I have been trying to solve this problem for the past month but ultimately gave up and have to write for help.
Thanks so much for helping in advance!
What I am trying to do is read sensor values with an industrial PLC (Weidmüller). It is preinstalled with Node-RED (unfortunately I do not have admin priviliges for it). I have three other devices that broadcast over TCP with modbus. Sensors broadcast over modbus with RS485. This data is then converted via a Weidmüller Ethernet/Modbus gateway. I get the data frmo the three devices, but the sensor data is very unstable, sometimes I receive it for a short period of time, but then it disconnects.
Node-RED version: v1.1.2
Node-JS version: v10.15.3
node-red-contrib-modbus: v5.14.0
Gateway settings:
Baud-rate: 19200
8,N,1
Port: 10502 (port for sensors set to 10502, port for other three devices set to 502)
Mode: TCP master to Serial Slave Gateway
The hardware seems to be okay, I have a modbus read device, with which I could see that data can be queried. All devices are set to 19200 8N1
A sample flow looks like this:
[{"id":"ca696b6c.9d71b8","type":"tab","label":"Temperature Sensors","disabled":false,"info":""},{"id":"c6079f81.ffa22","type":"function","z":"ca696b6c.9d71b8","name":"FC(3) 4002","func":"msg.payload = { \n 'fc': 3, \n 'unitid': 1, \n 'address': 4001 , \n 'quantity': 1 ,\n\n}; \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":370,"y":100,"wires":[["33d2bc11.397b54"]]},{"id":"4ca7ddba.281224","type":"comment","z":"ca696b6c.9d71b8","name":"Temperature [°C]*100","info":"","x":480,"y":60,"wires":[]},{"id":"a373bca0.3c0988","type":"ui_text","z":"ca696b6c.9d71b8","group":"69845a.d3c883a8","order":1,"width":0,"height":0,"name":"","label":"Temperature [°C] - Sensor #1","format":"{{msg.payload.data}}","layout":"row-spread","className":"","x":920,"y":100,"wires":[]},{"id":"33d2bc11.397b54","type":"modbus-flex-getter","z":"ca696b6c.9d71b8","name":"RS485 Busch","showStatusActivities":true,"showErrors":false,"logIOActivities":false,"server":"f610a4f1.e28a68","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"keepMsgProperties":false,"x":540,"y":100,"wires":[[],["853889c8.5a5508"]]},{"id":"ddaa9e31.67d08","type":"comment","z":"ca696b6c.9d71b8","name":"Temperature Sensor #1 - id:1","info":"","x":180,"y":60,"wires":[]},{"id":"a12c6b36.9bc8a","type":"comment","z":"ca696b6c.9d71b8","name":"Temperature Sensor #1 - id:2","info":"","x":180,"y":160,"wires":[]},{"id":"dd460bfd.62c1c8","type":"comment","z":"ca696b6c.9d71b8","name":"Temperature Sensor #1 - id:3","info":"","x":180,"y":260,"wires":[]},{"id":"5ddad991.4d0d6","type":"function","z":"ca696b6c.9d71b8","name":"FC(3) 4002","func":"msg.payload = { \n 'fc': 3, \n 'unitid': 2, \n 'address': 4001 , \n 'quantity': 1 ,\n\n}; \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":370,"y":220,"wires":[["b68692fe.91523"]]},{"id":"82a6e9e1.788d18","type":"comment","z":"ca696b6c.9d71b8","name":"Temperature [°C]*100","info":"","x":480,"y":180,"wires":[]},{"id":"4aff082f.40e08","type":"ui_text","z":"ca696b6c.9d71b8","group":"69845a.d3c883a8","order":2,"width":0,"height":0,"name":"","label":"Temperature [°C] - Sensor #2","format":"{{msg.payload.data}}","layout":"row-spread","className":"","x":920,"y":220,"wires":[]},{"id":"b68692fe.91523","type":"modbus-flex-getter","z":"ca696b6c.9d71b8","name":"RS485 Busch","showStatusActivities":true,"showErrors":false,"logIOActivities":false,"server":"dee8f168.19d7","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"keepMsgProperties":false,"x":540,"y":220,"wires":[[],["b4db04c6.aa3688"]]},{"id":"d84e7ef2.4d18a","type":"function","z":"ca696b6c.9d71b8","name":"FC(3) 4002","func":"msg.payload = { \n 'fc': 3, \n 'unitid': 3, \n 'address': 4001 , \n 'quantity': 1 ,\n\n}; \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":370,"y":320,"wires":[["98820d56.57996"]]},{"id":"95b295eb.0a951","type":"comment","z":"ca696b6c.9d71b8","name":"Temperature [°C]*100","info":"","x":480,"y":280,"wires":[]},{"id":"33e938a5.594ca8","type":"ui_text","z":"ca696b6c.9d71b8","group":"69845a.d3c883a8","order":3,"width":0,"height":0,"name":"","label":"Temperature [°C] - Sensor #3","format":"{{msg.payload.data}}","layout":"row-spread","className":"","x":920,"y":320,"wires":[]},{"id":"98820d56.57996","type":"modbus-flex-getter","z":"ca696b6c.9d71b8","name":"RS485 Busch","showStatusActivities":true,"showErrors":false,"logIOActivities":false,"server":"89d8269e.c9936","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"keepMsgProperties":false,"x":540,"y":320,"wires":[[],["b30b3817.b47598"]]},{"id":"904acd2b.a57c4","type":"debug","z":"ca696b6c.9d71b8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":850,"y":60,"wires":[]},{"id":"8a5dff72.b9fad","type":"inject","z":"ca696b6c.9d71b8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"25","crontab":"","once":true,"onceDelay":"15","topic":"","payload":"","payloadType":"date","x":190,"y":220,"wires":[["c6079f81.ffa22","5ddad991.4d0d6","d84e7ef2.4d18a"]]},{"id":"853889c8.5a5508","type":"function","z":"ca696b6c.9d71b8","name":"1/100","func":"msg.payload.data = msg.payload.data/100;\n\n \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":710,"y":100,"wires":[["a373bca0.3c0988"]]},{"id":"b4db04c6.aa3688","type":"function","z":"ca696b6c.9d71b8","name":"1/100","func":"msg.payload.data = msg.payload.data/100;\n\n \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":710,"y":220,"wires":[["4aff082f.40e08"]]},{"id":"b30b3817.b47598","type":"function","z":"ca696b6c.9d71b8","name":"1/100","func":"msg.payload.data = msg.payload.data/100;\n\n \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":710,"y":320,"wires":[["33e938a5.594ca8"]]},{"id":"69845a.d3c883a8","type":"ui_group","z":"","name":"EE451 Temp Sensors","tab":"1e910cf.d5362f3","order":5,"disp":true,"width":"6","collapse":false,"className":""},{"id":"f610a4f1.e28a68","type":"modbus-client","z":"","name":"RS485 1","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"tcpHost":"192.168.1.110","tcpPort":"10502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":"1","commandDelay":"1","clientTimeout":"1000","reconnectOnTimeout":true,"reconnectTimeout":"2000","parallelUnitIdsAllowed":false},{"id":"dee8f168.19d7","type":"modbus-client","z":"","name":"RS485 2","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"tcpHost":"192.168.1.110","tcpPort":"10502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":"2","commandDelay":"1","clientTimeout":"1000","reconnectOnTimeout":true,"reconnectTimeout":"2000","parallelUnitIdsAllowed":true},{"id":"89d8269e.c9936","type":"modbus-client","z":"","name":"RS485 3","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"tcpHost":"192.168.1.110","tcpPort":"10502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":"3","commandDelay":"1","clientTimeout":"1000","reconnectOnTimeout":true,"reconnectTimeout":"2000","parallelUnitIdsAllowed":true},{"id":"1e910cf.d5362f3","type":"ui_tab","z":"","name":"Sensors","icon":"dashboard Jó","order":2,"disabled":false,"hidden":false}]
I ran out of ideas, can you please help? Much appreciated!