Skip to main content

Module modbus

Module modbus 

Source
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 + LF

Re-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§

ModbusLayer
Modbus layer – a zero-copy view into a packet buffer.

Enums§

ModbusFrameType
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.