There are some special techniques that can be employed when using an RS485 interface. Engineers currently supporting internet based automation may not be aware of these procedures. To close this knowledge gap, here is a short remedial course in RS485 vs MODBUS protocols.
What is RS485 communication? RS485 is a standard for serial data transmission that is similar to RS232 while using different electric signals. A benefit of the RS485 protocol is the ability to have several devices share the same bus. This means you do not need multiple RS485 interfaces to query multiple devices. A bus terminator must be used to accomplish this feat. You may need to move a switch to the proper position or screw a small resistor on a terminal.
You do need to use the correct interface for signals to flow as RS485 and RS232 are not directly compatible. You can use RS232 to RS485 gateways, but it is more common to go from RS485 to USB, GSM or Ethernet directly. This eliminates the need to an extra component and is the less expensive way to go.
Data exchanged through RS485 interfacing primarily uses the MODBUS protocol. On the other hand, RS232 devices use text (ASCII) protocols. This difference implies that you need to know a little about the MODBUS protocol when using RS485 communication devices.
The MODBUS RS485 protocol defines communication between a host (master) and devices (slaves) that allows querying of device configuration and monitoring. MODBUS messages relay simple read and write operations on 16 bit words and binary registers often referred to as “coils”. Slave devices only respond to requests from the host which always initiates the conversation.
When you have several devices connected on the RS485 bus in parallel, each device requires a unique MODBUS Slave ID. Every MODBUS request begins with the host contacting the Slave ID of the target device and the answer begins with the Slave ID of the sending slave device. For MODBUS communication to work correctly you need to ensure proper configuration of your devices’ Slave IDs. As with RS232 communication speed and parity also need to be in synch.
ASCII protocols allow messages to be created by hand for the RS232 interfaces. This cannot be done with MODBUS as messages end with a checksum code that is computed from the complete message content. When exchanging MODBUS messages you need to use a specific proprietary program provided by your device vendor with a compatible interface. You can also use an RS485 interface and a programming library to encode and decode the MODBUS communication, or a Smart RS485 interface like the Yocto-RS485 that can handle the encoding and decoding itself.
There are two variations of the MODBUS protocol. In MODBUS ASCII mode messages are exchanged as lines of hexadecimal characters. Using the MODBUS RTU mode enables messages to be directly transmitted as binary frames. To communicate with a MODBUS device both host and device need to be using the same mode. MODBUS RTU mode is supported by all standard devices and is the mode most commonly used. MODBUS ASCII has no real advantage due to the difficulty in crafting messages by hand.
Modbus Test Software is a sniffer tool that allows you to analyze RS232/RS422/RS485 interfaces transmitting MODBUS communications. SPM’s excellent functionality enables easy detection and resolution of problems encountered when engaged in MODBUS testing and debugging. A distinctive feature of this tool is how it can display and log all data flowing through your system’s COM port.
Using this MODBUS sniffer software’s advanced search and filter options, you can display only the relevant subset of data that you desire. SPM also contains a built-in terminal for executing text commands. This user-friendly application supports exporting data in various formats and has many customizable options.