Modbus RTU Message Structure

Message Structure

01
Slave ID
Device Address
03
Function
Read Holding Registers
8C A0
Register
Start Address
00 0A
Length/Value
10 Registers
XX XX
CRC
Error Check

Read Request (FC=03)

01 03 30 00 00 0A XX XX
│  │  │     │     └─ CRC
│  │  │     └─────── Length (10 registers)
│  │  └───────────── Register 36000(0x8CA0)
│  └──────────────── Function Code (Read)
└─────────────────── Slave ID

Write Request (FC=06)

01 06 30 00 00 64 XX XX
│  │  │     │     └─ CRC
│  │  │     └─────── Value (100)
│  │  └───────────── Register 36000(0x8CA0)
│  └──────────────── Function Code (Write)
└─────────────────── Slave ID

Common Function Codes

Read Operations

  • 01 - Read Coils
  • 02 - Read Discrete Inputs
  • 03 - Read Holding Registers
  • 04 - Read Input Registers

Write Operations

  • 05 - Write Single Coil
  • 06 - Write Single Register
  • 15 - Write Multiple Coils
  • 16 - Write Multiple Registers

Important Notes

  • All values are in hexadecimal
  • Register addresses are 16-bit (0x0000 to 0xFFFF)
  • CRC is calculated over all preceding bytes
  • Maximum message length is 256 bytes
  • Minimum message gap is 3.5 character times

Modbus RTU Communication Pattern

MasterSlave ID 1Slave ID 2Slave ID 3Request (ID: 1)ResponseRequest (ID: 2)Response

Key Points

  • Single master communicates with multiple slaves
  • Each slave has a unique ID
  • Communication is sequential - one request/response at a time
  • Master must wait for response before sending next request
  • Collisions occur if multiple devices transmit simultaneously
  • Failed communications require retry mechanisms

Multiple Masters: Communication Failure

Master 1Master 2Slave ID 1Slave ID 2Request (Master 1)Request (Master 2)COLLISION!Failed ResponseFailed Response

Why Multiple Masters Fail

  • Multiple masters can transmit simultaneously
  • No built-in arbitration mechanism in Modbus RTU
  • Collisions corrupt data on the bus
  • Slaves cannot properly decode corrupted requests
  • Both masters receive no valid response
  • System reliability becomes unpredictable

This is why Modbus RTU requires a single master architecture!