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

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

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

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

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

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

1、ASCII幀

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

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

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

wKgaomUQ6OOAQb9oAAAx-ZySk1k07.jpeg

2.RTU幀

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

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

wKgZomUQ6OaAStuvAAAuRTuB5AQ58.jpeg

3.地址域

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

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

4.如何處理功能域

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

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

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

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

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

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

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

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

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

使用ASCII字符幀時(shí),位的序列是:

wKgaomUQ6OeAHhJTAAA3PVwNZnE72.jpeg

使用RTU字符幀時(shí),位的序列是:

wKgZomUQ6OeAQu0_AAA1ZKfO3pQ64.jpeg

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

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

wKgaomUQ6OiARvb3AAHkbVBd2_I827.png

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

wKgZomUQ6OiAS3sbAAKk8aOqxvE278.png

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

wKgaomUQ6OmAGmy2AALr8PSLLO8150.png

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

wKgZomUQ6OmAcDyzAAGUcEjgndk912.png

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

    關(guān)注

    40

    文章

    5320

    瀏覽量

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

    關(guān)注

    5004

    文章

    13050

    瀏覽量

    460913
  • MODBUS
    +關(guān)注

    關(guān)注

    28

    文章

    1747

    瀏覽量

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

    關(guān)注

    32

    文章

    794

    瀏覽量

    42715
  • ASCII
    +關(guān)注

    關(guān)注

    5

    文章

    171

    瀏覽量

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

    關(guān)注

    3

    文章

    171

    瀏覽量

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

    關(guān)注

    5

    文章

    571

    瀏覽量

    39684
  • 上位機(jī)
    +關(guān)注

    關(guān)注

    27

    文章

    928

    瀏覽量

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

    關(guān)注

    0

    文章

    398

    瀏覽量

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

    關(guān)注

    11

    文章

    130

    瀏覽量

    25840
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    需要有大于3.5byte的延時(shí),程序沒有,可以由定時(shí)器起動(dòng)發(fā)送;<2>接收時(shí)crc計(jì)算還是邊接收邊計(jì)算好點(diǎn),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)用?

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

    Modbus協(xié)議的特點(diǎn)是什么

    Modbus協(xié)議的特點(diǎn)是什么?Modbus協(xié)議有哪幾類功能碼?
    發(fā)表于 09-26 08:13

    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)點(diǎn)

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

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

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

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

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

    文讀懂Modbus協(xié)議

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

    Modbus協(xié)議的理解

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

    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 ?2321次閱讀

    工業(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 ?1244次閱讀
    工業(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è)置數(shù)據(jù)格式了嗎?

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

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

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