modbus

Modbus TCP Server and Client Programs


License
GPL-2.0+
Install
pip install modbus==3.2

Documentation

Modbus Server and Client programs using Python-3

  • server.py
  • client.py

Installation:

  • sudo pip3 install modbus

Usage Examples:

Server:

  • sudo python3 -m modbus.server ...to run server in commandline
  • For Register Read, the server sends value starting from 1 and incrementing upto 6000. For example, the client wants to read with FuncCode=3, Address=0, and Length=4. Then the server's reply for values will be 1,2,3,4 for the first read and values will increment for every subsequent read.
  • For Coil Reads, the server sends back values 85,86... for the required length.

Client:

  • from modbus.client import *
  • c = client() ...if host = 'localhost'
  • c = client(host='HOSTNAME') ...Change HOSTNAME to Server IP address
  • c.read() ...To read 10 Input Registers from Address 0
  • c.read(FC=3, ADR=10, LEN=8) ...To read 8 Holding Registers from Address 10
  • c.write(11,22,333,4444) ...To write Holding Registers from Address 0
  • c.write(11,22,333,4444, ADR=10) ...To write Holding Registers from Address 10
  • c.write(11,22, FC=15, ADR=10) ...To write Coils from Address 10
  • fc() ...To get the supported Function Codes

Supported Function Codes:

  • 1 = Read Coils or Digital Outputs\n\
  • 2 = Read Digital Inputs\n\
  • 3 = Read Holding Registers\n\
  • 4 = Read Input Registers\n\
  • 5 = Write Single Coil\n\
  • 6 = Write Single Register\n\
  • 15 = Write Coils or Digital Outputs\n\
  • 16 = Write Holding Registers")