0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡單認(rèn)識(shí)libmodbus開發(fā)庫

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2024-11-13 15:42 ? 次閱讀

第11章 libmodbus剖析與編程

11.1libmodbus開發(fā)庫

11.1.1 功能概要

libmodbus是一個(gè)免費(fèi)的跨平臺(tái)Modbus庫,支持RTU和TCP,遵循LGPL V2.1+協(xié)議,兼容Linux、Mac OS X、FreeBSD、QNX和Windows等操作系統(tǒng)。它可通過串口或TCP網(wǎng)絡(luò)與符合Modbus協(xié)議的設(shè)備發(fā)送/接收數(shù)據(jù),方便開發(fā)者構(gòu)建應(yīng)用程序或?qū)odbus通信集成到設(shè)備中。

作為開源軟件,還可以從GitHub網(wǎng)站獲取最新版本的代碼。

11.1.2 源碼獲取

libmodbus的源碼不斷更新,本教程選擇版本v3.1.10。

如下圖下載

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

本源碼也放在網(wǎng)盤中如下目錄里:

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

解壓后,簡單查看源代碼根目錄的構(gòu)成:

①doc目錄:libmodbus庫的各API接口說明文檔。

②m4目錄:存放GNU m4文件,在這里對(duì)理解代碼沒有意義,可忽略。

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

tests目錄:包含自帶的測(cè)試代碼,其他文件對(duì)理解源代碼關(guān)系不大,可以暫時(shí)忽略。

圖6-1 解壓libmodbus源代碼:

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

進(jìn)一步展開src代碼目錄,如圖6-3所示:

圖6-2 libmodbus源碼構(gòu)成:

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

各文件作用如下:

win32:定義在Windows下使用Visual Studio編譯時(shí)的項(xiàng)目文件和工程文件以及相關(guān)配置選項(xiàng)等。其中,modbus-9.sln默認(rèn)使用Visual Studio 2008。

Makefile.am:Makefile.am是Linux下AutoTool編譯時(shí)讀取相關(guān)編譯參數(shù)的配置文件,用于生成Makefile文件,因?yàn)橛糜贚inux下開發(fā),所以在這里暫時(shí)忽略。

modbus.c:核心文件,實(shí)現(xiàn)Modbus協(xié)議層,定義共通的Modbus消息發(fā)送和接收函數(shù)各功能碼對(duì)應(yīng)的函數(shù)。

modbus.h:libmodbus對(duì)外暴露的接口API頭文件。

modbus-data.c:數(shù)據(jù)處理的共通函數(shù),包括大小端相關(guān)的字節(jié)、位交換等函數(shù)。

modbus-private.h:libmodbus內(nèi)部使用的數(shù)據(jù)結(jié)構(gòu)和函數(shù)定義。

modbus-rtu.c:通信層實(shí)現(xiàn),RTU模式相關(guān)的函數(shù)定義,主要是串口的設(shè)置、連接及消息的發(fā)送和接收等。

modbus-rtu.h:RTU模式對(duì)外提供的各API定義。

modbus-rtu-private.h:RTU模式的私有定義。

modbus-tcp.c:通信層實(shí)現(xiàn),TCP模式下相關(guān)的函數(shù)定義,主要包括TCP/IP網(wǎng)絡(luò)的設(shè)置連接、消息的發(fā)送和接收等。

modbus-tcp.h:定義TCP模式對(duì)外提供的各API定義。

modbus-tcp-private.h:TCP模式的私有定義。

modbus-version.h.in:版本定義文件。

11.1.3 libmodbus與應(yīng)用程序的關(guān)系

libmodbus是一個(gè)免費(fèi)的跨平臺(tái)支持RTU和TCP的Modbus開發(fā)庫,借助于libmodbus發(fā)庫能夠非常方便地建立自己的應(yīng)用程序或者將Modbus通信協(xié)議嵌入單體設(shè)備libmodbus開發(fā)庫與應(yīng)用程序的基本關(guān)系如圖6-4所示。

圖6-3 應(yīng)用程序與libmodbus的關(guān)系:

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

在對(duì)libmodbus的接口及代碼框架簡單了解之后,不妨再深入細(xì)節(jié)一探究竟,看看libmodbus都實(shí)現(xiàn)了哪些基礎(chǔ)功能,以及源代碼中對(duì)Modbus各功能碼和消息頓是如何包裝的。具體內(nèi)容請(qǐng)參看下一章。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • MODBUS
    +關(guān)注

    關(guān)注

    28

    文章

    1805

    瀏覽量

    76996
  • LibModbus
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    7258
  • 開發(fā)庫
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    4860

原文標(biāo)題:libmodbus開發(fā)庫 - RZ MPU工業(yè)控制教程連載(37)

文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    第6章_libmodbus使用

    libmodbus是一個(gè)免費(fèi)的跨平臺(tái)支持RTU和TCP的Modbus,遵循LGPL V2.1+協(xié)議。libmodbus支持Linux、Mac Os X、FreeBSD、QNX和Windows等
    的頭像 發(fā)表于 06-29 14:36 ?2428次閱讀
    第6章_<b class='flag-5'>libmodbus</b>使用

    【米爾-瑞薩RZ/G2UL開發(fā)板】3.libmodbus移植使用

    libmodbus簡介 libmodbus是一個(gè)用于實(shí)現(xiàn)Modbus通信協(xié)議的開源。Modbus是一種在工業(yè)自動(dòng)化領(lǐng)域廣泛使用的通信協(xié)議,libmodbus
    發(fā)表于 02-02 23:49

    【米爾-全志T113-i開發(fā)板試用】移植libmodbus到米爾-全志T113-i開發(fā)

    申請(qǐng)米爾-全志T113-i開發(fā)板試用的很大一個(gè)原因是想測(cè)試開發(fā)板在工業(yè)領(lǐng)域的應(yīng)用,modbus作為工業(yè)領(lǐng)域的一個(gè)重要協(xié)議,那好就移植libmodbus。 一、源碼下載
    發(fā)表于 03-05 22:31

    【龍芯2K0300蜂鳥板試用】+4.libmodbus移植

    1.libmodbus簡介 libmodbus是一個(gè)用于實(shí)現(xiàn)Modbus通信協(xié)議的開源。Modbus是一種在工業(yè)自動(dòng)化領(lǐng)域廣泛使用的通信協(xié)議,libmodbus
    發(fā)表于 08-18 18:40

    【龍芯2K0300蜂鳥板試用】UART通信測(cè)試4、安裝libmodbus及串口收發(fā)測(cè)試

    lib目錄,可以看到生成的靜態(tài)和動(dòng)態(tài)文件,將libmodbus.a靜態(tài)文件復(fù)制到開發(fā)板的
    發(fā)表于 09-22 23:45

    libmodbus使用ubuntu系統(tǒng)

    libmodbus使用ubuntu系統(tǒng)使用libmodbusarm-linux使用libmodbus解壓安裝移植編譯modbus從機(jī)模擬ubuntu系統(tǒng)使用libmodbusubuntu系統(tǒng)可以直接
    發(fā)表于 11-04 07:57

    基于select操作的libmodbus

    libmodbus從軟件包里啟用, libmodbus是基于select操作的,依賴于文件系統(tǒng)和libc,需要在rt-thread中開啟對(duì)應(yīng)的支持。一開始以為作為主站時(shí),有函數(shù)可以自動(dòng)的指定讀取
    發(fā)表于 01-11 08:13

    Modbus實(shí)際項(xiàng)目—libmodbus驅(qū)動(dòng)的使用

    Modbus驅(qū)動(dòng),來實(shí)現(xiàn)對(duì)從設(shè)備的讀寫。當(dāng)然,也可以直接使用別人寫好的Modbus驅(qū)動(dòng),比如libmodbus,本文將介紹如何使用libmodbus驅(qū)動(dòng)
    發(fā)表于 10-28 14:33

    【飛凌i.MX9352開發(fā)板試用】 + libmodbus移植 測(cè)試 485接口

    和調(diào)試Modbus通信。由于其開源性質(zhì)和跨平臺(tái)支持,libmodbus成為了工業(yè)自動(dòng)化領(lǐng)域中廣泛使用的Modbus之一。 i.MX9352開發(fā)板上已經(jīng)設(shè)計(jì)了兩個(gè)RS485接口且電磁兼容電路設(shè)計(jì)得很到位
    發(fā)表于 06-14 12:36

    【悟空派H3開發(fā)板免費(fèi)體驗(yàn)】4、安裝libmodbus

    做的項(xiàng)目需要和stm32進(jìn)行串口通信,隨選用Modbus_RTU協(xié)議。以下為wukunpi安裝libmodbus的步驟。 下載源碼 可以直接下載附件 *附件
    發(fā)表于 10-25 01:29

    libmodbus之嵌入式Linux使用及測(cè)試

    libmodbus使用ubuntu系統(tǒng)使用libmodbusarm-linux使用libmodbus解壓安裝移植編譯modbus從機(jī)模擬ubuntu系統(tǒng)使用libmodbusubuntu系統(tǒng)可以直接
    發(fā)表于 11-01 16:57 ?15次下載
    <b class='flag-5'>libmodbus</b>之嵌入式Linux使用及測(cè)試

    簡單認(rèn)識(shí)無源器件

    簡單認(rèn)識(shí)無源器件
    的頭像 發(fā)表于 01-12 09:56 ?594次閱讀
    <b class='flag-5'>簡單</b><b class='flag-5'>認(rèn)識(shí)</b>無源器件

    簡單認(rèn)識(shí)變壓器

    簡單認(rèn)識(shí)變壓器
    的頭像 發(fā)表于 01-25 10:05 ?1013次閱讀
    <b class='flag-5'>簡單</b><b class='flag-5'>認(rèn)識(shí)</b>變壓器

    移植libmodbus到米爾-全志T113-i開發(fā)

    測(cè)試開發(fā)板在工業(yè)領(lǐng)域的應(yīng)用,modbus作為工業(yè)領(lǐng)域的一個(gè)重要協(xié)議,那好就移植libmodbus。
    的頭像 發(fā)表于 03-05 22:37 ?2498次閱讀
    移植<b class='flag-5'>libmodbus</b><b class='flag-5'>庫</b>到米爾-全志T113-i<b class='flag-5'>開發(fā)</b>板

    libmodbus源碼框架分析

    libmodbus作為一個(gè)優(yōu)秀且免費(fèi)開源的跨平臺(tái)支持RTU 和 TCP模式的Modbus開發(fā),非常值得大家借鑒和學(xué)習(xí)。本章對(duì)libmodbus源代碼進(jìn)行閱讀和分析。
    的頭像 發(fā)表于 11-21 13:47 ?354次閱讀
    <b class='flag-5'>libmodbus</b>源碼框架分析