ModBus RTU and ModBus TCP are the two main variants of the ModBus protocol. Traditionally, ModBus RTU (the RTU required to transmit information back to a ModBus master or SCADA HMI) has been used by many different types of devices. The ModBus RTU protocol is usually sent serially over RS485. This daisy-chain communication channel allows multiple devices to report to a single HMI port in a master-slave configuration. Each slave device is able to talk by sending traffic to the master device. This keeps the ModBus network structure fairly simple.
Related products (support Modbus):
LOW COST LoRa Module RS485 Long Range Wireless LoRa Modem Support Modbus-E95-DTU(400F30-485) | EBTYE OEM/ODM NB114 Long-distance and efficient Data Serial to Ethernet server-NB114 |
Basic structure of all ModBus protocols
Regardless of the variant, all standard ModBus communications follow the same messaging structure. Everything revolves around storing values in registers and then reading them. There are several data types at play here.
For example, discrete inputs can be stored as individual bits. More broadly, input registers store values collected by ModBus-based devices. Multiple discrete devices are stored as a single bit, while analog values or even ASCII characters may be stored in 8-bit registers (least significant bit is 0, most significant bit is 64 bits).
The different types of registers are categorized by the function code used to poll them. A "1" in the function code field is for "read coil" (checks the state of the control relay). "2" means "read discrete input" (check the state of the discrete input). "3" is "Read Holding Registers" (collect data from multipurpose read/write registers). There are many more in the ModBus specification. Registers are requested by their "start address", which is a 16-bit value that uniquely identifies each register in the device. Master requests to the RTU or other device will always refer to the desired registers to report on.
The main difference is that ModBus RTU uses a daisy-chain network, so you can connect the entire network with two wires and communicate with each device by giving each node a unique address. ModBus TCP uses a star network where each node has a separate cable called Cat5 or Cat6. They can be connected using a router. They also carry a personal address that is unique to each node on the network. The addresses can be from 1 to 255, which means that in theory, you could have 254 devices on the same network. You can also use ModBus TCP over the Internet.
EBYTE Modbus RTU IO Module Overview: MA01-AACX2240 (From the real evaluation of KOL)
The trend in 2023 is for more field devices to use ModBus RTU, but the ModBus TCP communication protocol is catching up. Pressure transmitters, flow meters and gas analyzers use ModBus RTU. PLCs, DCS and control room equipment use ModBus TCP. Some devices that communicate with web servers over the internet are using ModBus TCP. Input and output analog and digital modules are available on ModBus RTU and ModBus TCP.
The difference between ModBus RTU and ModBus TCP protocol
Can the ModBus communication protocol be used as a low-cost solution?
For ModBus RTU protocol and ModBus TCP protocol, the answer is yes. ModBus RTU protocol application needs to read 4-20mA or 0-10 V input and display in PC or PLC device. Whereas with the ModBus TCP protocol, you only need an analog ModBus TCP card and connect it directly to a PC with a Cat5 or Cat6 cable using a crossover cable or through a router, and you can read the ModBus registers very quickly.
Whether using the ModBus RTU communication protocol or the ModBus TCP communication protocol, you will find it a simple and low-cost solution for your application. Depending on the size and complexity of the system, one can choose a protocol that better suits the user's needs, but both protocols provide excellent solutions for industrial automation applications.