RV55 Modbus RTU, Multiple Slaves, Serial to UDP Miscommunication

Hello,

I’m working on a Modbus project with the communication path as below:

Ignition SCADA → Modbus TPC → Stride Modbus TCP to Modbus RTU Gateway → RV55 UDP → to multiple remote slaves:

→ RV55 UDP → Modbus RTU (Slave ID 24)
→ RV55 UDP → Modbus RTU (Slave ID 32)

and so on…

One slave (ID 24) works just fine but the other isn’t being read in as a proper UDP packet apparently. Please let me know any tips to solve this problem.

There is communication between the devices as the master does receive communication with both slaves. One is received as UDP (Slave ID 24) and makes it all the way back to the Ignition SCADA correctly. Slave ID 32 is recieved as serial in the Master but doesn’t then make it out as a proper Modbus RTU signal to the Stride Modbus TCP to RTU gateway.

Logs are below. Note, items within the <> are intentional edits.

----- Modbus Master Log: ----

Jun 3 06:45:05 [debug] ALEOS_SERIAL_HIF Sent data: ''
Jun 3 06:45:05 [debug] ALEOS_SERIAL_HMC Received data from SERIAL
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC call UDP
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC UDP RecvHost
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC UDP Send Host Datalen= 8 
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC SendHostData: S53 addr=0x0  port= <DESTINATION PORT> 
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC SendHostData: UDP SubMode 2 is invoked
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC ProcessHost --> ParseBinaryID
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC BinaryID before mask is 0x0018 
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC BinaryID after mask is 0x0018 
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC Returne id = 0x0018 
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC ProcessHost: id = 24
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC Modbus id = 32
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC Modbus id = 24
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC Modbus list found matched ID
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC Modbus id = 24, ip=<SLAVE 24 HEX? IP ADD>, port=<DESTINATION PORT>
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC SendHostData:  addr=<SLAVE 24 HEX? IP ADD>  port= <DESTINATION PORT> 
Jun 3 06:45:05 [debug] ALEOS_SERIAL_HMC UDP file descriptor ready: '41'
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC OnMsg -> HandleUDPPacket
Jun 3 06:45:05 [debug] ALEOS_SERIAL_HMC pkt len=49
Jun 3 06:45:05 [debug] ALEOS_SERIAL_HMC Incoming pkt from <SLAVE 24 IP ADD> port <DEVICE PORT>  
Jun 3 06:45:05 [debug] ALEOS_SERIAL_HMC Known IP 
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC UDPMode: sending to outputter 
Jun 3 06:45:05 [info] ALEOS_SERIAL_HMC UDPMode::OutputPacket msg len 49 to HIF outputter 
Jun 3 06:45:05 [warning] ALEOS_SERIAL_HMC HandleUDPPacket() IP address mismatch,  old <SLAVE 24 IP ADD> new <SLAVE 24 IP ADD>
Jun 3 06:45:05 [info] ALEOS_SERIAL_HIF <--receiving data: 49 byte(s)
Jun 3 06:45:05 [debug] ALEOS_SERIAL_HIF Received data: ',�AHДAs�¿�'
Jun 3 06:45:05 [debug] ALEOS_SERIAL_HIF '49/49' written
Jun 3 06:45:05 [debug] ALEOS_SERIAL_HIF draining serial port...
Jun 3 06:45:05 [debug] ALEOS_SERIAL_HIF write OK
Jun 3 06:45:05 [debug] ALEOS_SERIAL_HIF 8 byte(s) in buffer: ' '
Jun 3 06:45:06 [debug] ALEOS_SERIAL_HIF read interframe timeout
Jun 3 06:45:06 [info] ALEOS_SERIAL_HIF -->sending 8 byte(s) in mode 35
Jun 3 06:45:06 [debug] ALEOS_SERIAL_HIF Sent data: ' '
Jun 3 06:45:06 [debug] ALEOS_SERIAL_HMC Received data from SERIAL
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC call UDP
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC UDP RecvHost
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC UDP Send Host Datalen= 8 
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC SendHostData: S53 addr=0x0  port= <DESTINATION PORT> 
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC SendHostData: UDP SubMode 2 is invoked
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC ProcessHost --> ParseBinaryID
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC skip the leading space
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC BinaryID before mask is 0x0020 
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC BinaryID after mask is 0x0020 
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC Returne id = 0x0020 
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC ProcessHost: id = 32
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC Modbus id = 32
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC Modbus list found matched ID
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC Modbus id = 32, ip=<SLAVE 32 HEX? IP ADD>, port=<DESTINATION PORT>
Jun 3 06:45:06 [info] ALEOS_SERIAL_HMC SendHostData:  addr=<SLAVE 32 HEX? IP ADD>  port= <DESTINATION PORT> 
Jun 3 06:45:12 [debug] ALEOS_SERIAL_HIF 8 byte(s) in buffer: ''
Jun 3 06:45:12 [debug ] ALEOS_SERIAL_HIF read interframe timeout
Jun 3 06:45:12 [info] ALEOS_SERIAL_HIF -->sending 8 byte(s) in mode 35
Jun 3 06:45:12 [debug] ALEOS_SERIAL_HIF Sent data: ''
Jun 3 06:45:12 [debug] ALEOS_SERIAL_HMC Received data from SERIAL
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC call UDP
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC UDP RecvHost
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC UDP Send Host Datalen= 8 
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC SendHostData: S53 addr=0x0  port= <DESTINATION PORT> 
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC SendHostData: UDP SubMode 2 is invoked
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC ProcessHost --> ParseBinaryID
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC BinaryID before mask is 0x0018 
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC BinaryID after mask is 0x0018 
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC Returne id = 0x0018 
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC ProcessHost: id = 24
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC Modbus id = 32
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC Modbus id = 24
Jun 3 06:45:12 [info] ALEOS_SERIAL_HMC Modbus list found matched ID

— Modbus RTU Slave 32 Log that is not being transmitted properly: -----

Jun 3 05:25:33 [info] ALEOS_SERIAL_HMC Modbus id = 0
Jun 3 05:25:33 [info] ALEOS_SERIAL_HMC Modbus id = 0
Jun 3 05:25:33 [err ] ALEOS_SERIAL_HMC Modbus list NOT found matched ID 32
Jun 3 05:25:33 [info] ALEOS_SERIAL_HMC SendHostData:  addr=<HEX? ADDRESS>  port= <DESTINATION PORT> 
Jun 3 05:25:40 [debug] ALEOS_SERIAL_HMC UDP file descriptor ready: '37'
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC OnMsg -> HandleUDPPacket
Jun 3 05:25:40 [debug] ALEOS_SERIAL_HMC pkt len=8
Jun 3 05:25:40 [debug] ALEOS_SERIAL_HMC Incoming pkt from <MASTER IP ADD> port <DESTINATION PORT>  
Jun 3 05:25:40 [debug ] ALEOS_SERIAL_HMC Known IP 
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC UDPMode: sending to outputter 
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC UDPMode::OutputPacket msg len 8 to HIF outputter 
Jun 3 05:25:40 [warning] ALEOS_SERIAL_HMC HandleUDPPacket() IP address mismatch,  old <MASTER IP ADD> new <MASTER IP ADD>
Jun 3 05:25:40 [info] ALEOS_SERIAL_HIF <--receiving data: 8 byte(s)
Jun 3 05:25:40 [debug] ALEOS_SERIAL_HIF Received data: ' '
Jun 3 05:25:40 [debug] ALEOS_SERIAL_HIF '8/8' written
Jun 3 05:25:40 [debug] ALEOS_SERIAL_HIF draining serial port...
Jun 3 05:25:40 [debug] ALEOS_SERIAL_HIF write OK
Jun 3 05:25:40 [debug] ALEOS_SERIAL_HIF 49 byte(s) in buffer: ' ,ËAS��B2�IC^M��2�?����@M0�B4�9>H'
Jun 3 05:25:40 [debug] ALEOS_SERIAL_HIF read interframe timeout
Jun 3 05:25:40 [info] ALEOS_SERIAL_HIF -->sending 49 byte(s) in mode 35
Jun 3 05:25:40 [debug] ALEOS_SERIAL_HIF Sent data: ' ,ËAS��B2�IC^M��2�?����@M0�B4�9>H'
Jun 3 05:25:40 [debug] ALEOS_SERIAL_HMC Received data from SERIAL
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC call UDP
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC UDP RecvHost
Jun 3 05:25:40 [info ] ALEOS_SERIAL_HMC UDP Send Host Datalen= 49 
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC SendHostData: S53 addr=<HEX? ADDRESS>  port= <DESTINATION PORT> 
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC SendHostData: UDP SubMode 2 is invoked
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC ProcessHost --> ParseBinaryID
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC skip the leading space
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC BinaryID before mask is 0x0020 
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC BinaryID after mask is 0x0020 
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC Returne id = 0x0020 
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC ProcessHost: id = 32
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC Modbus id = 0
Jun 3 05:25:40 [info] ALEOS_SERIAL_HMC Modbus id = 0

The firmware version for all units is 4.17.1 and the radio software is also the same version between units (SWI9X07Y_02.37.06.00 b91e64 jenkins).

Here is the configuration of the master. The Device Port and Destination port are the same on all slaves and the master.



Master-Serial-Modbus

Here is the configuration of the slaves:

Thanks for any help!