uModbus 1.0.0!

Today marks the release of uModbus 1.0.0, one of the Open Source projects of Advanced Climate Systems. uModbus is an open source Modbus implementation for Python 2.7 and Python 3.3+. uModbus can be used to create both Modbus servers and clients.

The first version was released on 2015-11-10, more than 3 years ago. This release only included support for building Modbus TCP server’s. Over the course of several releases support for TCP clients (0.4.0), Modbus RTU clients (0.6.0) and Modbus RTU servers (0.7.0) was introduced.

One might think of version 1.0.0 as being the first stable and production ready release. But this is not true! Previous releases where already quite stable. In fact, Advanced Climate Systems is using uModbus in production ever since its first release. Currently the company uses uModbus on several hundreds embedded Linux devices in several countries across Europe.

Modbus

For those who aren’t familiar with Modbus: Modbus is a communication protocol to communicate with industrial devices like PLC’s, sensors and actuators. Originally it was only a serial communication protocol, but nowadays it can also be used in TCP/IP networks.

Modbus has a only few functions. Each function has is identified by its function code. Modbus has functions for diagnostics and for data access. uModbus doesn’t support the diagnostics related functions (yet). The supported functions are:

  • 01 - Read Coils
  • 02 - Read Discrete Inputs
  • 03 - Read Holding Registers
  • 04 - Read Input Registers
  • 05 - Write Single Coil
  • 06 - Write Single Register
  • 15 - Write Multiple Coils
  • 16 - Write Multiple Registers

Wrapping up

uModbus has been very valuable for Advanced Climate Systems as well as for others. See for example favalex/modbus-cli, a command line interface to do Modbus requests. This project uses uModbus under the hood. I hope uModbus can be usefull for you too!