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

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

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

一篇文章全面解析Modbus協(xié)議中的消息幀

達泰電子 ? 來源:達泰電子 ? 作者:達泰電子 ? 2023-09-25 09:56 ? 次閱讀

在 Modbus網(wǎng)絡(luò)通信的兩種傳輸模式中( ASCII或RTU),傳輸設(shè)備以將Modbus消息轉(zhuǎn)為有起點和終點的幀,這就允許接收的設(shè)備在消息起始處開始工作,讀地址分配信息,判斷哪一個設(shè)備被選中(廣播方式則傳給所有設(shè)備),判知何時信息已完成。部分的消息也能偵測到并且錯誤能設(shè)置為返回結(jié)果。

1、ASCII幀

使用ASCII模式,消息以冒號(:)字符(ASCII碼 3AH)開始,以回車換行符結(jié)束(ASCII碼 0DH,0AH)。

其它域可以使用的傳輸字符是十六進制的0...9,A...F。網(wǎng)絡(luò)上的設(shè)備不斷偵測“:”字符,當(dāng)有一個冒號接收到時,每個設(shè)備都解碼下個域(地址域)來判斷是否發(fā)給自己的。

消息中字符間發(fā)送的時間間隔最長不能超過1秒,否則接收的設(shè)備將認(rèn)為傳輸錯誤。一個典型消息幀如下所示:

wKgaomUQ6OOAQb9oAAAx-ZySk1k07.jpeg

2.RTU幀

使用RTU模式,消息發(fā)送至少要以3.5個字符時間的停頓間隔開始。在網(wǎng)絡(luò)波特率下多樣的字符時間,這是最容易實現(xiàn)的(如下圖的T1-T2-T3-T4所示)。傳輸?shù)牡谝粋€域是設(shè)備地址??梢允褂玫膫鬏斪址鞘M制的0...9,A...F。網(wǎng)絡(luò)設(shè)備不斷偵測網(wǎng)絡(luò)總線,包括停頓間隔時間內(nèi)。當(dāng)?shù)谝粋€域(地址域)接收到,每個設(shè)備都進行解碼以判斷是否發(fā)往自己的。在最后一個傳輸字符之后,一個至少3.5個字符時間的停頓標(biāo)定了消息的結(jié)束。一個新的消息可在此停頓后開始。

整個消息幀必須作為一連續(xù)的流轉(zhuǎn)輸。如果在幀完成之前有超過1.5個字符時間的停頓時間,接收設(shè)備將刷新不完整的消息并假定下一字節(jié)是一個新消息的地址域。同樣地,如果一個新消息在小于3.5個字符時間內(nèi)接著前個消息開始,接收的設(shè)備將認(rèn)為它是前一消息的延續(xù)。這將導(dǎo)致一個錯誤,因為在最后的CRC域的值不可能是正確的。一典型的消息幀如下所示:

wKgZomUQ6OaAStuvAAAuRTuB5AQ58.jpeg

3.地址域

消息幀的地址域包含兩個字符(ASCII)或8Bit(RTU)??赡艿膹脑O(shè)備地址是0...247 (十進制)。單個設(shè)備的地址范圍是1...247。主設(shè)備通過將要聯(lián)絡(luò)的從設(shè)備的地址放入消息中的地址域來選通從設(shè)備。當(dāng)從設(shè)備發(fā)送回應(yīng)消息時,它把自己的地址放入回應(yīng)的地址域中,以便主設(shè)備知道是哪一個設(shè)備作出回應(yīng)。

地址0是用作廣播地址,以使所有的從設(shè)備都能認(rèn)識。當(dāng)Modbus協(xié)議用于更高水準(zhǔn)的網(wǎng)絡(luò),廣播可能不允許或以其它方式代替。

4.如何處理功能域

消息幀中的功能代碼域包含了兩個字符(ASCII)或8Bits(RTU)??赡艿拇a范圍是十進制的1...255。當(dāng)然,有些代碼是適用于所有控制器,有此是應(yīng)用于某種控制器,還有些保留以備后用。

當(dāng)消息從主設(shè)備發(fā)往從設(shè)備時,功能代碼域?qū)⒏嬷畯脑O(shè)備需要執(zhí)行哪些行為。例如去讀取輸入的開關(guān)狀態(tài),讀一組寄存器的數(shù)據(jù)內(nèi)容,讀從設(shè)備的診斷狀態(tài),允許調(diào)入、記錄、校驗在從設(shè)備中的程序等。

當(dāng)從設(shè)備回應(yīng)時,它使用功能代碼域來指示是正?;貞?yīng)(無誤)還是有某種錯誤發(fā)生(稱作異議回應(yīng))。對正?;貞?yīng),從設(shè)備僅回應(yīng)相應(yīng)的功能代碼。對異議回應(yīng),從設(shè)備返回一等同于正常代碼的代碼,但最重要的位置為邏輯1。

例如:一從主設(shè)備發(fā)往從設(shè)備的消息要求讀一組保持寄存器,將產(chǎn)生如下功能代碼:0 0 0 0 0 0 1 1 (十六進制03H)

對正?;貞?yīng),從設(shè)備僅回應(yīng)同樣的功能代碼。對異議回應(yīng),它返回:1 0 0 0 0 0 1 1 (十六進制83H)

除功能代碼因異議錯誤作了修改外,從設(shè)備將一獨特的代碼放到回應(yīng)消息的數(shù)據(jù)域中,這能告訴主設(shè)備發(fā)生了什么錯誤。

主設(shè)備應(yīng)用程序得到異議的回應(yīng)后,典型的處理過程是重發(fā)消息,或者診斷發(fā)給從設(shè)備的消息并報告給操作員。

5.字符的連續(xù)傳輸

當(dāng)消息在標(biāo)準(zhǔn)的Modbus系列網(wǎng)絡(luò)傳輸時,每個字符或字節(jié)以如下方式發(fā)送(從左到右):最低有效位...最高有效位

使用ASCII字符幀時,位的序列是:

wKgaomUQ6OeAHhJTAAA3PVwNZnE72.jpeg

使用RTU字符幀時,位的序列是:

wKgZomUQ6OeAQu0_AAA1ZKfO3pQ64.jpeg

6.Modbus協(xié)議下的數(shù)據(jù)傳輸

西門子S7-1200 與 觸摸屏之間無線Modbus通信。威綸通觸摸屏作為主站,S7-1200作為從站,并采用PLC專用無線通訊終端DTD434MC作為實現(xiàn)無線通訊的硬件設(shè)備。

wKgaomUQ6OiARvb3AAHkbVBd2_I827.png

多臺匯川PLC之間基于MODBUS通訊協(xié)議下的無線通信。采用PLC專用無線通訊終端DTD435M作為實現(xiàn)無線通訊的硬件設(shè)備,無需更改網(wǎng)絡(luò)參數(shù)直接替換有線連接。

wKgZomUQ6OiAS3sbAAKk8aOqxvE278.png

基于Modbus RTU協(xié)議下實現(xiàn)的1主多從自組網(wǎng)無線通信形式,主站為組態(tài)王,從站為DTD433H。采用無線開關(guān)量信號測控終端DTD433H與無線通信數(shù)據(jù)終端DTD433MC,作為實現(xiàn)無線通訊的硬件設(shè)備。DTD433H具備輸入和輸出開關(guān)量信號功能,信號傳輸方向由用戶原系統(tǒng)主從設(shè)備所實現(xiàn)的功能決定。

wKgaomUQ6OmAGmy2AALr8PSLLO8150.png

2臺組態(tài)王和1臺三菱FX5u PLC之間無線以太網(wǎng)通信,采用了三菱PLC無線通訊終端DTD419MB作為實現(xiàn)無線通訊的硬件設(shè)備。無需更改網(wǎng)絡(luò)參數(shù)和原有程序,通過DTD419MB即可直接替換組態(tài)王與PLC之間有線以太網(wǎng)通訊,且穩(wěn)定方便的實現(xiàn)ModbusTCP/IP協(xié)議下無線以太網(wǎng)通訊。

wKgZomUQ6OmAcDyzAAGUcEjgndk912.png

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

    關(guān)注

    40

    文章

    5288

    瀏覽量

    169663
  • plc
    plc
    +關(guān)注

    關(guān)注

    5001

    文章

    12946

    瀏覽量

    459228
  • MODBUS
    +關(guān)注

    關(guān)注

    28

    文章

    1718

    瀏覽量

    76421
  • 三菱
    +關(guān)注

    關(guān)注

    32

    文章

    790

    瀏覽量

    42663
  • ASCII
    +關(guān)注

    關(guān)注

    5

    文章

    171

    瀏覽量

    34949
  • ModBus協(xié)議
    +關(guān)注

    關(guān)注

    3

    文章

    167

    瀏覽量

    33314
  • 無線通訊
    +關(guān)注

    關(guān)注

    5

    文章

    563

    瀏覽量

    39278
  • 上位機
    +關(guān)注

    關(guān)注

    27

    文章

    927

    瀏覽量

    54551
  • RTU
    RTU
    +關(guān)注

    關(guān)注

    0

    文章

    384

    瀏覽量

    28547
  • 組態(tài)王
    +關(guān)注

    關(guān)注

    11

    文章

    130

    瀏覽量

    25799
收藏 人收藏

    評論

    相關(guān)推薦

    Modbus協(xié)議Modbus M16程序及Modbus協(xié)議文檔幾篇

    需要有大于3.5byte的延時,程序沒有,可以由定時器起動發(fā)送;<2>接收時crc計算還是邊接收邊計算好點,crc的
    發(fā)表于 11-11 10:12

    modbus協(xié)議筆記

    1 Modbus協(xié)議概要? Modbus通信協(xié)議由Modicon公司(現(xiàn)在的施耐德電氣Schneider Electric)于1979年為可編程邏輯控制(即PLC)通信而發(fā)表。目前,Modbu
    發(fā)表于 07-02 07:17

    Modbus協(xié)議是什么?Modbus協(xié)議主要有哪些應(yīng)用?

    請問Modbus協(xié)議是什么?Modbus協(xié)議主要有哪些應(yīng)用?
    發(fā)表于 07-15 12:04

    Modbus協(xié)議地址與協(xié)議層次

    Modbus協(xié)議地址是什么意思?Modbus協(xié)議層次有何優(yōu)勢?
    發(fā)表于 09-28 06:27

    Modbus協(xié)議是什么

    Modbus協(xié)議是什么?MODBUS功能碼有哪些?MODBUS協(xié)議有哪幾種傳輸模式?
    發(fā)表于 09-29 07:06

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

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

    Modbus協(xié)議相關(guān)資料推薦

    ,自帶原生接口和采集引擎 (gitee.com)目錄前言驅(qū)動目的適用范圍使用示例驅(qū)動代碼驅(qū)動解析前言Modbus協(xié)議是應(yīng)用于電子控制器上的種通用語言。通過此協(xié)議,控制器相互之間、控制
    發(fā)表于 11-16 06:50

    modbus協(xié)議的相關(guān)資料分享

    次寫專欄,暫時打算分為3吧;第一篇modbus協(xié)議的理論內(nèi)容;第二modbus的實現(xiàn)
    發(fā)表于 02-21 06:43

    文讀懂Modbus協(xié)議

    1、Modbus是什么?  Modbus協(xié)議,從字面理解它包括Mod和Bus兩部分,首先它是種bus,即總線協(xié)議,和I2C、SPI類似,總線就意味著有主機,有從機,這些設(shè)備在同
    發(fā)表于 10-28 14:23

    Modbus協(xié)議的理解

    系統(tǒng)的兼容,最好采用通用的通訊協(xié)議。   我們可以Modbus協(xié)議進行修改,使之能使用在自己的系統(tǒng)。Modbus協(xié)議包括ASCII、RTU、TCP等,并沒有規(guī)定物理層。此
    發(fā)表于 05-05 16:47

    Modbus協(xié)議簡介及其特點

    Modbus協(xié)議是什么,Modbus協(xié)議的特點,本文針對Modbus協(xié)議的概況加以闡述。
    發(fā)表于 11-02 15:00 ?4587次閱讀

    Modbus協(xié)議三種數(shù)據(jù)的差異

    Modbus協(xié)議無線通信網(wǎng)關(guān)就是將Modbus協(xié)議轉(zhuǎn)換為其他物聯(lián)網(wǎng)無線數(shù)傳協(xié)議。
    的頭像 發(fā)表于 05-31 13:16 ?2263次閱讀

    工業(yè)通訊應(yīng)用主流的常用協(xié)議Modbus協(xié)議

    智聯(lián)物聯(lián)技術(shù)分享,本期為大家介紹工業(yè)通訊常用的主流協(xié)議Modbus協(xié)議。Modbus協(xié)議的前身叫做Mod協(xié)議,常被用于Modicon公司的PLC控制器
    的頭像 發(fā)表于 04-19 15:25 ?1190次閱讀
    工業(yè)通訊應(yīng)用<b class='flag-5'>中</b>主流的常用<b class='flag-5'>協(xié)議</b><b class='flag-5'>Modbus協(xié)議</b>

    使用MODBUS協(xié)議的時候可以不用設(shè)置數(shù)據(jù)格式了嗎?

    在使用MODBUS協(xié)議進行串口通訊時,通常需要設(shè)置數(shù)據(jù)格式。
    的頭像 發(fā)表于 01-30 09:32 ?587次閱讀

    Modbus協(xié)議網(wǎng)關(guān)是什么?Modbus協(xié)議網(wǎng)關(guān)的功能

    Modbus協(xié)議網(wǎng)關(guān)是種專門用于工業(yè)自動化環(huán)境的網(wǎng)絡(luò)設(shè)備,其主要功能是實現(xiàn)不同通信協(xié)議之間的轉(zhuǎn)換,尤其是將基于Modbus協(xié)議的設(shè)備或系
    的頭像 發(fā)表于 04-11 15:51 ?559次閱讀