1. It is openly published and royalty-free
2. Relatively easy industrial network to deploy
3. It moves raw bits or words without placing many restrictions on vendors
Modbus allows for communication between many devices connected to the same network, for example a system that measures temperature and humidity and communicates the results to a computer. Modbus is often used to connect a supervisory computer with a remote terminal unit (RTU) in supervisory control and data acquisition (SCADA) systems.
Suppliers large and small, system integrators, end users, open source developers, educators and other interested parties can become Modbus organization members. Some of the prominent members are SoftDEL Systems, Precision Digital Corporation, Motor Protection Electronics, FieldServer Technologies and many more
Each device intended to communicate using Modbus is given a unique address. In serial and MB+ networks only the node assigned as the Master may initiate a command, but on Ethernet, any device can send out a Modbus command, although usually only one master device does so. A Modbus command contains the Modbus address of the device it is intended for. Only the intended device will act on the command, even though other devices might receive it (an exception is specific broadcastable commands sent to node 0 which are acted on but not acknowledged). All Modbus commands contain checking information, ensuring that a command arrives undamaged. The basic Modbus commands can instruct an RTU to change a value in one of its registers, control or read an I/O port, as well as commanding the device to send back one or more values contained in its registers.
Communication and devices
There are many modems and gateways that support Modbus, as it is a very simple protocol and often copied. Some of them were specifically designed for this protocol. Different implementations use wireline, wireless communication and even SMS or GPRS. Typical problems the designers have to overcome include high latency and timing problems.
Supported Function Codes
Modbus function codes / data types includes the following types [3] Most commonly used are given in italics.
- 01 Read Coil Status
- 02 Read Input Status
- 03 Read Holding Registers
- 04 Read Input Registers
- 05 Force Single Coil
- 06 Preset Single Register
- 07 Read Exception Status
- 08 Diagnostics
- 09 Program 484
- 10 Poll 484
- 11 Fetch Communication Event Counter
- 12 Fetch Communication Event Log
- 13 Program Controller
- 14 Poll Controller
- 15 Force Multiple Coils
- 16 Preset Multiple Registers
- 17 Report Slave ID
- 18 Program 884/M84
- 19 Reset Comm. Link
- 20 Read General Reference
- 21 Write General Reference
- 22 Mask Write 4X Register
- 23 Read/Write 4X Registers
- 24 Read FIFO Queue
Implementations
Almost all implementations have variations from the official standard. Different varieties might not communicate correctly between equipment of different suppliers. Some of the most common variations are:
Data types
- Floating point IEEE
- 32-bit integer
- 8-bit data
- Mixed data types
- Bit fields in integers
- Multipliers to change data to/from integer. 10, 100, 1000, 256 ...
- 16-bit slave addresses
- 32-bit data size (1 address = 32 bits of data returned.)
- Word swapped data
No comments:
Post a Comment