1.前言
Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一种通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一个控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。
当在同一Modbus网络上通信时,此协议决定了每个控制器需要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通信标准。
2. 移植与实践文章
2.1 文章
小型嵌入式系统FreeModbus移植与实践:http://blog.csdn.net/zgkxzx/article/details/46560979
linux嵌入式系统libmodbus移植与实践:http://blog.csdn.net/zgkxzx/article/details/78231171
Android Modbus的实现–Modbus4Android:http://blog.csdn.net/zgkxzx/article/details/71630301
2.2 开源库下载地址
libmobus : http://libmodbus.org/
(ps:自己上传的到CSDN上方便大家下载,本来设置免费,但是没有这个选项)
http://download.csdn.net/download/zgkxzx/10021543FreeModbus : https://www.freemodbus.org/
(ps:自己上传的到CSDN上的,本来是设置免费,但是没有这个选项)http://download.csdn.net/download/zgkxzx/10021538Modbus4Android : https://github.com/zgkxzx/Modbus4Android
FreeModbus STM32 RTT版: https://github.com/zgkxzx/FreeModbus_Slave-Master-RTT-STM32
(ps:这个库是在RT-thread国产嵌入式操作系统上移植的FreeModbus,armink大神所作,主从模式都带,很好用,原址: https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32)
3. 资源汇总
Modbus标准协议文档:https://pan.baidu.com/s/1sl7HcdR
Modbus详解文档:https://pan.baidu.com/s/1i4FiDLj
Modbus调试工具 Master和slave模式都有: https://pan.baidu.com/s/1kVMMvX1
libmobus linux最佳实现库 : http://libmodbus.org/
http://download.csdn.net/download/zgkxzx/10021543FreeModbus 嵌入式系统最佳实现库 : https://www.freemodbus.org/
http://download.csdn.net/download/zgkxzx/10021538Modbus4Android Android的最佳实现库下载地址 : https://github.com/zgkxzx/Modbus4Android
FreeModbus STM32 RTT版 STM32等单片机实现带轻量级操作系统最好库: https://github.com/zgkxzx/FreeModbus_Slave-Master-RTT-STM32
- Modbus4J java的modbus实现库https://github.com/infiniteautomation/modbus4j