ROS下实现ModbusTCP的数据传输

  • Post author:
  • Post category:其他


感觉自己知识比较碎散,这是第一篇日志,用于自己知识整理,希望可以坚持下来这个习惯。

本文实现的是编写ROS节点,实现ModbusTCP数据的发送,并用一台win10电脑接收和读取数据。

win10电脑准备工作:

1、连接至同一个WiFi,用ipconfig查询本机ip地址,这里本机ip是172.172.100.49。将Ubuntu电脑也连至同一wifi下,用ifconfig查询ip为172.172.100.167。


2、打开wireshark,检测wlan的网络数据。ip.src==172.172.100.167可以筛选出来源于172.172.100.167地址的数据。ip.dst==172.172.100.49可以筛选出目标地址的数据。过滤两种条件时,使用and连接,如过滤ip为172.172.100.167并且为http协议的,ip.src==172.172.100.167 and http。如过滤80端口,在Filter中输入,tcp.port==80,这条规则是把源端口和目的端口为80的都过滤出来。使用tcp.dstport==80只过滤目的端口为80的,tcp.srcport==80只过滤源端口为80的包。

3、打开MThings工具,创建ModbusTCP的服务端。

设置如下:

此时client端(主机端)还未启动,故连接不上。

Ubuntu准备工作:

1、安装Modbus_ROS功能库,安装支持

sudo apt-get install python-pymodbus

sudo apt-get install python-pyasn1 python-twisted-conch



modbus – ROS Wiki

cd catkin_ws/src

git clone

https://github.com/HumaRobotics/modbus

.git

cd ..

catkin_make

放在工作空间下编译。即可

2、修改modbus_client.py代码。

3、启动roscore和rosrun modbus modbus_client.py 即可。

此时win10电脑里的MThings的服务端,点击链接操作-启动,即可连接上并接收到数据。

在wireshark里也可以观察到此时接收到了modbusTCP的数据。



版权声明:本文为weixin_44559815原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。