![](https://csdnimg.cn/release/download_crawler_static/89401401/bg1.jpg)
之前一直是白嫖,第一次贡献代码,如有错误或者问题请见谅。
代码仓库见:
GitHub 仓库: https://github.com/SenySunny/modbus_rt.git
Gitee 仓库: https://gitee.com/SenySunny/modbus_rt.git
B 站视频地址:https://www.bilibili.com/video/BV1cc411m72m/
一、介绍
modbus_rt 是一款完全基于 C 语言实现的可以运行在 windows, linux, macos,
RTOS 上的 modbus 通信库。主要目的是针对控制系统和工业物联网的方向使用。
modbus_rt 可以同时支持 slave 模式和 master 模式,基于类似 socket 句柄的实
现思想,可以很方便的支持多例模式。它不仅仅是 modbus 协议的解析和实现,
而是尽可能的在应用层做好实现和封装,做到开箱即用,而不需要做过多的应用
层移植。
modbus_rt 支持几乎市面上常用的所有的 modbus 协议的实现,包括 modbus
RTU,modbus ASCII,modbus TCP,modbus TCP over UDP,modbus RTU over
TCP/UDP, modbus ASCII over TCP/UDP,且都可以运行在 Slave 模式和 Master 模
式。另外 modbus_rt 提供了 modbus 通信中的大小端转换函数接口(市面上 4 种大
小端模式均支持),实现不同平台下的 modbus 寄存到各种数据的转换接口函数功
能(包括 bytes, string, int, long, float, double 等)。
modbus_rt 还额外提供了基于 pikapython 的接口实现,可以采用 python 脚本实
现 modbus 通信功能。可以无缝兼容到 pikapython 的环境当中(后续可能考虑提
供基于 micro python 和 Cpython 的接口实现,本人对 micro python 和 Cpython
的底层封装不是很熟悉,看情况,不一定有时间,感兴趣的可以自己移植)。
另外由于 modbus_rt 采用纯 C 编写,后续会考虑支持编译封装为动态链接库,
供其他编程语言调用(主要考虑给 C#调用,目前主要的控制上位机平台基于 QT
或者 C#居多),目前暂时没有封装 dll,所以仅提供基于 QT 的 demo。
1、 modbus_rt 的主要特性如下:
可以无缝运行在市面上绝大部分平台,包括:windows,Linux,嵌入式 RTOS 系
统当中(计划会维护 rt-thread 和 FreeRTOS 系统)。
采用线程实现应用层接口,可以快速实现多个 modbus 实例应用。支持几乎所有
的 modbus 协议,且均支持 Slave 模式和 Master 模式。
同时支持市面上 4 种不同模式的大小端数据转化接口,实现不同平台下的
modbus 寄存到各种数据的转换接口函数功能(包括 bytes, string, int, long,
float, double 等)。
基于面向对象的思维方式,采用句柄模式,非常方便实现 modbus 的多例模式。
理论上只要性能,内存和空间足够,可以创建无数个 modbus 实例。