Skip to main content
Modbus builds on the UART reading: every byte is one character on the serial line. That is why it has serial settings of its own, independent from UART: it is not unusual to read a loose line at 8N1 and a Modbus bus at 8E1 at the same time.

Settings

The three modes

In RTU frames are split by a 3.5-character silence; in ASCII by : and CR LF; in TCP by the length the MBAP header declares.
For Modbus TCP what is read is the framing: the MBAP header and the PDU. The layers below —TCP, IP, Ethernet— are not drawn: the bytes are written as serial characters.

The direction

The data layout depends on the side of the conversation. In Auto it is inferred from the frame length and the previous request; it is worth forcing it to draw a single frame on its own.

Fields

In TCP the MBAP header fields are added:

Function codes it recognizes

A code outside the list is still shown, as Function N.

Exceptions

Errors it detects

The summary

Each frame is summed up with the device and the function, and an arrow giving the direction:
  • 0x01 → Read holding registers for a request
  • 0x01 ← Read holding registers for the response
  • 0x01 ✗ Read holding registers for an exception
  • Broadcast → Write multiple coils for address 0
  • Incomplete frame or Outside a frame when it does not add up
At the end, a or a depending on the check.

How to start

With nothing drawn, the status box explains:
No frame yet. Every byte is one character on the serial line: in RTU and ASCII a frame starts with the slave address, and in TCP with the MBAP header.