0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Modbus的實(shí)現(xiàn)方法有哪些?Modbus網(wǎng)絡(luò)架構(gòu)方案介紹

冬至子 ? 來源:老李物語 ? 作者:李廣山 ? 2023-08-11 16:53 ? 次閱讀

1.0 介紹

Modbus是由AEG-Modicon(莫迪康)公司開發(fā)的串行通信協(xié)議。它最初設(shè)計(jì)用于可編程邏輯控制器(PLC)。它是一種應(yīng)用層消息傳遞協(xié)議,運(yùn)行在開放系統(tǒng)互連(OSI)協(xié)議模型的第7層,提供連接在不同類型網(wǎng)絡(luò)上的設(shè)備之間的客戶端-服務(wù)器通信。

Modbus協(xié)議層如下圖所示,它定義了一種通過另一設(shè)備訪問和控制設(shè)備的方法,而不考慮所涉及的物理網(wǎng)絡(luò)的類型。

圖片

Modbus不需要接口,就像許多其他總線一樣。用戶可以選擇RS-422, RS-485或20 mA電流回路。與其他總線相比,Modbus速度相對(duì)較慢,但在控制儀表制造商和用戶中被廣泛接受,具有決定性優(yōu)勢(shì)。

自1979年以來,Modbus成為工業(yè)串行總線的事實(shí)標(biāo)準(zhǔn)。Modbus沒有正式的認(rèn)證方式,制造商的責(zé)任是確認(rèn)他們的產(chǎn)品與Modbus設(shè)備兼容。協(xié)議描述了一個(gè)設(shè)備訪問另一個(gè)設(shè)備的方式,如何接收信息,以及如何響應(yīng)查詢。在出現(xiàn)錯(cuò)誤的情況下,協(xié)議提供了一種向用戶發(fā)送相應(yīng)命令的機(jī)制。通過將Modbus協(xié)議作為數(shù)據(jù)包嵌入到其他網(wǎng)絡(luò)的協(xié)議中,通信可以在Modbus網(wǎng)絡(luò)上進(jìn)行,也可以在其他網(wǎng)絡(luò)(如以太網(wǎng))上進(jìn)行。

Modbus串行通信協(xié)議基于主/從原理,由主設(shè)備發(fā)起事務(wù)。該協(xié)議提供一個(gè)主設(shè)備和多達(dá)247個(gè)從設(shè)備。

Modbus的一些特性是固定的,一些特性是用戶可以選擇的。固定的特征是幀格式、幀序列、通信錯(cuò)誤和異常條件的處理以及所執(zhí)行的功能??蛇x擇的特性是傳輸介質(zhì)和傳輸特性。用戶特征一旦設(shè)置,在系統(tǒng)運(yùn)行時(shí)就不能更改。

2.0 通信棧

Modbus的實(shí)現(xiàn)方法如下:

  • 以太網(wǎng)上的傳輸控制協(xié)議(TCP)/互聯(lián)網(wǎng)協(xié)議(IP)。
  • 異步串行傳輸在不同的媒質(zhì),如:EIA/TIA-232E, EIA-422, EIA/TIA-485-A; 光纖, 無線通信等.
  • Modbus Plus — 一種高速令牌傳遞方法。

下圖,展示了使用TCP/IP、主/從和Modbus Plus物理層實(shí)現(xiàn)Modbus通信棧的過程。

圖片

3.0 網(wǎng)絡(luò)結(jié)構(gòu)

Modbus網(wǎng)絡(luò)架構(gòu)方案如下圖所示。

圖片

不同的設(shè)備,如PLC、人機(jī)界面(HMI)、輸入/輸出(I/O)等,可以通過單獨(dú)的網(wǎng)關(guān)連接到Modbus TCP/IP。不同的Modbus協(xié)議,即MB+上的Modbus, RS-232上的Modbus,RS-485上的Modbus通過TCP/IP發(fā)起遠(yuǎn)程通信。

4.0 通信事務(wù)

Modbus串行通信采用主/從協(xié)議。主站發(fā)起查詢,從站通過向主站提供必要的數(shù)據(jù)或根據(jù)請(qǐng)求采取適當(dāng)?shù)牟僮鱽眄憫?yīng)。 從站的響應(yīng)如下:

  • 采取適當(dāng)?shù)男袆?dòng)
  • 向主站提供必要的數(shù)據(jù)/信息
  • 通知主站,必要的行動(dòng)無法執(zhí)行。

當(dāng)從站無法按照主站的請(qǐng)求執(zhí)行所需的操作時(shí),將向主站發(fā)送一條錯(cuò)誤消息(稱為異常響應(yīng))。對(duì)主站的異常響應(yīng)包含以下內(nèi)容:

  • 響應(yīng)從站的地址
  • 從站被請(qǐng)求執(zhí)行的動(dòng)作和
  • 說明行動(dòng)為什么不能執(zhí)行。

如果消息包含錯(cuò)誤,從站會(huì)忽略它。在這種情況下,因?yàn)樗鼰o法收到從響應(yīng)的響應(yīng),主站將查詢重發(fā)給從站。

4.1. 主/從和廣播通信

主站可以一個(gè)一個(gè)地對(duì)從站尋址(單播模式),也可以同時(shí)給所有從站尋址(廣播模式)。從站響應(yīng)單播消息,但不響應(yīng)多播消息。主/從通信和廣播通信方式分別如下圖所示:

圖片

4.2 查詢響應(yīng)周期

查詢由主站發(fā)起,從站響應(yīng)它。查詢響應(yīng)周期是Modbus網(wǎng)絡(luò)中所有通信事務(wù)的基礎(chǔ)。來自主站的查詢包含四部分:設(shè)備地址、功能碼、數(shù)據(jù)/消息和錯(cuò)誤檢查碼。從站的響應(yīng)結(jié)構(gòu)與主站的響應(yīng)結(jié)構(gòu)相同。下圖顯示了查詢響應(yīng)周期。

圖片

4.2.1 地址段

主站在其查詢中發(fā)送的地址字段包含消息所指向的從站的地址。取值范圍為 1到247。當(dāng)從站發(fā)送它的響應(yīng)時(shí),它將自己的地址放在它的地址字段中,以便主站可以知道正確的從站正在響應(yīng)。地址0指定用于廣播。所有從站都讀取它們,但不向來自主站的查詢提供任何響應(yīng)。

4.2.2 功能段

雖然不是所有設(shè)備都支持所有的功能碼,但是功能碼的取值范圍是1 ~ 255。當(dāng)功能碼在查詢中從主站到達(dá)從站時(shí),從站就會(huì)知道它必須采取的操作。從站所采取的動(dòng)作的例子可能包括:讀取輸入狀態(tài),讀取寄存器內(nèi)容,改變從站內(nèi)的狀態(tài),操作繼電器線圈等。

當(dāng)從站向主站發(fā)送響應(yīng)時(shí),它重復(fù)接收到的佛南功能碼。它表示從站已經(jīng)理解了來自主站的查詢并采取了相應(yīng)的行動(dòng)。如果從站無法執(zhí)行指令,則生成異常響應(yīng),從站使用功能碼和數(shù)據(jù)字段將異常的原因告知主站。

在生成異常響應(yīng)的情況下,從站將原始功能碼返回給主站,但將MSB設(shè)置為1。在這種情況下,從站的響應(yīng)消息的數(shù)據(jù)字段向主站指示所發(fā)生的錯(cuò)誤的性質(zhì)。因此,主站可以基于此采取適當(dāng)?shù)牟僮?。主站所采取的行?dòng)可能是重復(fù)原始消息,或嘗試診斷問題,或設(shè)置警報(bào)等。

4.2.3 數(shù)據(jù)段

查詢中從站接收到的數(shù)據(jù)字段通常包括寄存器值、寄存器地址或寄存器范圍。有些功能不需要數(shù)據(jù)字段,此時(shí),來自主站的查詢中不包含d數(shù)據(jù)字段。

如果沒有發(fā)生錯(cuò)誤,則從站使用響應(yīng)的數(shù)據(jù)字段將數(shù)據(jù)傳遞回主主站。當(dāng)錯(cuò)誤發(fā)生時(shí),從站的數(shù)據(jù)字段傳遞更多的信息,告知主站所檢測(cè)到的錯(cuò)誤的性質(zhì)。

Modbus本身不編碼數(shù)據(jù),因此可以采用許多編碼方案。用戶可以就網(wǎng)絡(luò)通訊協(xié)議做出選擇。

4.2.4 錯(cuò)誤校驗(yàn)段

錯(cuò)誤校驗(yàn)字段允許主站確認(rèn)從從站接收到的消息的完整性。所采用的錯(cuò)誤校驗(yàn)方法取決于所選擇的傳輸模式。在遠(yuǎn)程終端單元(RTU)模式下,可以采用循環(huán)冗余檢查(CRC),或者,對(duì)ASCII模式的傳輸采用LRC。

接收設(shè)備收到完整消息后,計(jì)算錯(cuò)誤校驗(yàn)值,并與收到的消息中的錯(cuò)誤校驗(yàn)值進(jìn)行比較。如果兩者一致,則沒有發(fā)生錯(cuò)誤并采取相應(yīng)的行動(dòng)。如果兩個(gè)值不一致,接收到的消息將被拒絕。

5.0 協(xié)議說明:PDU 和 ADU

Modbus可以在不同類型的總線和網(wǎng)絡(luò)上實(shí)現(xiàn),但Modbus部分協(xié)議數(shù)據(jù)單元(PDU)必須包含該總線和網(wǎng)絡(luò)中。PDU由兩個(gè)字段組成:功能碼和數(shù)據(jù)。

兩種最常見的Modbus實(shí)現(xiàn)類型是以太網(wǎng)(TCP/IP)和串行通信,串行通信通可以是RS232、RS422RS485。最常見的Modbus串行協(xié)議是Modbus-RTU。無論用于特定應(yīng)用程序的協(xié)議類型是什么,特定于應(yīng)用程序的尋址和錯(cuò)誤校驗(yàn)都附加到PDU上,從而產(chǎn)生應(yīng)用程序數(shù)據(jù)單元(ADU)。如下圖所示,ADU表示Modbus幀。

圖片

6.0 傳輸模式

在Modbus網(wǎng)絡(luò)中傳輸串行數(shù)據(jù)有兩種傳輸方式:RTU和ASCII。它們?cè)谠S多方面有所不同:在消息字段中包裝信息的方式、解釋消息的比特內(nèi)容的方式、解碼消息的方式以及在給定波特率下的操作速度。

不同的模式不能同時(shí)使用,用戶可以為特定的應(yīng)用程序選擇特定的模式。RTU模式比ASCII模式更快、更健壯。因此,在消息傳輸方面,它比ASCII形式有更多的應(yīng)用

RTU傳輸模式有時(shí)被稱為Modbus-B, ASCII傳輸模式被稱為Modbus-A。ASCII模式下的典型消息長(zhǎng)度大約是等效RTU消息長(zhǎng)度的兩倍。 在ASCII傳輸模式下,消息中的每個(gè)字節(jié)以兩個(gè)ASCII字符的形式傳輸,在RTU傳輸模式下,消息中的每個(gè)字節(jié)以一個(gè)包含兩個(gè)十六進(jìn)制數(shù)字的8位二進(jìn)制數(shù)的形式發(fā)送。

通過將Modbus數(shù)據(jù)封裝在TCP/IP報(bào)文中,Modbus報(bào)文也可以在局域網(wǎng)和廣域網(wǎng)中傳輸。

7.0 消息分幀

對(duì)于消息的傳輸,在其最終傳輸之前構(gòu)造一個(gè)幀。幀由開始字符和結(jié)束字符、單播設(shè)備地址或廣播設(shè)備地址、功能碼、數(shù)據(jù)和錯(cuò)誤校驗(yàn)碼組成。

7.1 ASCII 分幀

Modbus ASCII 幀由六個(gè)字段組成,如下圖所示。

圖片

幀以冒號(hào)(:)開頭,它是ASCII字符3Ah, h表示十六進(jìn)制。幀以一個(gè)end結(jié)束,它是一個(gè)回車換行符,用兩個(gè)ASCII字符 0Dh和0Ah表示。中間其余四個(gè)字段用十六進(jìn)制字符 0-9和A-F表示。

ASCII模式允許兩個(gè)連續(xù)傳輸之間的間隔為1秒,而不會(huì)產(chǎn)生任何錯(cuò)誤。連接到Modbus網(wǎng)絡(luò)的所有設(shè)備持續(xù)監(jiān)視冒號(hào)字符,冒號(hào)字符將代表ASCII字符的開始。如果一個(gè)特定的設(shè)備發(fā)現(xiàn)與它自己的地址匹配,那么它將開始解碼功能代碼和其他字段,并采取相應(yīng)的行動(dòng)。

7.2 RTU 分幀

在這種模式下,消息幀以至少3.5倍字符長(zhǎng)度的靜默時(shí)間間隔開始。消息以相同的3.5倍字符長(zhǎng)度的時(shí)間間隔結(jié)束。在開始字段之后,接收設(shè)備將監(jiān)聽地址字段,以了解消息是否要發(fā)送到該設(shè)備。RTU幀格式如下圖所示。整個(gè)消息幀必須在一個(gè)連續(xù)流中傳輸,否則將產(chǎn)生錯(cuò)誤。

圖片

8.0 Modbus TCP/IP

開放的Modbus TCP/IP規(guī)范于1999年引入。使用Modbus TCP/IP協(xié)議有幾個(gè)優(yōu)點(diǎn),如簡(jiǎn)單、使用標(biāo)準(zhǔn)以太網(wǎng)、開放等。在單個(gè)站點(diǎn)上可以輕松實(shí)現(xiàn)超過1 kB/秒的傳輸速率。

Modbus TCP/IP是一種互聯(lián)網(wǎng)協(xié)議。它是一個(gè)TCP包裝過的Modbus協(xié)議。因此,Modbus設(shè)備可以通過Modbus TCP/IP進(jìn)行通信。網(wǎng)關(guān)設(shè)備只需要從物理層(RS-232、RS-485或其他)轉(zhuǎn)換到以太網(wǎng),并將Modbus協(xié)議轉(zhuǎn)換為Modbus TCP/IP。

下圖 (a,b)顯示了Modbus TCP/IP協(xié)議層以及OSI層,以及分別封裝在Modbus TCP/IP框架中的Modbus幀:

圖片

常規(guī)的Modbus幀包含設(shè)備地址的任意兩個(gè)ASCII碼(在ASCII模式下)或8位十六進(jìn)制字節(jié)(在RTU模式下),這里被替換為IP地址和設(shè)備網(wǎng)絡(luò)標(biāo)識(shí)符。此外,Modbus幀中的16位校驗(yàn)和被Modbus TCP/IP幀中的TCP的32位CRC所取代。

將Modbus協(xié)議的主/從架構(gòu)修改為Modbus TCP/IP中的客戶端-服務(wù)器架構(gòu)。由于TCP是面向連接的協(xié)議,對(duì)于Modbus TCP/IP中的每個(gè)查詢,都會(huì)有一個(gè)響應(yīng)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5320

    瀏覽量

    170491
  • CRC校驗(yàn)
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    15166
  • MODBUS總線
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    10017
  • 可編程邏輯控制器
    +關(guān)注

    關(guān)注

    4

    文章

    264

    瀏覽量

    25874
  • TCP通信
    +關(guān)注

    關(guān)注

    0

    文章

    146

    瀏覽量

    4192
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是Modbus通訊協(xié)議?Modbus通訊協(xié)議什么特點(diǎn)?

    ?! ?b class='flag-5'>Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)。了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)
    發(fā)表于 11-11 10:35

    無線ModBus實(shí)訓(xùn)套件應(yīng)用方案

    協(xié)議,讓學(xué)習(xí)者對(duì)無線網(wǎng)絡(luò)搭建和無線網(wǎng)絡(luò)通信協(xié)議一個(gè)清晰的概念。無線ModBus實(shí)訓(xùn)套件即可單獨(dú)完成單片機(jī)、433M無線通信、了解ModBus
    發(fā)表于 06-24 14:15

    Modbus TCP轉(zhuǎn)Modbus RTU的實(shí)現(xiàn)

    TCP和Mobus RTU兩協(xié)議的普及,設(shè)備越來越多,要實(shí)現(xiàn)Modbus TCP訪問Modbus RTU設(shè)備的需求日益增加。Modbus TCP具有自身的優(yōu)勢(shì),因?yàn)槠淇梢岳矛F(xiàn)有的
    發(fā)表于 08-10 10:04

    基于Modbus RTU的串口調(diào)試軟件的實(shí)現(xiàn)

    摘 要:文中介紹Modbus RTU通訊協(xié)議的特點(diǎn),闡述了該協(xié)議在VC2005編程環(huán)境下串口調(diào)試軟件的具體實(shí)現(xiàn)方法。并編制了相關(guān)的程序,該程序采用了模塊化思想,結(jié)構(gòu)清晰,操作簡(jiǎn)便,
    發(fā)表于 12-18 19:18

    自動(dòng)化行業(yè)的Modbus TCP和PROFINET

    (包括安全和網(wǎng)絡(luò)架構(gòu))和羅克韋爾自動(dòng)化有限公司的Logix控制平臺(tái)及FactoryTalk平臺(tái)一體化架構(gòu)之間的橋梁。CPwE實(shí)施方案中的工業(yè)以太網(wǎng)交換機(jī)通過對(duì)EtherNet/IP的原
    發(fā)表于 10-22 16:51

    Labview的Modbus通信分享

    通用性和快捷性的同時(shí)帶來的弊端是安裝麻煩且不可靈活使用,如果遇到非標(biāo)中的非標(biāo)設(shè)備把你搞到頭大。今天我介紹一下我平常使用的Modbus編程方式,并非標(biāo)榜這種方法多好,旨在分享和交流。我
    發(fā)表于 07-02 06:57

    亞信AX58200 EtherCAT轉(zhuǎn)Modbus TCP網(wǎng)關(guān)解決方案介紹視頻

    為何需要使用EtherCAT轉(zhuǎn)Modbus TCP網(wǎng)關(guān)解決方案Modbus TCP并非實(shí)時(shí)性的網(wǎng)絡(luò)協(xié)議棧,資料傳輸?shù)乃俣纫脖容^慢;因此,可以利用此EtherCAT轉(zhuǎn)
    發(fā)表于 08-23 10:56

    什么是ModBusModBus如何實(shí)現(xiàn)通信?

    什么是ModBusModBus如何實(shí)現(xiàn)通信?
    發(fā)表于 09-26 09:28

    Modbus是什么?Modbus協(xié)議哪些優(yōu)點(diǎn)

    Modbus是什么?Modbus協(xié)議哪些優(yōu)點(diǎn)?Modbus協(xié)議包括哪些?
    發(fā)表于 09-30 08:40

    介紹modbus與OPC調(diào)試對(duì)接方案

    本文給大家介紹一種modbus與OPC調(diào)試對(duì)接方案。
    發(fā)表于 02-22 06:21

    Modbus on AT32 MCU

    相連,實(shí)現(xiàn)一個(gè)完整的、可測(cè)試的Modbus通信網(wǎng)絡(luò)。AT32 硬件準(zhǔn)備硬件主要由AT32-Comm-EV Board和AT-START Board組成。本應(yīng)用指南提供的demo使用到的外設(shè)資源
    發(fā)表于 07-26 20:22

    如何快速實(shí)現(xiàn)Modbus RTU和Modbus TCP協(xié)議轉(zhuǎn)換?

    整合起來監(jiān)控管理,目前上位機(jī)大部分用的Modbus TCP協(xié)議,而現(xiàn)場(chǎng)設(shè)備有大批量使用的是Modbus RTU協(xié)議,要實(shí)現(xiàn)Modbus TCP訪問M
    發(fā)表于 08-18 18:36

    Modbus通訊協(xié)議的幾種實(shí)現(xiàn)方式

    版權(quán)要求,不用支付額外費(fèi)用、硬件要求簡(jiǎn)單容易部署、使用廣泛便于系統(tǒng)集成。Modbus采用半雙工的通訊方式,由1個(gè)子站和多個(gè)從站組成,允許多個(gè)設(shè)備連接在同一個(gè)網(wǎng)絡(luò)上進(jìn)行通訊。   2. LabVIEW實(shí)現(xiàn)
    發(fā)表于 05-05 16:19

    AB PLC 與MODBUS 網(wǎng)絡(luò)的通信The commun

    介紹了應(yīng)用3100/3150-MCM 模塊實(shí)現(xiàn)AB PLC 與MODBUS 網(wǎng)絡(luò)通訊的方法,該方法
    發(fā)表于 06-04 10:45 ?49次下載

    Modbus通訊協(xié)議應(yīng)用架構(gòu)及案例介紹

    MODICON 公司在1979發(fā)展出來的一套通訊協(xié)定。Modbus 是由它具有標(biāo)準(zhǔn)化、探開放式架構(gòu)的特性,而且廣泛地被工業(yè)自動(dòng)化產(chǎn)所使用的通訊協(xié)定。透過Modbus,SCADA 和HMI 軟體可以很
    發(fā)表于 10-27 11:20 ?22次下載
    <b class='flag-5'>Modbus</b>通訊協(xié)議應(yīng)用<b class='flag-5'>架構(gòu)</b>及案例<b class='flag-5'>介紹</b>