Modbus RTU and TCP

Is there anybody that have experience with communicating to Modbus RTU (RS485) slaves (Through RS232->RS485 converter) and to Modbus TCP servers/slave through a RTU (RS485) -> TCP gateway from a master/client PLC at the same time?
 
Can you please explain your connection topology more clearly?

I interpret your application as having one PLC with a Modbus RTU (RS-232) port communicating with both Modbus RTU (RS-485) and Modbus/TCP devices, as follows:

PLC (RS-232) -> (RS-232 to RS-485 converter) -> (Modbus RTU Slaves) / (Modbus RTU to Modbus/TCP gateway) -> (Modbus/TCP Servers)

Is this correct?
 
Can you please explain your connection topology more clearly?

I interpret your application as having one PLC with a Modbus RTU (RS-232) port communicating with both Modbus RTU (RS-485) and Modbus/TCP devices, as follows:

PLC (RS-232) -> (RS-232 to RS-485 converter) -> (Modbus RTU Slaves) / (Modbus RTU to Modbus/TCP gateway) -> (Modbus/TCP Servers)

Is this correct?
Thats correct! Exactly like this.
 
Thank you for confirming.

Communicating to these devices from your PLC in this manner should not be a problem. The Modbus RTU to Modbus/TCP gateway will simply look like another Modbus RTU slave to your PLC, so this is no different than connecting multiple Modbus RTU slaves on the RS-485 bus.

One thing to watch out for is how the RS-232 to RS-485 converter controls the RS-485 driver enable. A typical approach for these converters is to use a timer to control when the RS-485 driver enable is de-asserted after transmitting data. For some devices, this is based on a configurable baud rate. Some converters have a preset time (sometimes based on a resistor value). You will need confirm that the driver enable is not being held too long such that your Modbus RTU slaves begin responding while the converter is still driving the bus. If you have the ability to monitor timeouts and other Modbus communication errors from your PLC, this will tell you whether or not the Modbus slaves are successfully responding to every request.
 
I have problems when I activate the the communication to the RS485 nodes then the RTU-->TCP Nodes will not answer. They only answer when I have deactivated the communication to the RS485 nodes. Could this has something to do with the issue you are explaining?
 
I have problems when I activate the the communication to the RS485 nodes then the RTU-->TCP Nodes will not answer. They only answer when I have deactivated the communication to the RS485 nodes. Could this has something to do with the issue you are explaining?
Next time, please include this information in your original post. Not only will this encourage more people to answer, but it will also prevent others from wasting time guessing at why you're asking if anyone has experience in Modbus RTU and Modbus/TCP communication.

The issue you're describing does not seem indicative of your RS-232 to RS-485 converter driving the bus for too long. I believe the issue is either electrical (+ and - wires swapped, no common mode reference, etc.) or logical (multiple nodes at the same address).

In order to help you with this, you will need to provide additional details. Please answer all of the following questions.

  1. Please explain what you mean by "activate the communication to the RS485 nodes". Do you have the RS-485 devices wired to the RS-485 bus, but powered off? Does "activate" mean apply power?
  2. What are the vendor and model of all devices you're working with (PLC, RS-485 nodes, RTU to TCP gateway)?
  3. How many RS-485 devices do you have connected to your network?
  4. How do you have the devices wired together? Please include the number of wires used (i.e. 2 wire with only + and -, 3 wire with +, -, and REF, shielded/unshielded, etc.) and where each wire is terminated on each device.
  5. What are the Modbus slave addresses of each RS-485 node? What slave address(es) does the RTU to TCP gateway use (note that some gateways allow a single device to use multiple slave addresses on the bus).
  6. Are you able to successfully communicate with the RS-485 nodes at all, even if you remove the RTU to TCP gateway from the bus or power it off?
  7. Do you have any termination resistors applied to the RS-485 network? Do any of the connected devices have built-in termination enabled by a jumper or configuration setting, if so are any of these turned on?
 
Next time, please include this information in your original post. Not only will this encourage more people to answer, but it will also prevent others from wasting time guessing at why you're asking if anyone has experience in Modbus RTU and Modbus/TCP communication. Sorry for that. I will remember it to next time.

The issue you're describing does not seem indicative of your RS-232 to RS-485 converter driving the bus for too long. I believe the issue is either electrical (+ and - wires swapped, no common mode reference, etc.) or logical (multiple nodes at the same address). Should the bus have worked at all if + and - was swapped? Have checked multiple times if they share the same address.

In order to help you with this, you will need to provide additional details. Please answer all of the following questions.

  1. Please explain what you mean by "activate the communication to the RS485 nodes". Do you have the RS-485 devices wired to the RS-485 bus, but powered off? Does "activate" mean apply power? Activate modbus connect and modbus read from the PLC (Master).
  2. What are the vendor and model of all devices you're working with (PLC, RS-485 nodes, RTU to TCP gateway)? AC800M, ACS580, Phoenix Contact FL COMSERVER UNI 232/422/485, Phoenix Contact PSM-ME-RS232/RS485-P
  3. How many RS-485 devices do you have connected to your network? Two frequency converter, and the RTU--> TCP gateway --> Two TCP nodes.
  4. How do you have the devices wired together? Please include the number of wires used (i.e. 2 wire with only + and -, 3 wire with +, -, and REF, shielded/unshielded, etc.) and where each wire is terminated on each device.
  5. What are the Modbus slave addresses of each RS-485 node? What slave address(es) does the RTU to TCP gateway use (note that some gateways allow a single device to use multiple slave addresses on the bus). 1,2,3(RTU-->TCP),4(RTU-->TCP) so every device has their own ID. The gateway routes the two Slave IDs to the two respective IP addresses for the TCP devices.
  6. Are you able to successfully communicate with the RS-485 nodes at all, even if you remove the RTU to TCP gateway from the bus or power it off? Yes.
  7. Do you have any termination resistors applied to the RS-485 network? Do any of the connected devices have built-in termination enabled by a jumper or configuration setting, if so are any of these turned on? The last inverter has terminaton enabled.
 
Thank you for your answers.

Unfortunately, I still don't quite understand what you mean by "activate the communication". You've used the term "activate modbus" to explain what you mean by the term "activate the communication", so this did not make it any clearer to me. Please explain without using the word "activate". Are you only changing the configuration of your PLC to "activate" the Modbus communication to the RS-485 nodes or are you changing something (wiring, power, etc.) on the RS-485 nodes themselves?

Can you please elaborate on how the devices are addressed? I believe the AC800M is the PLC and you have two ACS580 drives, which are the two RS-485 nodes. What are the addresses of the two ACS580 drives?

How do you have the FL COMSERVER gateway configured? Under Channel settings, what Device type do you have selected Slave or Master? Do you have the Address Lookup Table configured, if so, how is this table configured?

Please disable all RS-485 termination on your bus until you have achieved successful communication. This includes built-in termination on the ACS580 drives, the FL COMSERVER, and the PSM-ME-RS232/RS485-P converter (all of which have built-in termination).
 
Thanks for your help.

Thank you for your answers.

Unfortunately, I still don't quite understand what you mean by "activate the communication". You've used the term "activate modbus" to explain what you mean by the term "activate the communication", so this did not make it any clearer to me. Please explain without using the word "activate". Are you only changing the configuration of your PLC to "activate" the Modbus communication to the RS-485 nodes or are you changing something (wiring, power, etc.) on the RS-485 nodes themselves? I enable the communcation and the request to slave nodes.

Can you please elaborate on how the devices are addressed? I believe the AC800M is the PLC and you have two ACS580 drives, which are the two RS-485 nodes. What are the addresses of the two ACS580 drives? 1,2

How do you have the FL COMSERVER gateway configured? Under Channel settings, what Device type do you have selected Slave or Master? Do you have the Address Lookup Table configured, if so, how is this table configured? Master. TCP device 1 : IP address. - slave id 3. TCP device 2 : IP address - slave 4. The RTU --> TCP conversion is working and I get data from the slaves separately.

Please disable all RS-485 termination on your bus until you have achieved successful communication. This includes built-in termination on the ACS580 drives, the FL COMSERVER, and the PSM-ME-RS232/RS485-P converter (all of which have built-in termination). Will try that.
 
Since it seems that only changing your PLC configuration prevents communication from working, I recommend removing the PLC from the network and testing communication to the ACS580 drives and FL COMSERVER using a PC, USB to RS-232 converter (or a USB to RS-485 converter and also remove the PSM-ME-RS232/RS485-P from your RS-485 bus), and a Modbus RTU simulator such as one of the following:

ModScan (https://www.win-tech.com/)
Simply Modbus (https://simplymodbus.ca/)
Modbus Poll (https://www.modbustools.com/download.html)
 
Top