cheap_modbus_rtu
Lightweight control of cheap Modbus RTU components using Python
Public Member Functions | Public Attributes | List of all members
cheap_modbus_rtu.modbus_rtu_master.ModbusRtuMaster Class Reference

Lightweight Modbus RTU master. More...

Public Member Functions

def __init__ (self, str device_name=None, int baudrate=9600, timeout=1, debug_active=False, **kwargs)
 
tuple[bool,...] read_discrete_input_registers (self, int slave_id, int start_register_no=10001, int n_registers=8)
 Read one or more discrete (on/off) input registers ("coils") More...
 
tuple[int,...]|tuple[bytes,...]|bytes read_holding_registers (self, int slave_id, int start_register_no=40001, int n_registers=1, str dtype="uint16" # Since Python 3.10 typing can be:#)
 Read one or more value holding registers. More...
 
tuple[int,...]|tuple[bytes,...]|bytes read_input_registers (self, int slave_id, int start_register_no=30001, int n_registers=1, str dtype="uint16" # Since Python 3.10 typing can be:#)
 Read one or more input read-out registers. More...
 
def set_discrete_output_register (self, int slave_id, int register_no, bool active)
 Set one discrete (on/off) output register ("coil") More...
 
def set_holding_register (self, int slave_id, int register_no=40001, int value=0x0000)
 Set one (analog or general-purpose) 16-bit value holding register. More...
 
def set_holding_registers (self, int slave_id, int start_register_no, tuple[int,...] values, bool expect_echo_response=False)
 Set one or more (analog or general-purpose) 16-bit value holding registers. More...
 

Public Attributes

 debug_active
 
 serial_device
 

Detailed Description

Lightweight Modbus RTU master.

2022-12-07 Ulrich Lukas

Member Function Documentation

◆ read_discrete_input_registers()

tuple[bool, ...] cheap_modbus_rtu.modbus_rtu_master.ModbusRtuMaster.read_discrete_input_registers (   self,
int  slave_id,
int   start_register_no = 10001,
int   n_registers = 8 
)

Read one or more discrete (on/off) input registers ("coils")

Parameters
slave_idModbus Slave ID
start_register_noFirst register number to read
n_registersNumber of registers to read
Returns
Tuple of register values as boolean flag values

◆ read_holding_registers()

tuple[int, ...] | tuple[bytes, ...] | bytes cheap_modbus_rtu.modbus_rtu_master.ModbusRtuMaster.read_holding_registers (   self,
int  slave_id,
int   start_register_no = 40001,
int   n_registers = 1,
str   dtype = "uint16" # Since Python 3.10 typing can be: # 
)

Read one or more value holding registers.

Parameters
slave_idModbus Slave ID
start_register_noFirst register number to read
n_registersNumber of registers to read
dtypeConfigures format of return value, see below
Returns
Tuple of register values interpreted as 16-bit integers if dtype == "uint16" (default)
Tuple of register values interpreted as 16-bit signed integers if dtype == "int16"
Tuple of register values each in a 16-bit bytes object if dtype == "words"
bytes of register values if dtype == "raw"

◆ read_input_registers()

tuple[int, ...] | tuple[bytes, ...] | bytes cheap_modbus_rtu.modbus_rtu_master.ModbusRtuMaster.read_input_registers (   self,
int  slave_id,
int   start_register_no = 30001,
int   n_registers = 1,
str   dtype = "uint16" # Since Python 3.10 typing can be: # 
)

Read one or more input read-out registers.

Parameters
slave_idModbus Slave ID
start_register_noFirst register number to read
n_registersNumber of registers to read
dtypeConfigures format of return value, see below
Returns
Tuple of register values interpreted as 16-bit unsigned integers if dtype == "uint16" (default)
Tuple of register values interpreted as 16-bit signed integers if dtype == "int16"
Tuple of register values each in a 16-bit bytes object if dtype == "words"
bytes of register values if dtype == "raw"

◆ set_discrete_output_register()

def cheap_modbus_rtu.modbus_rtu_master.ModbusRtuMaster.set_discrete_output_register (   self,
int  slave_id,
int  register_no,
bool   active 
)

Set one discrete (on/off) output register ("coil")

Parameters
slave_idModbus Slave ID
register_noRegister number to set
activeSet output enabled if active == True, otherwise disable output

◆ set_holding_register()

def cheap_modbus_rtu.modbus_rtu_master.ModbusRtuMaster.set_holding_register (   self,
int  slave_id,
int   register_no = 40001,
int   value = 0x0000 
)

Set one (analog or general-purpose) 16-bit value holding register.

Parameters
slave_idModbus Slave ID
register_noRegister number to set
valueInteger value to be written into 16-bit big-endian
register.

◆ set_holding_registers()

def cheap_modbus_rtu.modbus_rtu_master.ModbusRtuMaster.set_holding_registers (   self,
int  slave_id,
int  start_register_no,
tuple[int, ...]  values,
bool   expect_echo_response = False 
)

Set one or more (analog or general-purpose) 16-bit value holding registers.

Parameters
slave_idModbus Slave ID
start_register_noFirst register number to read
valuesTuple of integer values to write into registers
expect_echo_responseIf set to True, expect a device response which is a copy of the original query, which is not standard Modbus behaviour.

The documentation for this class was generated from the following file: