在树莓派3上测试Modbus RTU通信

本文介绍了如何在树莓派3上进行Modbus RTU通信的测试。由于树莓派的硬件串口与蓝牙共享,因此需要进行特定的配置,包括关闭串口控制台功能,修改`cmdline.txt`和`config.txt`文件,并使用TTL转RS232或RS232转USB转换器连接电脑。测试步骤包括在树莓派上修改源码,运行`unit-test-client`和`unit-test-server`,验证MODBUS RTU模式的成功通信。

libmodbus我们已经在公众号和应用笔记中介绍过很多次了,关于他的下载编译安装,编译配置,交叉编译等,如果不清楚可以参考之前的公众号文章

本文主要涉及Modbus RTU模式的测试。关于Modbus TCP/IP在之前的文章中也推送过,因为树莓派3的硬件串口和蓝牙是公用的,所以在用串口通信的时候,需要对树莓派做一些配置和设置。并关掉串口控制台功能。

需要运行sudo raspi-confg 命令配置

0?wx_fmt=jpeg

0?wx_fmt=jpeg

0?wx_fmt=jpeg

配置完需要重启reboot,使得配置生效。

修改cmdline.txt 配置文件,  使用vi或者nano 打开文件

输入命令sudo nano /boot/cmdline.txt

0?wx_fmt=jpeg

设置  config.txt

输入命令 sudo nano /boot/config.txt

在文件最后一行加入对蓝牙的禁止,

0?wx_fmt=jpeg

所有配置完后,重启reboot树莓派。

把电脑通过串口和树莓派连接起来,因为树莓派引出的GPIO脚串口是TTL电平,所以我们需要用到TTL转RS232,如果你的笔记本有RS232串口,那么就可以用TTL转RS232连接你的电脑了,但是现在大多数的笔记本电脑是没有串口的,所以在加一个RS232转USB转换器连接到电脑,注意接线一定要正确,防止损坏树莓派硬件。如下图所示

0?wx_fmt=jpeg

===========================================================下面来测试

测试前需要修改一些源码,在树莓派上需要修改一点代码,因为例程中不是ttyAMA0串口

0?wx_fmt=jpeg

然后保存,退出编译

 在电脑上进入libmodbus目录源码的tests文件夹下运行

sudo ./unit-test-server rtu

在树莓派上运行sudo ./unit-test-client rtu

注意一定要带上参数rtu,而且是小写,因为如果不带参数的话,默认是测试modbus TCP/IP。

0?wx_fmt=jpeg

0?wx_fmt=jpeg

可以看到对很多的功能码都进行了测试,像01,02,03,04,05 06,10等等。最后可以看到all tests passwith success.证明我们的MODBUS RTU测试完全能通过,其中还对一些异常码进行了测试,有兴趣的可以看看这些源码。至此我们对libmodbus 协议栈的 MODBUS RTU模式测试就算完成,加上之前公众号推送的MODBUSTCP/IP,至此我们对libmodbus 下的 RTU和TCP都介绍完成,在这个基础上大家就可以修改例程,实现自己的功能,例如可以用树莓派做为客户端,连接一些设备,例如可以用树莓派的串口跟一些带有串口的控制器设备通过mdobus RTU通信,然后树莓派可以通过Modbus TCP/IP连入互联网,实现了一个网关功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值