Is it possible to make a Modbus RTU master as a Modbus IP server?

Hi everyone,

I hope you could kindly help me with the following question.

We have a oven system that has a Modbus RTU master (the HMI computer) and four RTU slaves that reads thermal couples. I am trying to read the thermal couple readings via WiFi from the RTU master.

My current thought is to create another Modbus IP network, to use a Arduino Nano 33 IoT as a master(or client) and use the RTU master as the slave (or server) of this new IP network. And try to read the thermal couple readings presumably stored in the holding register and upload them to a network database.

Is this possible? Is there anything that I should be aware of to set it up? Is there any other devices that I need to make this possible?

Many thanks in advance for your kind help.

Is this possible?

We cannot know as we have no clue what type of device that "Modbus RTU master" is. If that "Modbus RTU master" is able to have the role "Modbus TCP server" at the same time as being master for the RTU bus it might be possible. But such a device combination would be extremely exotic so I doubt that you have a device with such capabilities.

Hi pylon,

Thanks for your reply. The RTU master and four slaves connecting to thermal couples are within on PLC system called Calogix. The RTU master is just a normal PC which is the HMI for Calogix PLCs to monitor the temperature profiles of the oven. I was hoping to create another network using Modbus IP protocol which to define this HMI pc as the server and an arduino Nano 33IoT as the client in order to take data out from the holding register where the thermal couple readings are most likely stored. I just want to check whether this idea is possible. Otherwise, I may need to explore the option of OPC to extract data from PLC.

Many thanks in advance.

I was hoping to create another network using Modbus IP protocol which to define this HMI pc as the server and an arduino Nano 33IoT as the client in order to take data out from the holding register where the thermal couple readings are most likely stored.

Even if that device is a normal PC, usually you don't have control over it or get the source code to make any changes. As I wrote I doubt that the HMI offers the interface to read the stored values by Modbus TCP. I don't know the system so I might be wrong.

Do you have a link to the system manuals/datasheets?

Hi Pylon,

Many thanks for your reply! The manual can be downloaded via

https://www.west-cs.com/products/models/calogix-multi-loop-controller/

Sorry that I try to attach it directly, but the file is too big.

I am not entirely sure about this, but through RTU protocol data will be collected in different tables within the protocol scripts before the HMI trying to extract the data? There are usually four tables each of which is allocated 9999 addresses to store information. Coils (read/write) and discrete inputs (read only) are just 1 bit data. there are also input register (read only) and holding register (read/write) which have 16 bits or 2 bytes. As far as I can understand, the thermal couple readings (being voltage difference of the thermal couple) can only be stored in the holding register. I am only looking into taking the data out from the RTU master and not to disturb any data inside all these tables. The idea of creating a IP protocol network is simply to create another master (or client if it is for IP protocol) which is an arduino and define the RTU master as the slave (or server for IP protocol) to take data from its holding register.

Below is the explanation I found via youtube on modbus.

However, since the oven is in production environment, I really want to be certain this idea will work without interfering the usage of this PLC.

Cheers

Lucy

Many thanks for your reply! The manual can be downloaded via

That's the manual of the Modbus RTU slaves. As you don't have a direct connection from the Arduino to the slaves, this manual is not needed.

We need the manual of that HMI/PC device you want to communicate with.

I am not entirely sure about this, but through RTU protocol data will be collected in different tables within the protocol scripts before the HMI trying to extract the data? There are usually four tables each of which is allocated 9999 addresses to store information. Coils (read/write) and discrete inputs (read only) are just 1 bit data. there are also input register (read only) and holding register (read/write) which have 16 bits or 2 bytes. As far as I can understand, the thermal couple readings (being voltage difference of the thermal couple) can only be stored in the holding register. I am only looking into taking the data out from the RTU master and not to disturb any data inside all these tables. The idea of creating a IP protocol network is simply to create another master (or client if it is for IP protocol) which is an arduino and define the RTU master as the slave (or server for IP protocol) to take data from its holding register.

You're describing part of the Modbus architekture but you're also mixing it with some stuff that doesn't apply here. The tables are not the storage but only the access concept.
If your description of the planned system is accurate you can forget about the Modbus RTU part and concentrate on the HMI device as that's the only only one you're planning to connect to.