0.前言
本文使用树莓派实现MODBUS RTU从机,借助python库——modbus-tk实现RTU从机。MODBUS是一种灵活可靠的工业通信协议,常用的MODBUS协议包括MODBUS RTU和MODBUS TCP。借助python强大的库函数,可以在树莓派平台上非常方便的实现MODBUS主机和从机,MODBUS RTU和TCP,甚至一个树莓派既可以跑MODBUS RTU主机也可以同时跑MODBUS TCP从机。相比于其他平台(例如STM32),在树莓派上实现modbus真的太简单了。
【有用的参考资料】
【1】MODBUS协议整理——汇总——如果您还不熟悉modbus,请你花点时间看看吧。
【2】 freemodbus modbus TCP 学习笔记
——STM32平台,通过uIP实现modbus TCP从机
【3】 MODBUS学习笔记——modbus tk modbus TCP主机实现
——使用modbus tk实现modbus TCP主机。平台为PC,无需修改可移植到树莓派。
【4】 树莓派学习笔记——UART使用
——树莓派UART端口使用,本例中将会使用到该文提到的内容。
【5】 树莓派学习笔记——RPi.GPIO 流水灯
——GPIO相关操作,本例中将会使用到该文提到的内容。
1.modbus tk安装
详见以下博文
2.简单的例子
【说明】
假设树莓派8个可用GPIO端口分别连接LED,在很多工控领域一个LED可称为控制点,在modbus协议中一个控制点被抽象为线圈寄存器,操作相应的线圈寄存器有05H和15H指令。若使用modbus-tk便不必关心modbus协议的具体内容。下面就通过modbus中协议实现树莓派扩展板上LED的控制。
【代码】