3dwoo大學簡體電腦書店
Modbus軟件開發實戰指南(第2版)
( 簡體 字)
作者:楊更更類別:1. -> 程式設計 -> 綜合
出版社:清華大學出版社Modbus軟件開發實戰指南(第2版) 3dWoo書號: 55438
詢問書籍請說出此書號!
有庫存
NT售價: 390
出版日:11/1/2021
頁數:297
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302588931 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章初識Modbus1
1.1背景2
1.2模型3
1.3協議版本4
1.4通信設備5
1.5事務處理6
1.6專業術語7
第2章Modbus開發環境9
2.1虛擬串口軟件10
2.1.1什么是虛擬串口軟件10
2.1.2使用方法10
2.2ModbusPoll的使用14
2.2.1簡介14
2.2.2功能14
2.2.3使用方法15
2.3ModbusSlave的使用18
2.3.1簡介18
2.3.2功能18
2.3.3使用方法19
2.4ModbusPollSlave互聯互通20
2.5VisualStudio2015的安裝24
第3章Modbus協議的相關知識27
3.1協議概要28
3.2Modbus寄存器29
3.2.1寄存器種類說明29
3.2.2寄存器地址分配30
3.3Modbus串行消息幀格式31
3.3.1ASCII消息幀格式31
3.3.2RTU消息幀格式31
3.3.3地址域33
3.3.4功能碼域33
3.3.5數據域34
3.4Modbus差錯校驗34
3.4.1LRC校驗34
3.4.2CRC校驗35
3.5字節序和大小端42
3.5.1來歷42
3.5.2為什么會有大小端43
3.5.3什么是“大端”和“小端”43
3.6ModbusTCP消息幀格式45
3.6.1協議描述45
3.6.2查詢與響應報文示例48
第4章Modbus功能碼詳解49
4.1功能碼概要50
4.201(0x01)讀取線圈/離散量輸出狀態51
4.2.1功能說明51
4.2.2查詢報文51
4.2.3響應報文52
4.2.4借助工具軟件觀察和理解53
4.302(0x02)讀取離散量輸入值59
4.3.1功能說明59
4.3.2查詢報文60
4.3.3響應報文60
4.403(0x03)讀取保持寄存器值61
4.4.1功能說明61
4.4.2查詢報文61
4.4.3響應報文62
4.504(0x04)讀取輸入寄存器值63
4.5.1功能說明63
4.5.2查詢報文63
4.5.3響應報文64
4.605(0x05)寫單個線圈或單個離散輸出65
4.6.1功能說明65
4.6.2查詢報文65
4.6.3響應報文66
4.706(0x06)寫單個保持寄存器67
4.7.1功能說明67
4.7.2查詢報文67
4.7.3響應報文68
4.808(0x08)診斷功能68
4.8.1功能說明68
4.8.2查詢報文68
4.8.3響應報文69
4.8.4診斷子功能碼70
4.911(0x0B)獲取通信事件計數器73
4.9.1功能說明73
4.9.2查詢報文73
4.9.3響應報文74
4.1012(0x0C)獲取通信事件記錄74
4.10.1功能說明74
4.10.2查詢報文75
4.10.3響應報文75
4.1115(0x0F)寫多個線圈76
4.11.1功能說明76
4.11.2查詢報文76
4.11.3響應報文77
4.1216(0x10)寫多個保持寄存器78
4.12.1功能說明78
4.12.2查詢報文78
4.12.3響應報文79
4.1317(0x11)報告從站ID(僅用于串行鏈路)80
4.13.1功能說明80
4.13.2查詢報文81
4.13.3響應報文81
4.14Modbus異常響應82
第5章libmodbus開發庫85
5.1功能概要86
5.2源碼獲取與編譯86
5.3與應用程序的關系92
第6章libmodbus源代碼解析93
6.1類型與結構定義94
6.1.1精細類型定義94
6.1.2常量定義96
6.1.3核心結構體定義之一97
6.1.4核心結構體定義之二101
6.2常用接口函數102
6.2.1各類輔助接口函數102
6.2.2各類Modbus功能接口函數106
6.2.3數據處理的相關函數或宏定義110
6.3RTU/TCP關聯接口函數111
6.3.1RTU模式關聯函數111
6.3.2TCP模式關聯函數112
6.4部分內部函數詳解113
6.4.1函數read_io_status()113
6.4.2函數read_registers()118
6.4.3函數write_single()121
6.4.4函數modbus_mapping_new_start_address()123
6.5開發應用程序基本流程126
第7章完整RTU模式開發范例129
7.1開發RTUMaster端130
7.1.1新建工程130
7.1.2添加開發庫132
7.1.3添加應用源代碼133
7.1.4代碼調試141
7.2開發RTUSlave端143
7.2.1新建工程并添加開發庫143
7.2.2添加應用源代碼143
第8章完整TCP模式開發范例147
8.1開發TCPClient端148
8.1.1新建工程148
8.1.2添加開發庫148
8.1.3添加應用源代碼150
8.1.4代碼調試159
8.2開發TCPServer端160
8.2.1新建工程并添加開發庫160
8.2.2添加應用源代碼161
第9章VisualBasic中使用libmodbus165
9.1函數調用約定與修飾名166
9.1.1函數調用約定166
9.1.2函數修飾名167
9.1.3調用約定的使用169
9.2模塊定義文件170
9.3對libmodbus開發庫的改造171
9.3.1添加__stdcall調用符171
9.3.2添加DEF模塊定義文件172
9.4開發VisualBasic程序175
9.4.1創建新項目175
9.4.2添加函數描述文件177
9.4.3調用libmodbus庫函數182
第10章VisualC#中使用libmodbus187
10.1開發VisualC#程序188
10.1.1創建新項目188
10.1.2添加函數描述文件190
10.1.3調用libmodbus庫函數195
10.2基于C#的NModbus類庫199
10.2.1什么是NModbus類庫199
10.2.2NModbus類庫用法200
第11章打造自己的Modbus調試工具205
11.1開發自己的ModbusPoll206
11.1.1軟件需求分析206
11.1.2命令行解析功能207
11.1.3創建應用程序并調試212
11.2開發自己的ModbusSlave234
11.2.1軟件需求分析234
11.2.2創建應用程序并調試236
第12章Java語言開發Modbus應用程序247
12.1開發環境的構建248
12.1.1安裝Java開發環境248
12.1.2Java圖形化開發工具252
12.2開發ModbusRTU程序254
12.2.1準備工作254
12.2.2代碼編寫和調試260
12.3開發ModbusTCP程序271
第13章Go語言開發Modbus應用程序281
13.1開發環境的構建282
13.1.1安裝Go語言開發環境282
13.1.2Go語言圖形化開發工具285
13.2開發Modbus應用程序293
13.2.1準備工作293
13.2.2代碼編寫和調試293
參考文獻298
Modbus是工業自動化領域廣泛使用的通信協議之一,隨著電子、計算機和通信技術的不斷發展,特別是物聯網以及“互聯網+”等概念的興起,Modbus通信技術也從串行總線發展到了Modbus TCP,方興未艾。為了讓廣大在校學生、工業控制和自動化工程師及技術人員了解Modbus協議的內涵,掌握Modbus通信技術的軟件開發方法,作者從初學者的角度,由淺入深,循循善誘,以文字和圖片相結合的方式撰寫了本書。
  本書共13章,首先介紹Modbus協議,特別是功能碼消息幀的定義,然后從軟件開發的角度詳細介紹輔助調試工具、軟件開發環境的構筑,重點介紹和解析libmodbus開發庫的源代碼,以及libmodbus在不同語言環境下的開發技巧。閱讀本書可快速入門并精通Modbus軟件開發技術。作為軟件技術開發指南類書籍,本書不僅僅局限于Modbus通信協議,對其他通信協議的軟件開發也有很高的參考價值。
  本書可作為各大高校、工程設計院、系統集成商和工廠企業的Modbus通信協議開發人員學習軟件設計和開發的入門指導書籍,也可作為工業自動化及物聯網開發領域工程技術人員的參考書籍,還可供廣大自動化與通信專業的教師、學生及物聯網開發愛好者閱讀。
第2版
前言如果時間能夠回到幾年之前,也許人生將會是另外一番際遇吧。
  當時的我初次接觸Modbus通信協議,并且需要基于Modbus完成一個質量高度穩定的工業控制程序,怎么辦呢?一開始,面對浩如煙海的資料和設計要求確實一籌莫展。不過現在想想,如果那時遇到了像這樣的一本書,我一定會毫不猶豫地買下來。聽到這樣的話,你心里一定在想:嘿,王婆賣瓜,自賣自夸。好吧,我承認有一些自夸了,人嘛,都是有那么一點點虛榮心的。
  但是,我可以保證,當你認真閱讀過此書之后,一定會有不一樣的收獲。
  其實,從初次接觸Modbus通信協議起,我就下定決心寫一本適合Modbus初學者的入門書籍,使得大家能夠快速上手,避免重走不必要的彎路。可是真正寫起來才發現,這不是一時半刻就能夠完成的工作。一方面是我只能在工作之余的閑暇時間寫作;另一方面是軟件開發技術上牽扯的方方面面太多,如何有條理地組織各種材料也是一個大難題。就這樣,寫寫停停,甚至寫作提綱也是幾易其稿。好在沒有什么壓力,在堅持之下最后竟然“湊成”了這本看似不錯的Modbus開發入門資料。在提供給周圍的一些人閱讀后,大家都覺得不錯并且值得出版,這也給了我信心。
  正所謂“聞道有先后,術業有專攻”。我曾經咨詢過很多資深的開發人員,他們平日里大多會研究和學習各種新奇的開發技術,不會有太多的時間總結和歸納。據我所知,目前市場上關于Modbus開發的書籍并不太多,以至于至今還沒有一本專門介紹Modbus軟件開發的書。機緣巧合,我做了第一個“吃螃蟹”的人。我希望能夠通過這本書把我所學習和掌握的一些Modbus軟件開發工具和技能介紹給大家,讓大家體會到軟件開發的樂趣,減輕Modbus開發入門時的迷茫和無助。如果能夠實現這個目的,善莫大焉。不僅如此,這本書不僅僅局限于Modbus本身,書中提到的開發技巧和經驗對其他開發工作也有借鑒意義。
  本書大體可劃分為三篇: 理論篇、實踐篇和提高篇,篇章結構如下所示。理論篇主要介紹Modbus協議本身,便于初學者體會Modbus協議的精髓所在,打好基礎。實踐篇通過對libmodbus開發庫源碼的分析以及各種范例程序的演示,助力讀者快速入門和上手,掌握各種模式下的開發方法和技巧。提高篇則進一步帶領讀者開發自己的Modbus調試工具。按照各章節的內容,讀者可以循序漸進地閱讀本書,逐步完成從入門到精通的過程。  作為軟件開發者,很多人都沒有付費購買書籍的習慣。我覺得吧,該付費的時候就別省,也許通過閱讀就可以系統地提升自己,讓你在同事中脫穎而出,少量投資換來的是成千上百倍的回報。
  很多人又會說,不用買你的書,我也可以自己通過Google或百度解決問題啊。是的,的確沒錯,現在互聯網這么發達,沒有解決不了的問題,但是這要花費你大量的時間和精力,與其這樣,還不如快速學習更多的東西,做些更有意義的事情。在互聯網時代,最重要的是懂得如何站在別人的肩膀上。
本書定位
  本書是循序漸進地學習Modbus軟件開發的書籍,需要你有針對性地閱讀。當然,當你遇到問題或者想了解某個知識點時,你可以直接定位到相關章節查看內容。
  本書以通俗易懂的語言和圖片描述Modbus軟件的開發技巧,基本上每個操作都會有圖片或者實際程序代碼演示,便于讀者自學。
  本書以解決Modbus軟件開發中的問題為目的,圍繞這一點著重講述如何快速入門并精通Modbus軟件開發技術。對于Modbus開發來說,必要的硬件不可缺少,但是為了能迅速入門,減少硬件依賴,本書盡可能使用各種軟件工具模擬硬件環境,閱讀本書時有一臺計算機足矣,這也是本書的一大特色。
目標讀者
 如果你初學Modbus通信協議;
 如果你想用C/C++語言開發Modbus通信庫;
 如果你想用其他語言(如Visual Basic、Visual C#、Java、Go)開發Modbus應用程序;
 如果你想從事物聯網或Modbus測試開發;
 如果你英語不好;
 如果你想節省搜索的時間;
 如果你想提高工作效率。
那么這本書簡直就是為你量身定做的。
  盡管本人已盡力確保本書的準確性和完整性,但因知識和能力有限,書中難免存在疏漏之處,懇請各位讀者不吝批評指正,爭取將來進一步完善本書,以此回報大家對本書的支持和厚愛。
致謝
  在本書的寫作和出版過程中,得到了很多人的熱情幫助和支持,在此一并致謝!
  首先要感謝創造和發明Modbus通信協議的那些人,正是因為他們創造性的工作才有了如此簡潔、優雅并廣泛應用的通信協議供大家使用。可以毫不夸張地說,Modbus協議的出現推動了人類工業自動化生產的進步。
  其次要感謝清華大學的楊開明教授、北京交通大學的楊莉副教授,在本書的寫作和出版過程中,各位老師都給出了詳細的意見和建議。
  最后,感謝家人的支持和所有閱讀本書的讀者。如果能夠給各位讀者帶來哪怕一點收獲或體會,那將是對我極大的鼓舞,謝謝!

楊更更2021年8月
pagetop