Module pyModbusTCP.client

pyModbusTCP Client

This module provide the ModbusClient class used to deal with modbus server.

class ModbusClient

class pyModbusTCP.client.ModbusClient(host='localhost', port=502, unit_id=1, timeout=30.0, debug=False, auto_open=True, auto_close=False)

Modbus TCP client

__init__(host='localhost', port=502, unit_id=1, timeout=30.0, debug=False, auto_open=True, auto_close=False)

Constructor.

Parameters:
  • host (str) – hostname or IPv4/IPv6 address server address
  • port (int) – TCP port number
  • unit_id (int) – unit ID
  • timeout (float) – socket timeout in seconds
  • debug (bool) – debug state
  • auto_open (bool) – auto TCP connect
  • auto_close (bool) – auto TCP close)
Returns:

Object ModbusClient

Return type:

ModbusClient

auto_close

Get or set automatic TCP close after each request mode (True = turn on).

auto_open

Get or set automatic TCP connect mode (True = turn on).

close()

Close current TCP connection.

custom_request(pdu)

Send a custom modbus request.

Parameters:pdu (bytes) – a modbus PDU (protocol data unit)
Returns:modbus frame PDU or None if error
Return type:bytes or None
debug

Get or set the debug flag (True = turn on).

host

Get or set the server to connect to.

This can be any string with a valid IPv4 / IPv6 address or hostname. Setting host to a new value will close the current socket.

is_open

Get current status of the TCP connection (True = open).

last_error

Last error code.

last_error_as_txt

Human-readable text that describe last error.

last_except

Return the last modbus exception code.

last_except_as_full_txt

Verbose human-readable text that describe last modbus exception.

last_except_as_txt

Short human-readable text that describe last modbus exception.

open()

Connect to modbus server (open TCP connection).

Returns:connect status (True on success)
Return type:bool
port

Get or set the current TCP port (default is 502).

Setting port to a new value will close the current socket.

read_coils(bit_addr, bit_nb=1)

Modbus function READ_COILS (0x01).

Parameters:
  • bit_addr (int) – bit address (0 to 65535)
  • bit_nb (int) – number of bits to read (1 to 2000)
Returns:

bits list or None if error

Return type:

list of bool or None

read_discrete_inputs(bit_addr, bit_nb=1)

Modbus function READ_DISCRETE_INPUTS (0x02).

Parameters:
  • bit_addr (int) – bit address (0 to 65535)
  • bit_nb (int) – number of bits to read (1 to 2000)
Returns:

bits list or None if error

Return type:

list of bool or None

read_holding_registers(reg_addr, reg_nb=1)

Modbus function READ_HOLDING_REGISTERS (0x03).

Parameters:
  • reg_addr (int) – register address (0 to 65535)
  • reg_nb (int) – number of registers to read (1 to 125)
Returns:

registers list or None if fail

Return type:

list of int or None

read_input_registers(reg_addr, reg_nb=1)

Modbus function READ_INPUT_REGISTERS (0x04).

Parameters:
  • reg_addr (int) – register address (0 to 65535)
  • reg_nb (int) – number of registers to read (1 to 125)
Returns:

registers list or None if fail

Return type:

list of int or None

timeout

Get or set requests timeout (default is 30 seconds).

The argument may be a floating point number for sub-second precision. Setting timeout to a new value will close the current socket.

unit_id

Get or set the modbus unit identifier (default is 1).

Any int from 0 to 255 is valid.

version

Return the current package version as a str.

write_multiple_coils(bits_addr, bits_value)

Modbus function WRITE_MULTIPLE_COILS (0x0F).

Parameters:
  • bits_addr (int) – bits address (0 to 65535)
  • bits_value (list) – bits values to write
Returns:

True if write ok

Return type:

bool

write_multiple_registers(regs_addr, regs_value)

Modbus function WRITE_MULTIPLE_REGISTERS (0x10).

Parameters:
  • regs_addr (int) – registers address (0 to 65535)
  • regs_value (list) – registers values to write
Returns:

True if write ok

Return type:

bool

write_single_coil(bit_addr, bit_value)

Modbus function WRITE_SINGLE_COIL (0x05).

Parameters:
  • bit_addr (int) – bit address (0 to 65535)
  • bit_value (bool) – bit value to write
Returns:

True if write ok

Return type:

bool

write_single_register(reg_addr, reg_value)

Modbus function WRITE_SINGLE_REGISTER (0x06).

Parameters:
  • reg_addr (int) – register address (0 to 65535)
  • reg_value (int) – register value to write
Returns:

True if write ok

Return type:

bool