第11章 libmodbus剖析与编程
11.1libmodbus开发库
11.1.1 功能概要
libmodbus是一个免费的跨平台Modbus库,支持RTU和TCP,遵循LGPL V2.1+协议,兼容Linux、Mac OS X、FreeBSD、QNX和Windows等操作系统。它可通过串口或TCP网络与符合Modbus协议的设备发送/接收数据,方便开发者构建应用程序或将Modbus通信集成到设备中。
作为开源软件,还可以从GitHub网站获取最新版本的代码。
11.1.2 源码获取
libmodbus的源码不断更新,本教程选择版本v3.1.10。
如下图下载:
本源码也放在网盘中如下目录里:
解压后,简单查看源代码根目录的构成:
②m4目录:存放GNU m4文件,在这里对理解代码没有意义,可忽略。
③src目录:全部libmodbus源文件。
④tests目录:包含自带的测试代码,其他文件对理解源代码关系不大,可以暂时忽略。
图6-1 解压libmodbus源代码:
进一步展开src代码目录,如图6-3所示:
图6-2 libmodbus源码构成:
各文件作用如下:
①win32:定义在Windows下使用Visual Studio编译时的项目文件和工程文件以及相关配置选项等。其中,modbus-9.sln默认使用Visual Studio 2008。
②Makefile.am:Makefile.am是Linux下AutoTool编译时读取相关编译参数的配置文件,用于生成Makefile文件,因为用于Linux下开发,所以在这里暂时忽略。
③modbus.c:核心文件,实现Modbus协议层,定义共通的Modbus消息发送和接收函数各功能码对应的函数。
modbus.h:libmodbus对外暴露的接口API头文件。
④modbus-data.c:数据处理的共通函数,包括大小端相关的字节、位交换等函数。
⑤modbus-private.h:libmodbus内部使用的数据结构和函数定义。
⑥modbus-rtu.c:通信层实现,RTU模式相关的函数定义,主要是串口的设置、连接及消息的发送和接收等。
modbus-rtu.h:RTU模式对外提供的各API定义。
modbus-rtu-private.h:RTU模式的私有定义。
⑦modbus-tcp.c:通信层实现,TCP模式下相关的函数定义,主要包括TCP/IP网络的设置连接、消息的发送和接收等。
modbus-tcp.h:定义TCP模式对外提供的各API定义。
modbus-tcp-private.h:TCP模式的私有定义。
⑧modbus-version.h.in:版本定义文件。
11.1.3 libmodbus与应用程序的关系
libmodbus是一个免费的跨平台支持RTU和TCP的Modbus开发库,借助于libmodbus发库能够非常方便地建立自己的应用程序或者将Modbus通信协议嵌入单体设备libmodbus开发库与应用程序的基本关系如图6-4所示。
图6-3 应用程序与libmodbus的关系:
在对libmodbus的接口及代码框架简单了解之后,不妨再深入细节一探究竟,看看libmodbus都实现了哪些基础功能,以及源代码中对Modbus各功能码和消息顿是如何包装的。具体内容请参看下一章。
-
MODBUS
+关注
关注
28文章
1801浏览量
76956 -
LibModbus
+关注
关注
0文章
8浏览量
7258 -
开发库
+关注
关注
0文章
7浏览量
4860
原文标题:libmodbus开发库 - RZ MPU工业控制教程连载(37)
文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论