The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME Device-Modbus-RTU version 0.021

This distribution aims towards implementing the Modbus protocol over serial lines, in its RTU variant in Perl. It should make it possible to write Modbus RTU clients and servers.

In particular, servers should be able to execute arbitrary code to process requests. This will allow for applications such as Modbus gateways or database front-end applications that communicate directly with external devices.

CURRENT STATUS

Currently, the distribution is under development. You can find more information at http://www.7mavida.com/tag/Device::Modbus

MILESTONES

  • Modbus TCP server

  • Modbus TCP client

  • Modbus RTU client

  • Modbus RTU server

  • Documentation

  • Shared over CPAN

As of today, simple clients and servers both with Modbus RTU and Modbus TCP have been tested. Only the clients have been tested with industrial equipment.

INSTALLATION

To install this module type the following:

   perl Makefile.PL
   make
   make test
   make install

DEPENDENCIES

This module requires these other non-standard modules and libraries:

  • Device::SerialPort

  • Role::Tiny

SEE ALSO

The main documentation for the distribution is in Device::Modbus.

In Perl, you can find other Modbus related distributions. I think the leading one would be Protocol::Modbus, by Cosimo Streppone, which implements Modbus TCP clients. While there is code for RTU clients, it is not as mature.

There are also some scripts that implement both a server and clients. A couple worth looking at is formed by MBclient and mbserved. The later is available in GitHub only and they were both written by the same author, l.lefebre https://github.com/sourceperl.

COPYRIGHT AND LICENCE

Copyright (C) 2015 by Julio Fraire

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.