97人妻精品一区二区三区软件,人妻偷拍在线,插丝袜美女小穴视频,美女午夜福利在线

      • <i id="89dc3"></i>
        當(dāng)前位置: 首頁 >應(yīng)用方案 >技術(shù)應(yīng)用 >

        Modbus通訊協(xié)議詳解與RTU通信實例演示教程

        Modbus通訊協(xié)議詳解

        Modbus RTU通訊協(xié)議在數(shù)據(jù)通訊上采用主從應(yīng)答的方式進行。只能由主機(PC,HMI等)通過唯一從機地址發(fā)起請求,從機(終端設(shè)備)根據(jù)主機請求進行響應(yīng),即半雙工通訊。該協(xié)議只允許主機發(fā)起請求,從機進行被動響應(yīng),因此從機不會主動占用通訊線路造成數(shù)據(jù)沖突。

        類似Modbus RTU協(xié)議的主從應(yīng)答協(xié)議還有西門子的PPI、電表常用的DL/T645-2007等協(xié)議。

        一、modbus協(xié)議格式

        信息傳輸為異步方式,使用16進制進行通訊,信息幀格式:


        地址碼

        功能碼

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

        CRC校驗碼

        1字節(jié)

        1字節(jié)

        N字節(jié)

        2字節(jié)


        地址碼

        地址碼是每個通訊信息幀的第一個字節(jié),一般支持1247,部分設(shè)備也支持0地址,用于接收主機的廣播數(shù)據(jù),每個從機在總線上地址必須唯一,只有與主機發(fā)送的地址碼相符的從機才能響應(yīng)返回數(shù)據(jù)。

        功能碼

        功能碼是每個通訊信息幀的第二個字節(jié)。主機發(fā)送,通過功能碼告知從機設(shè)備應(yīng)當(dāng)執(zhí)行何種操作。

        常見的八種功能碼:

        功能碼

        定義

        操作

        01H

        讀取線圈

        讀取一個或多個連續(xù)線圈狀態(tài)

        05H

        寫單個線圈

        操作指定位置的線圈狀態(tài)

        0FH

        寫多個線圈

        操作多個連續(xù)線圈狀態(tài)

        02H

        讀取離散量輸入

        讀取一個或多個連續(xù)離散輸入狀態(tài)

        04H

        讀取輸入寄存器

        讀取一個或多個連續(xù)輸入寄存器數(shù)據(jù)

        03H

        讀保持寄存器

        讀取一個或多個保持寄存器數(shù)據(jù)

        06H

        寫單個保持寄存器

        把兩個十六進制數(shù)據(jù)寫入對應(yīng)位置

        10H

        寫多個保持寄存器

        4*N個十六進制數(shù)據(jù)寫入N個連續(xù)保持寄存器

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

        數(shù)據(jù)區(qū)隨功能碼以及數(shù)據(jù)方向的不同而不同,這些數(shù)據(jù)可以是“寄存器首地址+讀取寄存器數(shù)量”、“寄存器地址+操作數(shù)據(jù)”、“寄存器首地址+操作寄存數(shù)量+數(shù)據(jù)長度+數(shù)據(jù)”等不同的組合,在“功能碼分析”詳解不同功能碼的數(shù)據(jù)區(qū)。

        Modbus CRC校驗

        Modbus RTU協(xié)議常用與工業(yè)現(xiàn)場對數(shù)據(jù)傳輸?shù)姆€(wěn)定性和正確性有較高的要求,因此通過CRC校驗保證數(shù)據(jù)傳輸?shù)恼_性和完整性。

        二、錯誤反饋

        地址與CRC校驗錯誤并不會收到從機的數(shù)據(jù)反饋,其他錯誤將向主機返回錯誤碼。數(shù)據(jù)幀的第二位加上0X80表示請求發(fā)生錯誤(非法功能碼、非法數(shù)據(jù)值等),錯誤數(shù)據(jù)幀如下:

        地址碼

        功能碼

        錯誤碼

        CRC校驗碼

        1字節(jié)

        1字節(jié)

        1字節(jié)

        2字節(jié)

        常見錯誤碼如下:

        名稱

        說明

        01H

        非法的功能碼

        不支持該功能碼操作寄存器

        02H

        非法的寄存器地址

        訪問設(shè)備禁止訪問的寄存器

        03H

        非法的數(shù)據(jù)值

        寫入不支持的參數(shù)值

        04H

        從機故障

        設(shè)備工作異常

        三、通訊信息傳輸過程

        通訊命令由主機發(fā)送從機時,與主機發(fā)送的地址碼相符的從機接收通訊命令,如果CRC校驗無誤,則執(zhí)行相應(yīng)的操作,然后把執(zhí)行結(jié)果(數(shù)據(jù))返回給主機。返回信息中包含地址碼、功能碼、執(zhí)行后的數(shù)據(jù)以及CRC校驗碼。如果地址不匹配或者CRC校驗出錯就不返回任何信息。

        四、功能碼分析

        功能碼01H:讀線圈

        例如:主機要讀取從機地址為01H,起始線圈地址為00H1個線圈狀態(tài),主機發(fā)送:

        主機發(fā)送

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        01

        起始線圈地址

        高字節(jié)

        00

        低字節(jié)

        00

        線圈數(shù)量

        高字節(jié)

        00

        低字節(jié)

        01

        CRC校驗

        低字節(jié)

        FD

        高字節(jié)

        CA

        如果從機寄存器00H線圈閉合,從機返回:

        從機返回

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        01

        字節(jié)數(shù)

        01

        線圈狀態(tài)

        01

        CRC校驗碼

        低字節(jié)

        90

        高字節(jié)

        48

        仿真演示:

        modbus RTU協(xié)議單線圈

        功能碼0FH:寫多個線圈

        例如:主機要控制從機地址為01H,起始線圈地址為00H4個線圈狀態(tài),主機發(fā)送:

        主機發(fā)送

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        0F

        起始線圈地址

        高字節(jié)

        00

        低字節(jié)

        00

        線圈數(shù)量

        高字節(jié)

        00

        低字節(jié)

        04

        寫入字節(jié)數(shù)

        01

        控制方式

        00(全部斷開)、0F(全部閉合)

        CRC校驗

        低字節(jié)

        XX

        高字節(jié)

        XX

        功能碼0FH操作,從機返回:

        從機返回

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        0F

        起始線圈地址

        高字節(jié)

        00

        低字節(jié)

        00

        線圈數(shù)量

        高字節(jié)

        00

        低字節(jié)

        04

        CRC校驗

        低字節(jié)

        54

        高字節(jié)

        08

        仿真演示:

        mudbus協(xié)議多線圈

        功能碼02H:讀離散輸入

        例如:主機要讀取從機地址為01H,起始離散量地址為00H4個輸入狀態(tài),主機發(fā)送:

        主機發(fā)送

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        02

        起始離散量地址

        高字節(jié)

        00

        低字節(jié)

        00

        讀取數(shù)量

        高字節(jié)

        00

        低字節(jié)

        04

        CRC校驗

        低字節(jié)

        79

        高字節(jié)

        C9

        如果從機首地址00H開始的4離散輸入全部檢測到輸入,從機返回:

        從機返回

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        02

        字節(jié)數(shù)

        01

        離散輸入狀態(tài)

        0F

        CRC校驗碼

        低字節(jié)

        E1

        高字節(jié)

        8C

        仿真演示:

        moudbus通信協(xié)議輸入

        功能碼04H:讀取輸入寄存器

        例如:主機要讀取從機地址為01H,起始寄存器地址為02H1個輸入寄存器數(shù)據(jù),主機發(fā)送:

        主機發(fā)送

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        04

        起始寄存器地址

        高字節(jié)

        00

        低字節(jié)

        02

        寄存器數(shù)量

        高字節(jié)

        00

        低字節(jié)

        01

        CRC校驗

        低字節(jié)

        90

        高字節(jié)

        0A

        如果從機輸入寄存器02H的數(shù)據(jù)為3344H,從機返回:

        從機返回

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        04

        字節(jié)數(shù)

        02

        寄存器05H數(shù)據(jù)

        高字節(jié)

        33

        低字節(jié)

        44

        CRC校驗碼

        低字節(jié)

        AD

        高字節(jié)

        F3

        仿真演示:

        modbus通信協(xié)議寄存器輸入

        功能碼03H:讀保持寄存器

        例如:主機要讀取從機地址為01H,起始寄存器地址為05H2個保持寄存器數(shù)據(jù),主機發(fā)送:

        主機發(fā)送

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        03

        起始寄存器地址

        高字節(jié)

        00

        低字節(jié)

        05

        寄存器數(shù)量

        高字節(jié)

        00

        低字節(jié)

        02

        CRC校驗

        低字節(jié)

        D4

        高字節(jié)

        0A

        如果從機保持寄存器05H、06H的數(shù)據(jù)為1122H、3344H,從機返回:

        從機返回

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        03

        字節(jié)數(shù)

        04

        寄存器05H數(shù)據(jù)

        高字節(jié)

        11

        低字節(jié)

        22

        寄存器06H數(shù)據(jù)

        高字節(jié)

        33

        低字節(jié)

        44

        CRC校驗碼

        低字節(jié)

        4B

        高字節(jié)

        C6


        仿真演示:

        modbus RTU協(xié)議保持寄存器

        功能碼06H:寫單個保持寄存器

        例如:主機寫入9988H的數(shù)據(jù)給從機地址為01H,寄存器地址為0050H的寄存器,主機發(fā)送:

        主機發(fā)送

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        06

        寄存器地址

        高字節(jié)

        00

        低字節(jié)

        50

        寫入值

        高字節(jié)

        99

        低字節(jié)

        88

        CRC校驗

        低字節(jié)

        E3

        高字節(jié)

        ED

        從機返回與主機請求相同;

        modbus協(xié)議單個保持寄存器

        功能碼10H:寫多個保持寄存器

        例如:主機要把數(shù)據(jù)0005H、2233H保存到從機地址為01H,起始寄存器地址為0020H2個寄存器中,主機發(fā)送:

        主機發(fā)送

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        10

        起始寄存器地址

        高字節(jié)

        00

        低字節(jié)

        20

        寄存器數(shù)量

        高字節(jié)

        00

        低字節(jié)

        02

        寫入字節(jié)數(shù)

        04

        0000H

        寄存器待寫入

        高字節(jié)

        00

        低字節(jié)

        05

        0001H

        寄存器待寫入

        高字節(jié)

        22

        低字節(jié)

        33

        CRC校驗

        低字節(jié)

        B9

        高字節(jié)

        03

        功能碼10H操作,從機返回:

        從機返回

        發(fā)送數(shù)據(jù)(HEX

        地址碼

        01

        功能碼

        10

        起始寄存器地址

        高字節(jié)

        00

        低字節(jié)

        20

        寄存器數(shù)量

        高字節(jié)

        00

        低字節(jié)

        02

        CRC校驗

        低字節(jié)

        40

        高字節(jié)

        02

        仿真演示:

        modbs多保持寄存器

        今天的分享就到這里啦,億佰特人每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的官網(wǎng)進行了解,還有客服小姐姐在線答疑哦!


        點擊撥打: 億佰特官網(wǎng) 4000-330-990