MODBUS_RTU通信協(xié)議
熱門標(biāo)簽:
MODBUS_RTU通信協(xié)議 2021-10-27 16:27:32 MODBUS_RTU通信協(xié)議 0

Modbus是一種串行通信協(xié)議,是Modicon公司(現(xiàn)在的施耐德電氣Schneider Electric)于1979年為使用可編程邏輯控制器(PLC)通信而發(fā)表。Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn)(De facto),并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式。

廣泛的系統(tǒng)集成:

PDM系列儀表/變送器提供了標(biāo)準(zhǔn)的RS-485/422通訊接口及ModBus通訊協(xié)議,這個通訊協(xié)議已廣泛被國內(nèi)外電力行業(yè)及工控行業(yè)作為系統(tǒng)集成的標(biāo)準(zhǔn)。

通訊數(shù)據(jù)的類型及格式

信息傳輸為異步方式,并以字節(jié)為單位。在主站和從站之間傳遞的通訊信息是11位的字格式

4.png

?      通訊數(shù)據(jù)(信息幀)格式

5.png

通訊信息傳輸過程

當(dāng)通訊命令由發(fā)送設(shè)備(主機(jī))發(fā)送至接收設(shè)備(從機(jī))時,符合相應(yīng)地址碼的從機(jī)接收通訊命令,并根據(jù)功能碼及相關(guān)要求讀取信息,如果CRC校驗(yàn)無誤,則執(zhí)行相應(yīng)的任務(wù),然后把執(zhí)行結(jié)果(數(shù)據(jù))返送給主機(jī)。返回的信息中包括地址碼、功能碼、執(zhí)行后的數(shù)據(jù)以及CRC校驗(yàn)碼。如果CRC校驗(yàn)出錯就不返回任何信息。

1.1 地址碼:

地址碼是每次通訊信息幀的第一字節(jié)(8位),從0到255。這個字節(jié)表明由用戶設(shè)置地址的從機(jī)將接收由主機(jī)發(fā)送來的信息。每個從機(jī)都必須有唯一的地址碼,并且只有符合地址碼的從機(jī)才能響應(yīng)回送信息。當(dāng)從機(jī)回送信息時,回送數(shù)據(jù)均以各自的地址碼開始。主機(jī)發(fā)送的地址碼表明將發(fā)送到的從機(jī)地址,而從機(jī)返回的地址碼表明回送的從機(jī)地址。相應(yīng)的地址碼表明該信息來自于何處。

1.2 功能碼:

是每次通訊信息幀傳送的第二個字節(jié)。ModBus通訊規(guī)約可定義的功能碼為1到127。PDM系列儀表/變送器僅用到其中的一部分功能碼。作為主機(jī)請求發(fā)送,通過功能碼告訴從機(jī)應(yīng)執(zhí)行什么動作。作為從機(jī)響應(yīng),從機(jī)返回的功能碼與從主機(jī)發(fā)送來的功能碼一樣,并表明從機(jī)已響應(yīng)主機(jī)并且已進(jìn)行相關(guān)的操作。

 MODBUS部分功能碼

1.3 數(shù)據(jù)區(qū):

6.png

數(shù)據(jù)區(qū)包括需要由從機(jī)返送何種信息或執(zhí)行什么動作。這些信息可以是數(shù)據(jù)(如:開關(guān)量輸入/輸出、模擬量輸入/輸出、寄存器等等)、參考地址等。例如,主機(jī)通過功能碼03告訴從機(jī)返回寄存器的值(包含要讀取寄存器的起始地址及讀取寄存器的長度),則返回的數(shù)據(jù)包括寄存器的數(shù)據(jù)長度及數(shù)據(jù)內(nèi)容。對于不同的從機(jī),地址和數(shù)據(jù)信息都不相同(應(yīng)給出通訊信息表)。

PDM系列儀表/變送器采用Modbus通訊規(guī)約,主機(jī)(PLC、RTU、PC機(jī)、DCS等)利用通訊命令(功能碼03),可以任意讀取其數(shù)據(jù)寄存器(其數(shù)據(jù)信息表詳見附錄)。PDM系列儀表/變送器的數(shù)據(jù)寄存器存儲的電量多達(dá)幾百個(如:電流、電壓、功率、0~31次諧波分量等),并且都是16位(2字節(jié))的二進(jìn)制數(shù)據(jù),并且高位在前;一次最多可讀取寄存器數(shù)(既各種電量的數(shù)量)是50個。

PDM響應(yīng)的命令格式是從機(jī)地址、功能碼、數(shù)據(jù)區(qū)及CRC碼。數(shù)據(jù)區(qū)的數(shù)據(jù)都是兩個字節(jié),并且高位在前(電能量除外)。

MODBUS功能碼簡介

功能碼“02”:讀1路或多路開關(guān)量狀態(tài)輸入例如:主機(jī)要讀取地址為01,開關(guān)量DI1—DI4的輸入狀態(tài)。

從機(jī)(PDM)數(shù)據(jù)寄存器的地址和數(shù)據(jù)為

7.png

 

主機(jī)發(fā)送的報(bào)文格式:

8.png

從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:

9.png

功能碼“01”:讀1路或多路開關(guān)量輸出狀態(tài)

例如:主機(jī)要讀取地址為01,開關(guān)量DO1,DO2的輸出狀態(tài)。

從機(jī)(PDM)數(shù)據(jù)寄存器的地址和數(shù)據(jù)為

10.png

主機(jī)發(fā)送的報(bào)文格式:

11.png

從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:

12.png

2.3 功能碼“03”:讀多路寄存器輸入

例如:主機(jī)要讀取地址為01,起始地址為0116的3個從機(jī)寄存器數(shù)據(jù)。

從機(jī)(PDM)數(shù)據(jù)寄存器的地址和數(shù)據(jù)為:

 

14.png


主機(jī)發(fā)送的報(bào)文格式:

從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:

15.png

錯誤校驗(yàn)碼(CRC校驗(yàn))

主機(jī)或從機(jī)可用校驗(yàn)碼進(jìn)行判別接收信息是否正確。由于電子噪聲或一些其它干擾,信息在傳輸過程中有時會發(fā)生錯誤,錯誤校驗(yàn)碼(CRC)可以檢驗(yàn)主機(jī)或從機(jī)在通訊數(shù)據(jù)傳送過程中的信息是否有誤,錯誤的數(shù)據(jù)可以放棄(無論是發(fā)送還是接收),這樣增加了系統(tǒng)的安全和效率。

 MODBUS通訊協(xié)議的CRC(冗余循環(huán)碼)包含2個字節(jié),即16位二進(jìn)制數(shù)。CRC碼由發(fā)送設(shè)備(主機(jī))計(jì)算,放置于發(fā)送信息幀的尾部。接收信息的設(shè)備(從機(jī))再重新計(jì)算接收到信息的CRC,比較計(jì)算得到的CRC是否與接收到的相符,如果兩者不相符,則表明出錯。


相關(guān)問答:
客服
客服
電話
電話
4000-780-190
樣機(jī)申請
樣機(jī)申請
0
頂部
頂部