国产欧美日韩精品a在线观看-国产欧美日韩精品一区二区三区-国产欧美日韩精品综合-国产欧美中文字幕-一区二区三区精品国产-一区二区三区精品国产欧美

ACS880-07C
關注中國自動化產業發展的先行者!
CAIAC 2025
2024
工業智能邊緣計算2024年會
2023年工業安全大會
OICT公益講堂
當前位置:首頁 >> 資訊 >> 行業資訊

資訊頻道

如何快速掌握plc或工控機與其他設備的modbus通訊協議?
  • 點擊數:2978     發布時間:2019-07-18 16:42:00
  • 分享到:
Modbus協議是OSI模型的第七層的應用層通訊協議,定義了不同類型設備間交換信息方式,以及信息的格式。
關鍵詞:

Modbus協議是OSI模型的第七層的應用層通訊協議,定義了不同類型設備間交換信息方式,以及信息的格式。

Modbus的工作方式是請求/應答,每次通訊都是主站先發送指令,可以是廣播,或是向特定從站的單播,從站響應指令,并按要求應答,或者報告異常。當主站不發送請求時,從站不會自己發出數據,從站和從站之間不能直接通訊。

Modbus協議的報文(或幀)的基本格式是:

表頭 + 功能碼 + 數據區 + 校驗碼

功能碼和數據區在不同類型的網絡都是固定不變的,表頭和校驗碼則因網絡底層的實現方式不同而有所區別。表頭包含了從站的地址,功能碼告訴從站要執行何種功能,數據區是具體的信息。

先以串行通訊的Modbus為例(注意Modbus TCP的報文表頭和校驗碼是不一樣的),主站發送了:

09 03 00 04 00 03 XX

主站告訴從站09,我要讀取的地址偏移為4、5、6的Holding Register的數值。其中"03"是讀Holding Register的功能碼,"00 04 00 01"是數據區,"00 04"是寄存器的地址,"00 03"說明要連續讀三個寄存器的值。"XX"代表最后的校驗位,校驗方法是LRC或CRC。

從站收到信息后,就從對應的寄存器找到數值,回復:

09 03 06 02 2B 00 01 00 64 XX

從站回答,該地址偏移為4的寄存器值為02 2B,地址偏移為5的寄存器值為00 01,地址偏移為6的寄存器值為00 64。其中"09 03"是復制了主站發來的地址和功能碼,"06"代表接下來的數據共有6個字節。

如果從站收到了一個錯誤的請求,例如發現要讀的寄存器地址是錯誤的,則回復:

09 83 02 XX

其中"83"是把功能碼"03"的最高位置1,告訴主站發生了異常,"02"是異常碼,說明發生了無效地址的異常。

Modbus的四種數據類型

Coil:大小只有1位,ON或OFF,可讀可寫,既可以是一個輸出量輸出點,也可以是數字量輸入點,有效的地址范圍是1-9999。

Input Status:大小只有1位,ON或OFF,只讀,即數字量輸出點,有效地址范圍是10001-19999。

Input Register:16位的寄存器,只讀,可以用作模擬量或16位打包輸入點,有效地址范圍是30001-39999。

Holding Register:16位的寄存器,可讀可寫,既可以是一個模擬量或16位打包輸入點,也可以是模擬量或16位打包輸出點,有效地址范圍是40001-49999。

在PLC或DCS上用點名標記不同的變量,在Modbus則以數據地址來標記每個點。以上所說的地址都是參考地址,而不是實際的物理地址。上述的地址是在設備中的地址,按照PLC的習慣從1開始遞增,而Modbus報文中是從0開始遞增。例如地址偏移為4、5、6的Holding Register,其實是指參考地址是40005、40006、40007的寄存器。

Modbus TCP、Modbus RTU和Modbus ASCII的區別

對于不同類型的網絡,Modbus的第7層實現是一樣的,區別在于下層的實現方式,常見的有TCP/IP和串行通訊兩種。

Modbus TCP基于以太網和TCP/IP協議,Modbus RTU和Modbus ASCII則是使用異步串行傳輸(通常是RS-232/422/485)。

對于Modbus TCP而言,主站通常稱為Client,從站稱為Server;而對于Modbus RTU和Modbus ASCII來說,主站是Master,從站是Slave。

如圖2所示,串行傳輸的物理層是RS-485或RS-232,數據鏈路層是Modbus的串行傳輸協議;Modbus TCP的1、2、3、4層實現和日常所見的以太網、因特網一樣。Modbus默認采用的TCP端口號是502。

圖3說明了Modbus TCP的改動:

1.取消了校驗位。數據鏈路層上就進行了CRC-32的校驗,TCP/IP是面向連接的可靠性的協議,因此沒必要再加上校驗位。

2.Slave地址換成了Unit Identifier。當網絡里的設備全是使用TCP/IP,這個地址是沒有意義的,因為IP就能進行路由尋址。如果網絡里還有串行通訊的設備,則需要網關來實現Modbus TCP到Modbus RTU或ASCII之間的協議轉換,這時用Unit Identifier來標識網關后面的每個串行通訊設備。

3.Length是指后面的字節總數。實際上數據區的長度是能確定的,有的功能碼就可以確定數據區的長度,有的功能碼雖不能確定數據區長度,但是數據區有字節計數,參見上文舉的從站應答的例子。表頭增加的Length是為了應對有些情況下TCP/IP協議會將應用層的數據拆包傳輸。

4.Transaction Identifier和Protocol Identifier由Client生成,Server的響應將復制這些參數。

RTU和ASCII的區別

RTU模式下,一個字節的數據,傳輸的就是一個字節。ASCII模式下,同樣一個字節數據用了兩個字節來傳輸。

例如,要傳輸數字0x5B,RTU傳輸的是0101 1011(二進制),而ASCII傳輸的是00110101和01000010。可見,ASCII傳輸的速率是RTU的一半。

ASCII模式采用LRC校驗,RTU模式采用16位CRC校驗。

來源:網絡整理

熱點新聞

推薦產品

x
  • 在線反饋
1.我有以下需求:



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 日韩一区二区精品久久高清| 成人免费看黄| 日韩欧美在线视频一区二区 | 18在线观看国内精品视频| 伊人网五月天| 亚洲精品片| 久久精品中文字幕免费| 黄色网址视频在线观看| 成人午夜免费视频| 国产永久高清免费动作片www| 91亚洲精品在看在线观看高清| 久草在线视频免费资源观看| 欧美日韩在线视频播放 | 国产一区二区三区在线观看精品| 免费看真人a一级毛片| 日韩 国产 欧美 精品 在线| 亚洲欧美日韩精品香蕉| 女人张开腿让男人桶免费最新| 国产高清在线观看| 欧美一级淫片a免费播放口aaa| 仑乱高清在线一级播放| 中文字幕一区二区三区免费视频 | 午夜成人影视| 精品国产欧美一区二区| 在线视频日韩| 特级生活片| 国产婷婷一区二区三区| 欧美一区二区三区男人的天堂| 男女性高清爱潮视频免费观看| 99欧美精品| 国产一级淫片a免费播放口之| 日韩中文精品亚洲第三区| 精品在线播放| 色青五月天| 2018av男人天堂| 国产高清在线| 精品午夜寂寞影院在线观看| 香蕉久久综合精品首页| 成年网在线观看免费观看网址| 欧美—级v免费大片| 香蕉一区二区三区观|