一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2024-11-13 15:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第11章 libmodbus剖析與編程

11.1libmodbus開發(fā)庫

11.1.1 功能概要

libmodbus是一個(gè)免費(fè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文件,在這里對理解代碼沒有意義,可忽略。

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

tests目錄:包含自帶的測試代碼,其他文件對理解源代碼關(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ù)各功能碼對應(yīng)的函數(shù)。

modbus.h:libmodbus對外暴露的接口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模式對外提供的各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模式對外提供的各API定義。

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

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

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

libmodbus是一個(gè)免費(fè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

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

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

    關(guān)注

    28

    文章

    2127

    瀏覽量

    79635
  • LibModbus
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

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

    關(guān)注

    0

    文章

    7

    瀏覽量

    4901

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    第6章_libmodbus使用

    libmodbus是一個(gè)免費(fèi)的跨平臺支持RTU和TCP的Modbus,遵循LGPL V2.1+協(xié)議。libmodbus支持Linux、Mac Os X、FreeBSD、QNX和Windows等
    的頭像 發(fā)表于 06-29 14:36 ?4104次閱讀
    第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ā)

    申請米爾-全志T113-i開發(fā)板試用的很大一個(gè)原因是想測試開發(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

    【幸狐Omni3576邊緣計(jì)算套件試用體驗(yàn)】移植libmodbus到Omni3576開發(fā)

    modbus作為工業(yè)領(lǐng)域的一個(gè)重要協(xié)議,那好就移植libmodbus并測試。 一、源碼下載&編譯 ibmodbus官網(wǎng)是libmodbus,首頁就是個(gè)很霸氣的標(biāo)語,copy過來
    發(fā)表于 05-19 22:48

    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中開啟對應(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)對從設(shè)備的讀寫。當(dāng)然,也可以直接使用別人寫好的Modbus驅(qū)動(dòng),比如libmodbus,本文將介紹如何使用libmodbus驅(qū)動(dòng)
    發(fā)表于 10-28 14:33

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

    和調(diào)試Modbus通信。由于其開源性質(zhì)和跨平臺支持,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使用及測試

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

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

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

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

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

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

    測試開發(fā)板在工業(yè)領(lǐng)域的應(yīng)用,modbus作為工業(yè)領(lǐng)域的一個(gè)重要協(xié)議,那好就移植libmodbus。
    的頭像 發(fā)表于 03-05 22:37 ?3487次閱讀
    移植<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)開源的跨平臺支持RTU 和 TCP模式的Modbus開發(fā),非常值得大家借鑒和學(xué)習(xí)。本章對libmodbus源代碼進(jìn)行閱讀和分析。
    的頭像 發(fā)表于 11-21 13:47 ?1840次閱讀
    <b class='flag-5'>libmodbus</b>源碼框架分析