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