What always happens
- The client initiates every normal transaction.
- Only the addressed server replies on serial buses.
- PDU addresses are zero-based even when manuals label coils/registers with 0x, 1x, 3x, or 4x prefixes.
Simulate complete Modbus requests, responses, exceptions, and transport framing.
Configure a client request, watch the frame cross the selected transport, inspect the addressed device table, and compare normal, exception, and timeout responses. The default state shows the full request-response loop before the learner changes anything.
Builds FC04 for unit 17, starting at PDU address 2.
RTU wraps the PDU with slave address and CRC-16, then relies on silent intervals between frames.
Unit 17 checks the function code, address range, and quantity before returning register values.
Client sends address, function, starting address, quantity, then the transport check or header.
A normal response echoes useful data; an exception response returns function code plus 0x80 and one exception byte.
Read/write bit outputs.
Read-only bit inputs.
Read-only 16-bit measurements.
Read/write 16-bit settings.
The client is reading two input registers. The device returns a byte count of 4 followed by two big-endian 16-bit values.
Modbus fields inside the PDU are big-endian. The application protocol limits the PDU to 253 bytes, so large reads and writes must respect function-code-specific limits.
Serial broadcast address 0 is write-only from the client perspective because servers do not send normal replies. TCP gateways carry a Unit Identifier so a TCP client can address a downstream serial device.
The timing readout is a teaching estimate. RTU framing uses silent intervals; at 9600 bit/s a character is typically modeled as 11 bits, with 3.5 character times separating frames.