第一篇 串行鏈路上MODBUS協(xié)議應(yīng)用簡介
Modbus 是由Modicon(現(xiàn)在的施耐德電氣公司)在 1979 年發(fā)明的,是全球第一個真正用于工業(yè)現(xiàn)場的總線協(xié)議。Modbus網(wǎng)絡(luò)是一個工業(yè)通信系統(tǒng),由帶智能終端的可編程序控制器和計算機(jī)通過公用線路或局部專用線路連接而成。其系統(tǒng)結(jié)構(gòu)既包括硬件、也包括軟件。Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通信語言。通過此協(xié)議,控制器互相之間、控制器經(jīng)由網(wǎng)絡(luò)和其它設(shè)備之間可以通信。它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)。不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。
Modbus可以在基于串行鏈路和以太TCP/IP網(wǎng)絡(luò)上進(jìn)行通信。串行鏈路和 TCP/IP 上的 Modbus 是根據(jù)相應(yīng) ISO 層模型說明的兩個通信規(guī)程。
下圖強(qiáng)調(diào)指出了該標(biāo)準(zhǔn)的主要部分。綠色方框表示規(guī)范?;疑娇虮硎疽延械膰H標(biāo)準(zhǔn)。
01 傳輸模式
本文主要介紹在基于串行鏈路上常用的兩種傳輸模式(ASCII和RTU),Modbus 串行鏈路協(xié)議是一個主-從協(xié)議,在同一時刻,只有一個主節(jié)點(diǎn),一個或多個子節(jié)點(diǎn)連接于同一串行總線。子節(jié)點(diǎn)不會主動發(fā)送數(shù)據(jù),只有在收到來自主節(jié)點(diǎn)的請求時才會發(fā)送,主節(jié)點(diǎn)在同一時刻只會發(fā)起一個Modbus事務(wù)處理。
為了方便理解,我們將主節(jié)點(diǎn)以及子節(jié)點(diǎn)分別稱為主設(shè)備和從設(shè)備。
主設(shè)備可單獨(dú)與從設(shè)備通信,也能以廣播方式和所有從設(shè)備通信。如果是單獨(dú)通信,從設(shè)備返回消息作為回應(yīng);如果是廣播方式查詢的,則不作任何回應(yīng)。
當(dāng)數(shù)據(jù)幀到達(dá)終端設(shè)備(從設(shè)備)時,它通過一個簡單的“端口”進(jìn)入被尋址到的設(shè)備,該設(shè)備去掉數(shù)據(jù)幀的“信封”(數(shù)據(jù)頭),讀取數(shù)據(jù),如果沒有錯誤,就執(zhí)行數(shù)據(jù)所請求的任務(wù),然后將自己生成的數(shù)據(jù)加入到取得的“信封”中,把數(shù)據(jù)幀返回給發(fā)送者。返回的響應(yīng)數(shù)據(jù)中包含了以下內(nèi)容:終端從機(jī)地址、被執(zhí)行了的命令、執(zhí)行命令生成的被請求數(shù)據(jù)和一個校驗(yàn)碼。發(fā)生任何錯誤都不會有成功的響應(yīng),或者返回一個錯誤指示幀。
Modbus總線拓?fù)浣Y(jié)構(gòu)
02 MODBUS消息幀
Modbus 協(xié)議定義了一個與基礎(chǔ)通信層無關(guān)的簡單協(xié)議數(shù)據(jù)單元(PDU)。特定總線或網(wǎng)絡(luò)上的 Modbus 協(xié)議映射能夠在應(yīng)用數(shù)據(jù)單元(ADU)上引入一些附加域。
通用MODBUS幀
用戶選擇想要的模式,包括串口通信參數(shù)(波特率、校驗(yàn)方式等),在配置每個控制器的時候,在一個 Modbus 網(wǎng)絡(luò)上所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)。
兩種模式分類
ASCII消息幀結(jié)構(gòu)
RTU消息幀結(jié)構(gòu)
所選的 ASCII 或 RTU 方式僅適用于標(biāo)準(zhǔn)的 Modbus 網(wǎng)絡(luò),它定義了在這些網(wǎng)絡(luò)上連續(xù)傳輸?shù)南⒍蔚拿恳晃唬约皼Q定怎樣將信息打包成消息域和如何解碼。
地址域在幀的開始部分,由一個字節(jié)(8 位二進(jìn)制)組成,十進(jìn)制位 0255,在我們系統(tǒng)中只使用 1147,其它地址保留。這些位標(biāo)明了用戶指定的從設(shè)備的地址,該設(shè)備將接受來自與之相連主設(shè)備數(shù)據(jù)。每個從設(shè)備的地址必須是唯一的,僅僅被尋址到的從設(shè)備會響應(yīng)包含了該地址的查詢。當(dāng)從設(shè)備發(fā)送回一個響應(yīng),響應(yīng)中的從設(shè)備地址數(shù)據(jù)便告訴了主設(shè)備是哪臺設(shè)備與之進(jìn)行通信。
功能碼的作用是指明從設(shè)備要執(zhí)行的動作。
數(shù)據(jù)域包括附加信息,從設(shè)備使用這個信息執(zhí)行功能碼定義的操作。這個域還包括離散項(xiàng)目和寄存器地址、處理的項(xiàng)目數(shù)量以及域中的實(shí)際數(shù)據(jù)字節(jié)數(shù)。在某種請求中,數(shù)據(jù)域可以是不存在的(0 長度),在此情況下服務(wù)器不需要任何附加信息,功能碼僅說明操作。
錯誤校驗(yàn)域是對報文內(nèi)容執(zhí)行“冗余校驗(yàn)”的計算結(jié)果。根據(jù)不同的傳輸模式(RTU 或 ASCII)使用兩種不同的計算方法。
-
控制器
+關(guān)注
關(guān)注
114文章
16838瀏覽量
182268 -
計算機(jī)
+關(guān)注
關(guān)注
19文章
7607瀏覽量
89833 -
MODBUS
+關(guān)注
關(guān)注
28文章
1950瀏覽量
78656 -
RTU
+關(guān)注
關(guān)注
0文章
427瀏覽量
29155 -
總線協(xié)議
+關(guān)注
關(guān)注
0文章
123瀏覽量
15113
發(fā)布評論請先 登錄
相關(guān)推薦

Modbus協(xié)議Modbus M16程序及Modbus協(xié)議文檔幾篇
modbus協(xié)議筆記
Modbus協(xié)議是什么?Modbus協(xié)議主要有哪些應(yīng)用?
Modbus是什么?Modbus協(xié)議有哪些優(yōu)點(diǎn)
介紹Modbus協(xié)議在STM32平臺上的移植
Modbus協(xié)議的介紹和應(yīng)用及錯誤檢查方法的資料說明

物聯(lián)網(wǎng)網(wǎng)關(guān)中的MQTT協(xié)議和Modbus協(xié)議介紹

溫濕度傳感器之RS485通信和Modbus協(xié)議的介紹

Modbus協(xié)議介紹
MODBUS ASCII傳輸模式介紹

評論