Modbus協(xié)議備忘

介紹

簡介

Modbus 是一種應(yīng)用層報文傳輸協(xié)議怀读,由 Modicon 公司在 1979 年發(fā)布,是為了解決 PLC 通信而研發(fā)的協(xié)議靠粪。

因為 Modbus 是開源的且無著作權(quán)要求洲胖、易于部署維護峦失、可靠性強的特性,所以 Modbus 已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議事實上的業(yè)界標準筒严,并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式丹泉。

MODBUS 是一個請求/應(yīng)答協(xié)議,包括ASCII鸭蛙、RTU摹恨、TCP等,是1979年開發(fā)出的一種工業(yè)通信協(xié)議娶视,并沒有規(guī)定物理層晒哄。此協(xié)議定義了控制器能夠認識和使用的消息結(jié)構(gòu),而不管它們是通過何種硬件方式進行通信的

硬件接口

  • RS-232
  • RS-422
  • RS-485
  • 以太網(wǎng)

傳輸模式

  • RTU
  • ASII
  • TCP

TCP和RTU比ASCII常見肪获,其中TCP的使用頻率更高一些

主站與從站

通訊只能由主站發(fā)起寝凌,從站回應(yīng)

一個主站可以連接多個從站,且主站有且只能有一個贪磺,從站至少一個

tcp模式下:一般分為服務(wù)器與客戶端硫兰,可認為客戶端為主站,服務(wù)器為從站

協(xié)議及相關(guān)術(shù)語

存儲區(qū)數(shù)據(jù)模型

在modbus中定義了4種不同的數(shù)據(jù)模型寒锚,具體如下

名稱 數(shù)據(jù)類型 訪問類型 操作碼(功能碼)
線圈 位(bit) 讀寫 01H 05H 0FH
離散量輸入 位(bit) 只讀 02H
保持寄存器 字(word,ushort) 讀寫 03H 06H 10H
輸入寄存器 字(word,ushort) 只讀 04H

對應(yīng)英文(一個表有些擁擠)

中文 英文
線圈 Coils
離散量輸入 Discrete Inputs
保持寄存器 Holding Registers
輸入寄存器 Input Registers

同許多規(guī)范一樣劫映,不同行業(yè)可能會有不同的稱呼。如保持寄存器可以被稱為輸出寄存器刹前,而線圈可以被稱為數(shù)字離散輸出泳赋。

功能碼

一般常用到的有以下幾種:

功能碼 描述 PLC地址 寄存器地址 位/字操作 操作數(shù)量
01H 讀線圈 00001-09999 0000H-FFFFH 單個或多個
02H 讀離散量輸入 10001-19999 0000H-FFFFH 單個或多個
03H 讀保持寄存器 40001-49999 0000H-FFFFH 單個或多個
04H 讀輸入寄存器 30001-39999 0000H-FFFFH 單個或多個
05H 寫線圈 00001-09999 0000H-FFFFH 單個
06H 寫保持寄存器 40001-49999 0000H-FFFFH 單個
0FH 寫線圈 00001-09999 0000H-FFFFH 多個
10H 寫保持寄存器 40001-49999 0000H-FFFFH 多個

數(shù)據(jù)幀

RTU

從站地址 功能碼 數(shù)據(jù) CRC
1byte(1字節(jié))(8bit) 1byte 0-252byte 2字節(jié)(CRC低|CRC高)

數(shù)據(jù)位

一般請求為 2字節(jié) 表示要讀取的 線圈(或寄存器)的起始地址 + 2字節(jié)數(shù)據(jù)表示要讀取的線圈(或寄存器)的個數(shù)

應(yīng)答數(shù)據(jù)位為 1字節(jié)表示數(shù)據(jù)的字節(jié)數(shù) + N字節(jié)表示讀取的線圈狀態(tài)(或寄存器)數(shù)據(jù)

在讀線圈時,如果讀取到的線圈狀態(tài)數(shù)據(jù)不是8的整數(shù)喇喉,則會在后面填充0使其滿足 8 位的倍數(shù)

用表格展示(這里使用線圈演示)

請求PDU

功能碼 1個字節(jié) 0x01
起始地址 2個字節(jié) 0x0000-0xFFFF
線圈數(shù)量 2個字節(jié) 1-2000(0x7D0)

響應(yīng)PDU

功能碼 1個字節(jié) 0x01
字節(jié)數(shù) 1個字節(jié) *N(輸入數(shù)量/8祖今,余數(shù)不等于0,那么N = N+1)
線圈狀態(tài) n n=N 或N+1

樣例

線圈讀取(0x01)樣例

發(fā)送:

假設(shè)從站地址為01H千诬,讀取線圈寄存器的起始地址為0017H耍目,讀取38(十進制)個寄存器,指令結(jié)構(gòu)如下表:

從站地址 功能碼 起始地址高位 起始地址低位 寄存器數(shù)量高位 寄存器數(shù)量低位 CRC高位 CRC低位
01 01 00 17 00 26 0D D4

響應(yīng)

各線圈的狀態(tài)與數(shù)據(jù)內(nèi)容的每個bit對應(yīng)徐绑,1代表ON邪驮,0代表OFF.若查詢線圈的數(shù)量不是8的倍數(shù),則在最后一個字節(jié)的高位補0.

從站地址 功能碼 返回字節(jié)數(shù) 數(shù)據(jù)1 數(shù)據(jù)2 數(shù)據(jù)3 數(shù)據(jù)4 數(shù)據(jù)5 CRC高位 CRC低位
01 01 05 CD 6B B2 0E 1B 44 EA

第一個字節(jié)CDH(0xCD)對應(yīng)線圈0017H到001E的狀態(tài)傲茄,轉(zhuǎn)為二進制是11001101毅访,其中bit0對應(yīng)0017H,bit7對應(yīng)001E盘榨,如下表:

001EH 001DH 001CH 001BH 001AH 0019H 0018H 0017H
1 1 0 0 1 1 0 1
ON ON OFF OFF ON ON OFF ON

保持寄存器讀扔鞔狻(0x03)樣例

發(fā)送

有一個從站是溫濕度傳感器,從站地址為 1草巡,它會將采集到的濕度寫入保持寄存器的 40001 區(qū)塊中守呜;溫度寫入保持寄存器的 40002 區(qū)塊中。此時我們發(fā)送讀取保持寄存器請求去獲取它的溫濕度信息山憨。

從站地址 功能碼 起始地址高位 起始地址低位 寄存器數(shù)量高位 寄存器數(shù)量低位 CRC高位 CRC低位
01 03 00 00 00 02 C4 0B

響應(yīng)

從站地址 功能碼 返回字節(jié)數(shù) 數(shù)據(jù)1 數(shù)據(jù)2 數(shù)據(jù)3 數(shù)據(jù)4 CRC高位 CRC低位
01 03 04 01 46 01 3B 5A 59

前兩個字節(jié)為濕度(換算成十進制為 326 弛饭,即 32.6% ),后兩個字節(jié)為溫度(十進制為 315萍歉,即 31.5 攝氏度)

注:以上部分樣例來源于網(wǎng)上公開數(shù)據(jù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末侣颂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子枪孩,更是在濱河造成了極大的恐慌憔晒,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔑舞,死亡現(xiàn)場離奇詭異拒担,居然都是意外死亡,警方通過查閱死者的電腦和手機攻询,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門从撼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钧栖,你說我怎么就攤上這事低零。” “怎么了拯杠?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵掏婶,是天一觀的道長。 經(jīng)常有香客問我潭陪,道長雄妥,這世上最難降的妖魔是什么最蕾? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮老厌,結(jié)果婚禮上瘟则,老公的妹妹穿的比我還像新娘。我一直安慰自己枝秤,他們只是感情好壹粟,可當(dāng)我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宿百,像睡著了一般。 火紅的嫁衣襯著肌膚如雪洪添。 梳的紋絲不亂的頭發(fā)上垦页,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天,我揣著相機與錄音干奢,去河邊找鬼痊焊。 笑死,一個胖子當(dāng)著我的面吹牛忿峻,可吹牛的內(nèi)容都是我干的薄啥。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼逛尚,長吁一口氣:“原來是場噩夢啊……” “哼垄惧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起绰寞,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤到逊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后滤钱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體觉壶,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年件缸,在試婚紗的時候發(fā)現(xiàn)自己被綠了铜靶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡他炊,死狀恐怖争剿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情痊末,我是刑警寧澤秒梅,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站舌胶,受9級特大地震影響捆蜀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一辆它、第九天 我趴在偏房一處隱蔽的房頂上張望誊薄。 院中可真熱鬧,春花似錦锰茉、人聲如沸呢蔫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽片吊。三九已至,卻和暖如春协屡,著一層夾襖步出監(jiān)牢的瞬間俏脊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工肤晓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留爷贫,地道東北人。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓补憾,卻偏偏與公主長得像漫萄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子盈匾,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 概述 Modbus協(xié)議最初由Modicon公司開發(fā)出來腾务,在1979年末該公司成為施耐德自動化部門的一部分,現(xiàn)在Mo...
    得奕閱讀 1,946評論 1 0
  • 電力系統(tǒng)是一個綜合化的系統(tǒng)削饵,作為一個熟練的電工窑睁,對于通信有著一定的認識。否則很多問題葵孤,我們將無從下手担钮。首先我們從廣...
    洪城小電工閱讀 117,822評論 8 34
  • MODBUS TCP協(xié)議實例數(shù)據(jù)幀詳細分析[https://blog.csdn.net/weixin_415425...
    andycheng閱讀 1,439評論 0 0
  • 1 簡述 Modbus寄存器分為四種,如表1.1所示: 表1.1 寄存器分類 2 常用功能碼 Modbus中常用的...
    lakerszhy閱讀 45,787評論 0 16
  • 一尤仍、Modbus 協(xié)議簡介 Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通用語言箫津。通過此協(xié)議,控制器相互之間宰啦、控制...
    lx_jian閱讀 46,106評論 2 14