第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文章
1820瀏覽量
77308 -
LibModbus
+關注
關注
0文章
10瀏覽量
7270 -
開發庫
+關注
關注
0文章
7瀏覽量
4867
原文標題:libmodbus開發庫 - RZ MPU工業控制教程連載(37)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論