日韩偷拍一区二区,国产香蕉久久精品综合网,亚洲激情五月婷婷,欧美日韩国产不卡

在線客服
Modbus軟件開發實戰指南圖書
人氣:39

Modbus軟件開發實戰指南

在物聯網和互聯網+的時代,不懂Modbus如何玩轉物聯網?多方位解析Modbus軟件開發技巧,一書在手輕松搞定Modbus軟件開發!干貨滿滿,值得一讀。

內容簡介

Modbus是工業自動化領域使用廣泛的通信協議之一,隨著電子、計算機和通信技術的不斷發展,特別是物聯網以及“互聯網 ”等概念的興起,Modbus通信技術也從串行總線發展到了Modbus TCP,方興未艾。為了讓廣大在校學生、工業控制和自動化工程師、技術人員了解Modbus協議的內涵,特別是徹底掌握Modbus通信技術的軟件開發方法,作者從初學者的角度,由淺入深,循循善誘,以文字和畫面相結合的方式撰寫了本書。 本書分為11章,依次介紹了Modbus協議,特別是功能碼消息幀的定義,然后從軟件開發的角度,詳細介紹了輔助調試工具、軟件開發環境的構筑,重點介紹和解析了libmodbus開發庫的源代碼,以及使用libmodbus在不同語言環境下的開發技巧。閱讀本書,可快速入門并精通Modbus軟件開發技術。作為一本軟件技術開發指南的書籍,本書不僅僅局限于Modbus通信協議,對其他通信協議的軟件開發也有很強的參考價值。 本書可作為各大中專院校、工程設計院、系統集成商和工廠企業的Modbus通信協議開發人員的軟件設計和開發的入門指導書籍,也可作為工業自動化領域及物聯網開發的參考資料,還可供廣大自動化及通信專業的教師、學生及物聯網開發愛好者閱讀。

編輯推薦

著重講述如何快速入門并精通Modbus軟件開發技術,適用于初學Modbus通信協議的讀者。如果你想用C/C 語言開發Modbus通信庫,如果你想用其它語言(如Visual Basic、Visual C#)開發Modbus應用程序,如果你想從事物聯網或Modbus測試開發,本書干貨滿滿,值得一讀。

作者簡介

楊更更 2003年畢業于清華大學,先后加入中國航天科工集團公司、日本橫河電機株式會社等多家大型企業工作。曾作為主要研發人員,參與過多個大型項目的開發,了解并精通各現場總線通信協議,所開發的多個軟硬件設備,正在世界各地穩定地運行。作為一個純粹的技術開發者,閑暇時愛讀書,所獵甚廣,每有所得便欣欣然也。

目錄

目錄

第1章初識Modbus1

1.1背景2

1.2模型4

1.3協議版本4

1.4通信設備6

1.5事務處理6

1.6專業術語9

第2章Modbus開發環境11

2.1虛擬串口軟件12

2.1.1什么是虛擬串口軟件12

2.1.2使用方法13

2.2Modbus Poll的使用16

2.2.1簡介16

2.2.2功能17

2.2.3使用方法18

2.3Modbus Slave的使用21

2.3.1簡介21

2.3.2功能22

2.3.3使用方法232.4Modbus PollSlave互聯互通24

2.5Visual Studio 2015的安裝28

第3章Modbus協議的相關知識31

3.1協議概要32

3.2Modbus寄存器34

3.2.1寄存器種類說明34

3.2.2寄存器地址分配35

3.3Modbus串行消息幀格式35

3.3.1ASCII消息幀格式36

3.3.2RTU消息幀格式36

3.3.3地址域38

3.3.4功能碼域39

3.3.5數據域39

3.4Modbus差錯校驗39

3.4.1LRC校驗40

3.4.2CRC校驗42

3.5字節序和大小端49

3.5.1來歷49

3.5.2為什么會有大小端50

3.5.3什么是“大端”和“小端”51

3.6Modbus TCP消息幀格式53

3.6.1協議描述53

3.6.2查詢與響應報文例56

第4章Modbus功能碼詳解59

4.1功能碼概要60

4.201(0x01)讀取線圈/離散量輸出狀態61

4.2.1功能說明61

4.2.2查詢報文61

4.2.3響應報文62

4.2.4借助工具軟件觀察和理解63

4.302(0x02)讀取離散量輸入值72

4.3.1功能說明72

4.3.2查詢報文72

4.3.3響應報文73

4.403(0x03)讀取保持寄存器值74

4.4.1功能說明74

4.4.2查詢報文74

4.4.3響應報文75

4.504(0x04)讀取輸入寄存器值76

4.5.1功能說明76

4.5.2查詢報文76

4.5.3響應報文77

4.605(0x05)寫單個線圈或單個離散輸出78

4.6.1功能說明78

4.6.2查詢報文79

4.6.3響應報文79

4.706(0x06)寫單個保持寄存器80

4.7.1功能說明80

4.7.2查詢報文80

4.7.3響應報文81

4.808(0x08)診斷功能82

4.8.1功能說明82

4.8.2查詢報文82

4.8.3響應報文83

4.8.4診斷子功能碼84

4.911(0x0B)獲取通信事件計數器87

4.9.1功能說明87

4.9.2查詢報文87

4.9.3響應報文88

4.1012(0x0C)獲取通信事件記錄89

4.10.1功能說明89

4.10.2查詢報文89

4.10.3響應報文90

4.1115(0x0F)寫多個線圈91

4.11.1功能說明91

4.11.2查詢報文91

4.11.3響應報文92

4.1216(0x10)寫多個保持寄存器93

4.12.1功能說明93

4.12.2查詢報文93

4.12.3響應報文95

4.1317(0x11)報告從站ID(僅用于串行鏈路)96

4.13.1功能說明96

4.13.2查詢報文96

4.13.3響應報文97

4.14Modbus異常響應97

第5章libmodbus開發庫101

5.1功能概要102

5.2源碼獲取與編譯102

5.3與應用程序的關系109

第6章libmodbus源碼解析111

6.1類型與結構定義112

6.1.1精細類型定義112

6.1.2常量定義114

6.1.3核心結構體定義之一115

6.1.4核心結構體定義之二120

6.2常用接口函數122

6.2.1各類輔助接口函數122

6.2.2各類Modbus功能接口函數126

6.2.3數據處理的相關函數或宏定義131

6.3RTU/TCP關聯接口函數132

6.3.1RTU模式關聯函數133

6.3.2TCP模式關聯函數135

6.4部分內部函數詳解135

6.4.1函數read_io_status()135

6.4.2函數read_registers()141

6.4.3函數write_single()144

6.4.4函數modbus_mapping_new_start_

address()147

6.5開發應用程序基本流程151

第7章完整RTU模式開發范例153

7.1開發RTU Master端154

7.1.1新建工程154

7.1.2添加開發庫155

7.1.3添加應用源代碼158

7.1.4代碼調試166

7.2開發RTU Slave端169

7.2.1新建工程并添加開發庫169

7.2.2添加應用源代碼169

第8章完整TCP模式開發范例173

8.1開發TCP Client端174

8.1.1新建工程174

8.1.2添加開發庫176

8.1.3添加應用源代碼177

8.1.4代碼調試186

8.2開發TCP Server端189

8.2.1新建工程并添加開發庫189

8.2.2添加應用源代碼189

第9章Visual Basic中使用libmodbus193

9.1函數調用約定與修飾名194

9.1.1函數調用約定194

9.1.2函數修飾名196

9.1.3調用約定的使用198

9.2模塊定義文件198

9.3對libmodbus開發庫的改造200

9.3.1添加__stdcall調用符200

9.3.2添加DEF模塊定義文件201

9.4開發Visual Basic程序204

9.4.1創建新項目204

9.4.2添加函數描述文件205

9.4.3調用libmodbus庫函數213

第10章Visual C#中使用libmodbus217

10.1開發Visual C#程序218

10.1.1創建新項目218

10.1.2添加函數描述文件219

10.1.3調用libmodbus庫函數226

10.2基于C#的NModbus類庫230

10.2.1什么是NModbus類庫230

10.2.2NModbus類庫用法232

第11章打造自己的Modbus調試工具237

11.1開發自己的Modbus Poll238

11.1.1軟件需求分析238

11.1.2命令行解析功能240

11.1.3創建應用程序并調試246

11.2開發自己的Modbus Slave270

11.2.1軟件需求分析270

11.2.2創建應用程序并調試272

參考文獻284

在線預覽

第5章libmodbus開發庫Modbus作為一種常見的工業通信協議,幾乎被所有的設備所支持,如果能在軟件或者設備中增強Modbus通信功能,無疑對于市場應用來說是個很吸引人的賣點。而對于Modbus開發來說,網絡上存在相當多的開源庫,其中libmodbus(www.libmodbus.org)和freemodbus(www.freemodbus.org)可以說是其中的翹楚,值得開發者認真分析和學習。5.1功能概要古人云: “登高而招,臂非加長也,而見者遠;順風而呼,聲非加疾也,而聞者彰。假輿馬者,非利足也,而致千里;假舟楫者,非能水也,而絕江河。君子生非異也,善假于物也”。確實,在互聯網以及開源項目蓬勃發展的時代,閉門造車已顯得非常不合時宜。libmodbus 是一個免費的跨平臺的支持RTU和TCP的Modbus庫,遵循LGPL v2.1 協議。libmodbus支持Linux、Mac OS X、FreeBSD、QNX和Windows等操作系統。libmodbus可以向符合Modbus協議的設備發送和接收數據,并支持通過串口或者TCP網絡進行連接。作為一個開源項目,libmodbus還處于開發測試階段,代碼量還不是十分龐大,文檔和注釋也不夠,本章通過對libmodbus源代碼的閱讀過程,一方面可以進一步理解Modbus協議,同時也可以學習下一個好的開源項目的代碼組織及開發過程。libmodbus官方網站libmodbus.org/,現在穩定的版本是v3.0.6,當前近期版是v3.1.4,可以從libmodbus.org/download/下載源碼。作為開源軟件,還可以從GitHub網站獲取近期版本代碼。GitHub: https://github.com/stephane/libmodbus.git5.2源碼獲取與編譯首先,訪問libmodbus官方GitHub網站https://github.com/stephane/libmodbus,并下載近期版本源代碼。如圖51所示,單擊[Clone or download]按鈕,再單擊[Download ZIP]按鈕,則自動下載近期的源代碼。圖51下載libmodbus源碼源碼下載完畢,解壓下載的zip文件,如圖52所示。簡單查看源代碼根目錄的構成: 圖52解壓libmodbus源碼 doc目錄: libmodbus庫的各API接口說明文檔。 m4目錄: 存放GNU m4文件,在這里對理解代碼沒有意義,可忽略。 src目錄: 全部libmodbus源文件。 tests目錄: 包含自帶的測試代碼。其他文件對我們理解源代碼關系不大,可以暫時忽略。進一步展開src代碼目錄,如圖53所示。圖53libmodbus源碼構成 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: 版本定義文件。下面開始嘗試在Visual Studio 2015中編譯libmodbus庫文件。為了在Visual Studio下展開項目,首先雙擊configure.js,用以生成 config.h 和 modbusversion.h文件。然后打開前面已經安裝的開發環境Visual Studio 2015,在Visual Studio 2015中,打開modbus9.sln文件,彈出項目文件升級對話框,如圖54所示。圖54libmodbus項目文件升級對話框在圖54中勾選全部可選項,然后單擊[OK]按鈕,完成項目文件升級。在Visual Studio 2015中打開后,源代碼展開如圖55所示。圖55libmodbus項目文件結構此時如果直接編譯工程文件,將發生編譯錯誤。原因是其中新生成的文件modbusversion.h沒有正確加載,在文件上單擊右鍵選擇[Remove]菜單,刪除舊的文件,同時,在目錄Header Files上右鍵單擊,在彈出的菜單中依次選擇[Add]→[Existing Item...],重新加載新生成的modbusversion.h文件,如圖56所示。圖56修改或者添加文件嘗試著再次編譯看看: 在項目名稱上單擊右鍵,在彈出的菜單上選擇[Rebuild Solution]菜單項,如圖57所示。libmodbus庫文件開始編譯。圖57編譯libmodus庫文件編譯完成的時候,出現編譯錯誤,如圖58所示。圖58編譯libmodus出現錯誤為了解決這個錯誤,同時按下Alt F7鍵彈出項目屬性設置對話框,依次找到[VERSION]項的定義。查看路徑為[Configuration Properties]→[Linker]→[All Options]→[Version],如圖59所示。圖59Version項的定義找到后直接刪除[VERSION]項的定義,再次重新編譯庫文件。如果一切順利,在win32目錄下將會成功生成modbus.dll和modbus.lib文件。在工具欄上將工程文件目標屬性切換到[Release]項,按照上面的方法重新編譯Release版,在win32目錄下同樣成功生成modbus.dll和modbus.lib文件。至此,對libmodbus庫文件的編譯工作完成,成功生成的動態鏈接庫可以方便地供其他應用程序調用。5.3與應用程序的關系我們已經知道libmodbus是一個免費的跨平臺的支持RTU和TCP的Modbus開發庫,借助于libmodbus開發庫能夠非常方便地建立自己的應用程序或者將Modbus通信協議嵌入到單體設備中。libmodbus開發庫與應用程序的基本關系如圖510所示。圖510應用程序與libmodbus的關系在對libmodbus的接口及代碼框架簡單了解之后,不妨讓我們再深入一下細節,探探究竟。看看libmodbus都實現了哪些基礎功能?以及源代碼中對Modbus各功能碼和消息幀是如何包裝的?具體內容請看下一章。

網友評論(不代表本站觀點)

來自v***c(**的評論:

物流速度太慢

2017-03-29 08:53:06
來自匿名用**的評論:

Modbus軟件開發實戰指南 物流挺快的,紙質不錯,就是想找一本可以邊學習邊編程操作的書,目前看著還行,等學習一段時間再來評價!

2017-04-07 17:05:30
來自陜***(**的評論:

條理清楚,

2017-06-01 15:08:52
來自匿名用**的評論:

紙質很好,正版

2017-06-06 12:04:19
來自匿名用**的評論:

這本書還可以

2017-06-13 15:25:04
來自匿名用**的評論:

很基礎入門書,軟件截圖占太多篇幅,有點水

2017-08-26 19:23:26
來自hahasne**的評論:

很好很好很好

2017-11-04 11:12:53
來自無昵稱**的評論:

這本書講的淺顯易懂,講的簡單明了。作者很用心。作為modbus學習完全足夠。過段時間要用到,之前在網上也學了一些,可是現在想系統學一下。推薦。

2017-09-05 07:44:42

免責聲明

更多出版社
主站蜘蛛池模板: 云安县| 石嘴山市| 夏津县| 南漳县| 柳江县| 乐安县| 榆中县| 阿拉善盟| 东乌珠穆沁旗| 马关县| 彭泽县| 长白| 昆山市| 城口县| 彭阳县| 云阳县| 伽师县| 永登县| 南平市| 柘城县| 镇坪县| 来安县| 马龙县| 漾濞| 贵南县| 秦皇岛市| 江西省| 永平县| 怀安县| 留坝县| 岑巩县| 淮滨县| 伊春市| 安化县| 新民市| 周口市| 新巴尔虎左旗| 澎湖县| 福海县| 海城市| 沾益县|