I felt the need for a new type of generic MODBUS/TCP driver in the ROS ecosystem that works “out of the box” without involving any coding. It was born out of the desire to flexibly communicate with PLCs and bus couplers. With their flexible configuration of IO modules, a driver package per specific device is not a viable option here.
The driver allows you to map your hardware IOs (coils, discrete in and input/holding registers) to topics by simply naming the IO and supplying an address and type in a yaml/json config file. The driver supports nearly all IEC 61131-3 elementary types.
Check out the code and documentation here: https://github.com/bitmeal/ros-modbus-device-driver
I am happy to receive comments on the package