The modbus stack provides a wrapper from the modbus communication to standardized ROS messages. The modbus package is based on pymodbus and is also written in Python.
After a catkin_make the Python modbus classes are also available from the outside and can be easily integrated in other packages.
This stack was used in a quality inspection project with the Baxter robot interfacing with a Siemens PLC and a Cognex In-Sight camera.