原文標題:億佰特物聯(lián)網(wǎng)無線通信技術(shù):Modbus協(xié)議詳解
Modbus協(xié)議通常被稱為工業(yè)化網(wǎng)絡(luò)的祖父。Modbus 協(xié)議可根據(jù)工業(yè)和商業(yè)要求輕松配置。由于在多個領(lǐng)域的流行和廣泛應用,本文詳細概述了 Modbus 通信、其功能代碼、實現(xiàn)和應用。
什么是Modbus?
Modbus 是開放標準的 RTU,許多組織和工程師將其實施到他們的設(shè)備中,而無需支付任何費用。該協(xié)議被認為是最普遍的通信協(xié)議,并且通??梢宰鳛殒溄庸こ?a class="article-link" target="_blank" href="/tag/%E7%94%B5%E5%AD%90%E8%AE%BE%E5%A4%87/">電子設(shè)備的一種手段來訪問。
詳細地說,這是用于通過串行線路或以太網(wǎng)連接在電子設(shè)備之間進行信息傳輸?shù)耐ㄐ艆f(xié)議。在開放標準條件下,任何人都可以實施。這可能用于連接電源域使用SCADA中的RTU 進行控制的系統(tǒng)。
Modbus 的協(xié)議被明確定義為主從協(xié)議,這意味著作為主設(shè)備的工具將使一個或多個工具作為從設(shè)備。這清楚地表明從機不會承接數(shù)據(jù),它需要等到它被要求提供信息。主設(shè)備將信息寫入從設(shè)備,然后將信息從寄存器讀取到主設(shè)備。從寄存器的角度來看,注冊地址總是存在的。
Modbus 通信協(xié)議如何工作?
由于這種開放標準的遠程終端單元 (RTU) 采用主從方法來創(chuàng)建跨各種設(shè)備的通信,因此,采用RTU方案的任何類型的應用程序都將擁有一個Modbus主設(shè)備和至少一個從設(shè)備。這清楚地表明從機不會承接數(shù)據(jù),它需要等到它被要求提供信息。
設(shè)備之間的主從通信通過串行總線或網(wǎng)絡(luò)實現(xiàn)。在OSI方法中,Modbus 位于第七層。這樣做的目的是請求協(xié)議,然后交付功能代碼提到的相應服務(wù)。這些 Modbus RTU 協(xié)議的功能代碼是 Modbus 請求組件。
為了開發(fā) Modbus 應用數(shù)據(jù)單元,交付單元應該發(fā)起設(shè)備事務(wù)。這是通知服務(wù)器處理指定類型操作的操作。由主設(shè)備發(fā)起的請求的設(shè)計由應用協(xié)議決定。然后功能碼將被編碼為 8 位,即 1 個字節(jié)。只有在 1-25 范圍內(nèi)的功能代碼才被認為是有效的,并且在這個 128-255 中留出用于異常響應。
當有從主機到從機的請求/消息時,這意味著是功能代碼字段通知服務(wù)器執(zhí)行請求的操作。對于某些操作,也會有一些子功能代碼。例如,主設(shè)備可以讀取各種輸入/輸出集群的 ON 和 OFF 轉(zhuǎn)換。
它還可以讀取或?qū)懭胍唤M Modbus 寄存器的信息。當主設(shè)備收到從設(shè)備的響應時,從設(shè)備使用功能代碼字段來表示它是正常響應還是異常響應。從設(shè)備會在有正常響應的情況下對第一個功能碼的請求產(chǎn)生共振。
這就是Modbus 通信協(xié)議的運作方式。
功能代碼
Modbus 協(xié)議識別多個功能代碼以獲得寄存器的可訪問性。Modbus 主要有四種不同的數(shù)據(jù)塊,這里可能會出現(xiàn)寄存器編號或地址重疊的情況。因此,必須在需要地址和功能代碼的地方定義準確的定義。
下表清楚地總結(jié)了Modbus 功能代碼。這些代碼只存在一個子類別。但是對于一些相應的應用程序,這些可能不會得到應用。
Profibus 與/s Modbus
將 Profibus 和 Modbus 作為單獨的應用程序進行比較,兩者中的每一個都有多個優(yōu)點和應用程序。
Modbus具有結(jié)構(gòu)簡單、操作流線型、易于上手的協(xié)議。盡管協(xié)議本身和物理層的定義存在一些差異,但這會在多供應商操作中產(chǎn)生問題。而 Profibus 是最復雜的協(xié)議,其構(gòu)建是為了使整個行業(yè)自動化。它在具有調(diào)制解調(diào)器的多供應商功能中表現(xiàn)出色,并具有徹底的診斷功能。
在智能設(shè)備以點對點方式與控制器連接時,或者存在一個遠程位置時,Modbus 最適合這種情況。在存在多個點,即多個供應商的情況下,Profibus 是最好的。
協(xié)議版本
Modbus 協(xié)議的變體是:
Modbus RTU
為了建立協(xié)議通信,它以二進制格式表示數(shù)據(jù),主要用于串行通信。此版本中的消息按空閑時間段劃分。RTU 版本遵循的格式是循環(huán)冗余校驗驗證機制,這確保了數(shù)據(jù)的可靠性。
Modbus ASCII
為了建立協(xié)議通信,使用ASCII字符并且主要在串行通信中實現(xiàn)。此版本中的消息由冒號 (“) 和尾隨換行符 (/) 分隔。ASCII 版本遵循的格式是縱向冗余校驗以驗證機制。
Modbus TCP
此版本的 Modbus 用于通過TCP/IP 網(wǎng)絡(luò)通過端口 502 鏈接進行通信。此變體不需要任何類型的校驗和計算,因為較低級別本身提供了這一點。
Modbus Plus
這是施耐德電氣的專利變體,與其他類型的變體相比,它支持各種主站之間的點對點類型的通信。它需要一個承諾的協(xié)處理器來管理快速 HDLC,例如令牌變化。它使用 1 Mbit/s 的雙絞線,并由放置在每個節(jié)點的變壓器隔離組成。在 Modbus+ 和計算機之間建立連接需要特定類型的硬件,例如 ISA 總線。
Modbus 應用
主要應用有:
用于醫(yī)療保健領(lǐng)域,用于分析自動溫度水平
交通行為分析
在家庭自動化中實施以簡化數(shù)據(jù)傳輸
天然氣、石油、地熱、海德爾、風能和太陽能等行業(yè)