industrial_modbus_tcp repository

Repository Summary

Checkout URI https://gitlab.com/InstitutMaupertuis/industrial_modbus_tcp.git
VCS Type git
VCS Version melodic
Last Updated 2020-07-29
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
industrial_modbus_tcp 0.0.2

README

Institut Maupertuis logo

Overview

This package contains a ROS node and a RViz panel to allow users to fetch data over Modbus TCP and publish them on ROS topics.

It can be used through the service (command line or programming) and also thanks to a RViz panel.

  • Multiple handlers can be created to establish as many connections as needed to Modbus TCP servers
  • Multiple data can be fetched at the same time
  • For each data the rate, endiannes and topic can be specified

Supported types are: - bool - int8 - uint8 - int16 - uint16 - int32 - uint32 - int64 - uint64 - float32 - float64

Depending on the data width multiple registers are fetched. Eg: int32 requires to fetch two modbus registers (16 bits each)

:information_source: The panel configuration is saved/loaded in the RViz configuration file, this includes the base topic and handlers configuration. You don't need to configure the handlers again.

:warning: When trying to connect to an IP address that is not reachable / does not host a Modbus TCP server the service will hang for a very long time (~ 2 minutes)

Dependencies

rosdep

Install, initialize and update rosdep.

Compiling

Create a catkin workspace and clone the project:

mkdir -p catkin_workspace/src
cd catkin_workspace/src
git clone https://gitlab.com/InstitutMaupertuis/industrial_modbus_tcp.git
cd ..

Resolve ROS dependencies

rosdep install --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y

Compile

catkin_make

User manual

rosrun industrial_modbus_tcp industrial_modbus_tcp &
rviz

Panels > Add New Panel > industrial_modbus_tcp/ModbusTCP

Base topic selection

Panel

Panel configure

CONTRIBUTING

No CONTRIBUTING.md found.