Expand description
Modbus protocol layer implementation.
Implements Modbus/TCP (MBAP), Modbus RTU, and Modbus ASCII frame formats.
§Modbus/TCP (MBAP) Header Format
Offset Size Field
0 2 Transaction ID (big-endian)
2 2 Protocol ID (0x0000 for Modbus)
4 2 Length (number of following bytes, including Unit ID)
6 1 Unit ID (slave address)
7 1 Function Code
8..N var Data (function-code dependent)§Modbus RTU Frame Format
Offset Size Field
0 1 Slave Address
1 1 Function Code
2..N-2 var Data
N-2 2 CRC-16 (little-endian)§Modbus ASCII Frame Format
':' + hex(SlaveAddr + FuncCode + Data + LRC) + CR + LFRe-exports§
pub use builder::ModbusBuilder;pub use crc::modbus_crc16;pub use crc::modbus_lrc;pub use crc::verify_crc16;pub use crc::verify_lrc;
Modules§
- builder
- Modbus packet builder.
- crc
- Modbus CRC-16 and LRC checksum functions.
- except_
code - Modbus exception code constants.
- func_
code - Modbus function code constants.
Structs§
- Modbus
Layer - Modbus layer – a zero-copy view into a packet buffer.
Enums§
- Modbus
Frame Type - Modbus frame type.
Constants§
- MODBUS_
MBAP_ HEADER_ LEN - MBAP header length (transId + protoId + length + unitId = 7 bytes).
- MODBUS_
MIN_ HEADER_ LEN - Minimum Modbus/TCP message: MBAP header (7) + function code (1) = 8 bytes.
- MODBUS_
TCP_ PORT - Modbus/TCP default port.
Statics§
- MODBUS_
FIELD_ NAMES - Field names exported for Python/generic access.
Functions§
- except_
code_ name - Return a human-readable name for a Modbus exception code.
- func_
code_ name - Return a human-readable name for a Modbus function code.
- is_
modbus_ tcp_ payload - Check if a TCP payload looks like a Modbus/TCP (MBAP) message.