日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計 | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> PLC基礎(chǔ)入門教程 >> 正文

MODBUS-TCP協(xié)議講解,Modbus TCP相比較Modbus RTU的優(yōu)勢

作者:佚名    文章來源:本站原創(chuàng)    點擊數(shù):    更新時間:2023/8/25

一、Modbus TCP通信概述


MODBUS/TCP是簡單的、中立廠商的用于管理和控制自動化設(shè)備的MODBUS系列通訊協(xié)議的派生產(chǎn)品,顯而易見,它覆蓋了使用TCP/IP協(xié)議的“Intranet”和“Internet”環(huán)境中MODBUS報文的用途。協(xié)議的最通用用途是為諸如PLC,I/O模塊,以及連接其它簡單域總線或I/O模塊的網(wǎng)關(guān)服務(wù)的。


MODBUS-TCP協(xié)議講解 

Modbus TCP協(xié)議是在RTU協(xié)議前面添加MBAP報文頭,由于TCP是基于可靠連接的服務(wù),RTU協(xié)議中的CRC校驗碼就不再需要,所以在Modbus TCP協(xié)議中是沒有CRC校驗碼。(使用上的主要區(qū)別)。MBAP報文頭:

 

事務(wù)處理標(biāo)識 ( 2字節(jié) ) 協(xié)議標(biāo)識( 2字節(jié) ) 長度( 2字節(jié) ) 單元標(biāo)識符(1字節(jié) )

 

二. 通訊所使用的以太網(wǎng)參考模型


Modbus TCP傳輸過程中使用了TCP/IP以太網(wǎng)參考模型的5層:

 

第一層:物理層,提供設(shè)備物理接口,與市售介質(zhì)/網(wǎng)絡(luò)適配器相兼容

 

第二層:數(shù)據(jù)鏈路層,格式化信號到源/目硬件址數(shù)據(jù)幀

 

第三層:網(wǎng)絡(luò)層,實現(xiàn)帶有32位IP址IP報文包

 

第四層:傳輸層,實現(xiàn)可靠性連接、傳輸、查錯、重發(fā)、端口服務(wù)、傳輸調(diào)度

 

第五層:應(yīng)用層,Modbus協(xié)議報文

 

三. Modbus TCP數(shù)據(jù)幀


由于使用以太網(wǎng)TCP/IP數(shù)據(jù)鏈路層的校驗機制而保證了數(shù)據(jù)的完整性,MODBUS TCP 報文中不再帶有數(shù)據(jù)校驗”CHECKSUM”,原有報文中的“ADDRESS”也被“UNIT ID”替代而加在MODBUS應(yīng)用協(xié)議報文頭中。

 

由MBAP 頭和PDU 構(gòu)成, MBAP= Modbus Application Protocol Header(Modbus應(yīng)用協(xié)議) 頭部

 

PDU = Protocol Data Unit (數(shù)據(jù)單元)


 

ADU:Application Data Unit

 

四. Modbus TCP使用的通訊資源端口號


在Modbus服務(wù)器中按缺省協(xié)議使用Port 502 通信端口,在Modbus客戶器程序中設(shè)置任意通信端口,為避免與其他通訊協(xié)議的沖突一般建議2000開始可以使用。

 

五. Modbus TCP使用的功能代碼


按照使用的通途區(qū)分,共有3種類型分別為:

 

1) 公共功能代碼:已定義好功能碼,保證其唯一性,由Modbus.org認可;

 

2) 用戶自定義功能代碼有兩組,分別為65~72和100~110,無需認可,但不保證代碼使用唯一性,如變?yōu)楣泊a,需交RFC認可;

 

3) 保留功能代碼,由某些公司使用某些傳統(tǒng)設(shè)備代碼,不可作為公共用途。

 

modbus的操作對象有四種:線圈、離散輸入、輸入寄存器、保持寄存器

 

線圈:PLC的輸出位,開關(guān)量,在MODBUS中可讀可寫

離散量:PLC的輸入位,開關(guān)量,在MODBUS中只讀

輸入寄存器:PLC中只能從模擬量輸入端改變的寄存器,在MODBUS中只讀

保持寄存器:PLC中用于輸出模擬量信號的寄存器,在MODBUS中可讀可寫

根據(jù)對象的不同,modbus的功能碼有:

 

0x01:讀線圈

0x02:讀離散量輸入

0x03:讀保持寄存器

 

0x04:讀輸入寄存器

 

0x05:寫單個線圈

0x06:寫單個保持寄存器

0x10:寫多個保持寄存器

0x0F:寫多個線圈

 

按照應(yīng)用深淺,可分為3個類別:

 

1) 類別0,客戶機/服務(wù)器最小可用子集:讀多個保持寄存器(fc.3);寫多個保持寄存器(fc.16)。

 

2) 類別1,可實現(xiàn)基本互易操作常用代碼:讀線圈(fc.1);讀開關(guān)量輸入(fc.2);讀輸入寄存器(fc.4);寫線圈(fc.5);寫單一寄存器(fc.6)。

 

3) 類別2,用于人機界面、監(jiān)控系統(tǒng)例行操作和數(shù)據(jù)傳送功能:強制多個線圈(fc.15);讀通用寄存器(fc.20);寫通用寄存器(fc.21);屏蔽寫寄存器(fc.22);讀寫寄存器(fc.23)。

 

六. Modbus TCP通訊應(yīng)用舉例


在讀寄存器的過程中,以Modbus TCP請求報文為例,具體的數(shù)據(jù)傳輸過程如下:

 

1) Modbus TCP客戶端實況,用Connect()命令建立目標(biāo)設(shè)備TCP 502端口連接數(shù)據(jù)通信過程;

 

2) 準(zhǔn)備Modbus報文,包括7個字節(jié)MBAP內(nèi)請求;

 

3) 使用send()命令發(fā)送;

 

4) 同一連接等待應(yīng)答;

 

5) 同recv()讀報文,完成一次數(shù)據(jù)交換過程;

 

6) 當(dāng)通信任務(wù)結(jié)束時,關(guān)閉TCP連接,使服務(wù)器可以為其他服務(wù)。

 

七. Modbus TCP相比較Modbus RTU的優(yōu)勢


1) 當(dāng)多個網(wǎng)關(guān)共同接一個后臺服務(wù)器,而一個網(wǎng)關(guān)下掛接多個485設(shè)備時,如果不同的網(wǎng)關(guān)掛接同樣地址號的485設(shè)備時那么后臺服務(wù)器無法區(qū)分是哪個485從設(shè)備,并且最多只能限制485設(shè)備個數(shù)254個,而modbus-tcp協(xié)議包含自定義報文頭4個字節(jié)和數(shù)據(jù)長度,我們可以通過報文頭標(biāo)識不同的網(wǎng)關(guān)或者通過數(shù)據(jù)長度區(qū)分,從而增加了可拓展的485設(shè)備個數(shù),很好的解決了問題。

 

2) 目前Modbus TCP/IP協(xié)議主要應(yīng)用領(lǐng)域Internet或Intranet中,而以太網(wǎng)傳輸距離遠、傳輸速度快,使得應(yīng)用范圍廣泛傳輸距離遠、傳輸速度快,使得應(yīng)用范圍廣泛。

 

Tags:modbus-tcp,TCP協(xié)議  
責(zé)任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網(wǎng)友評論
推薦文章
最新推薦
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢