0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简单认识libmodbus开发库

瑞萨MCU小百科 来源:瑞萨MCU小百科 2024-11-13 15:42 次阅读

第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。

如下图下载

c3cd4996-a174-11ef-93f3-92fbcf53809c.png

本源码也放在网盘中如下目录里:

c3d90d44-a174-11ef-93f3-92fbcf53809c.png

解压后,简单查看源代码根目录的构成:

①doc目录:libmodbus库的各API接口说明文档。

②m4目录:存放GNU m4文件,在这里对理解代码没有意义,可忽略。

③src目录:全部libmodbus源文件。

tests目录:包含自带的测试代码,其他文件对理解源代码关系不大,可以暂时忽略。

图6-1 解压libmodbus源代码:

c3f0fc06-a174-11ef-93f3-92fbcf53809c.png

进一步展开src代码目录,如图6-3所示:

图6-2 libmodbus源码构成:

c3f89c7c-a174-11ef-93f3-92fbcf53809c.png

各文件作用如下:

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的关系:

c40758c0-a174-11ef-93f3-92fbcf53809c.png

在对libmodbus的接口及代码框架简单了解之后,不妨再深入细节一探究竟,看看libmodbus都实现了哪些基础功能,以及源代码中对Modbus各功能码和消息顿是如何包装的。具体内容请参看下一章。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • MODBUS
    +关注

    关注

    28

    文章

    1804

    浏览量

    76981
  • LibModbus
    +关注

    关注

    0

    文章

    8

    浏览量

    7258
  • 开发库
    +关注

    关注

    0

    文章

    7

    浏览量

    4860

原文标题:libmodbus开发库 - RZ MPU工业控制教程连载(37)

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    第6章_libmodbus使用

    libmodbus是一个免费的跨平台支持RTU和TCP的Modbus,遵循LGPL V2.1+协议。libmodbus支持Linux、Mac Os X、FreeBSD、QNX和Windows等
    的头像 发表于 06-29 14:36 2386次阅读
    第6章_<b class='flag-5'>libmodbus</b>使用

    【米尔-瑞萨RZ/G2UL开发板】3.libmodbus移植使用

    libmodbus简介 libmodbus是一个用于实现Modbus通信协议的开源。Modbus是一种在工业自动化领域广泛使用的通信协议,libmodbus
    发表于 02-02 23:49

    【米尔-全志T113-i开发板试用】移植libmodbus到米尔-全志T113-i开发

    申请米尔-全志T113-i开发板试用的很大一个原因是想测试开发板在工业领域的应用,modbus作为工业领域的一个重要协议,那好就移植libmodbus。 一、源码下载
    发表于 03-05 22:31

    【龙芯2K0300蜂鸟板试用】+4.libmodbus移植

    1.libmodbus简介 libmodbus是一个用于实现Modbus通信协议的开源。Modbus是一种在工业自动化领域广泛使用的通信协议,libmodbus
    发表于 08-18 18:40

    【龙芯2K0300蜂鸟板试用】UART通信测试4、安装libmodbus及串口收发测试

    lib目录,可以看到生成的静态和动态文件,将libmodbus.a静态文件复制到开发板的
    发表于 09-22 23:45

    libmodbus使用ubuntu系统

    libmodbus使用ubuntu系统使用libmodbusarm-linux使用libmodbus解压安装移植编译modbus从机模拟ubuntu系统使用libmodbusubuntu系统可以直接
    发表于 11-04 07:57

    基于select操作的libmodbus

    libmodbus从软件包里启用, libmodbus是基于select操作的,依赖于文件系统和libc,需要在rt-thread中开启对应的支持。一开始以为作为主站时,有函数可以自动的指定读取
    发表于 01-11 08:13

    Modbus实际项目—libmodbus驱动的使用

    Modbus驱动,来实现对从设备的读写。当然,也可以直接使用别人写好的Modbus驱动,比如libmodbus,本文将介绍如何使用libmodbus驱动
    发表于 10-28 14:33

    【飞凌i.MX9352开发板试用】 + libmodbus移植 测试 485接口

    和调试Modbus通信。由于其开源性质和跨平台支持,libmodbus成为了工业自动化领域中广泛使用的Modbus之一。 i.MX9352开发板上已经设计了两个RS485接口且电磁兼容电路设计得很到位
    发表于 06-14 12:36

    【悟空派H3开发板免费体验】4、安装libmodbus

    做的项目需要和stm32进行串口通信,随选用Modbus_RTU协议。以下为wukunpi安装libmodbus的步骤。 下载源码 可以直接下载附件 *附件
    发表于 10-25 01:29

    libmodbus之嵌入式Linux使用及测试

    libmodbus使用ubuntu系统使用libmodbusarm-linux使用libmodbus解压安装移植编译modbus从机模拟ubuntu系统使用libmodbusubuntu系统可以直接
    发表于 11-01 16:57 15次下载
    <b class='flag-5'>libmodbus</b>之嵌入式Linux使用及测试

    简单认识无源器件

    简单认识无源器件
    的头像 发表于 01-12 09:56 591次阅读
    <b class='flag-5'>简单</b><b class='flag-5'>认识</b>无源器件

    简单认识变压器

    简单认识变压器
    的头像 发表于 01-25 10:05 1008次阅读
    <b class='flag-5'>简单</b><b class='flag-5'>认识</b>变压器

    移植libmodbus到米尔-全志T113-i开发

    测试开发板在工业领域的应用,modbus作为工业领域的一个重要协议,那好就移植libmodbus
    的头像 发表于 03-05 22:37 2467次阅读
    移植<b class='flag-5'>libmodbus</b><b class='flag-5'>库</b>到米尔-全志T113-i<b class='flag-5'>开发</b>板

    libmodbus源码框架分析

    libmodbus作为一个优秀且免费开源的跨平台支持RTU 和 TCP模式的Modbus开发,非常值得大家借鉴和学习。本章对libmodbus源代码进行阅读和分析。
    的头像 发表于 11-21 13:47 319次阅读
    <b class='flag-5'>libmodbus</b>源码框架分析