Modbus TCP

Modbus TCP Server

Modbus TCP is standard interface to interact with the IOs of Unipi PLCs. Each PLC has its own mapping of I/O to a Modbus Register or Coil which can be downloaded from the Products section.


1Wire devices are not mapped to Modbus TCP and have to be implemented differently, eg. using OWFS.

There are also registers indicating storage status for all Unipi controllers (except Unipi 1.1) that are available on the Modbus TCP server.

  • Erase cycles used [%] → indicates the number of memory erase cycles compared to the maximum cycles (in percent)
  • Good blocks [%] → indicates the number of blocks that are all right (in percent)

For Neuron units, there is also the number of power cycles (on/off) available with the current SD card, or the name of the card manufacturer's detection. For Neuron units, only a limited selection of SD cards is supported for these features.

The Modbus TCP server interface is provided by a unipitcp service. By default, the server only listens to request on the local loopback. Requests from other hosts than are forbidden due to security reasons. To change this, the unipitcp has to be run with the parameter “-l” (-L). If you wish, you can also change the listening port in parameter -p to a different one than the default 502.

/opt/unipi/tools/unipi_tcp_server -p 503 -l

To make the change permanent, modify the default configuration file /etc/default/unipi-modbus-tools and restart the service by

systemctl restart unipitcp