晉江網(wǎng)站有什么職業(yè)做百度網(wǎng)站站長(zhǎng)工具
目錄
1、簡(jiǎn)介
2、消息格式
3、Modbus寄存器種類(lèi)說(shuō)明
4、功能碼01H
5、功能碼02H
6、功能碼03H
7、功能碼04H
8、功能碼05H
9、功能碼06H
10、功能碼0FH
11、功能碼10H
1、簡(jiǎn)介
- ?Modbus-RTU(Remote Terminal Unit)是一種串行通信協(xié)議,廣泛用于工業(yè)自動(dòng)化領(lǐng)域,特別是在監(jiān)控和控制設(shè)備之間進(jìn)行數(shù)據(jù)通信。
- Modbus-RTU是無(wú)狀態(tài)協(xié)議,每次通信都是獨(dú)立的,不維護(hù)通信狀態(tài)信息。
- Modbus-RTU的通信結(jié)構(gòu)是基于主從(Master-Slave)模式的。一個(gè)主設(shè)備(Master)可以控制多個(gè)從設(shè)備(Slave),只允許主設(shè)備發(fā)起請(qǐng)求,從機(jī)被動(dòng)響應(yīng)。
2、消息格式
- 高字節(jié)在前,低字節(jié)在后
3、Modbus寄存器種類(lèi)說(shuō)明
- 線圈寄存器(Coils)
- 功能:表示單個(gè)位的輸出狀態(tài),常用于DO數(shù)字量輸出,常用場(chǎng)景有控制繼電器、晶體管或其他二進(jìn)制輸出設(shè)備。
- 地址范圍:00001到09999
- 讀/寫(xiě)方式:可讀可寫(xiě)
- 數(shù)據(jù)類(lèi)型:單個(gè)位(1位)按位操作
- 功能碼:
- 讀線圈狀態(tài):功能碼 01H
- 寫(xiě)單個(gè)線圈:功能碼 05H
- 寫(xiě)多個(gè)線圈:功能碼 0FH
- 離散輸入寄存器(Discrete Inputs)
- 功能:表示單個(gè)位的輸入狀態(tài),常用于DI數(shù)字量輸入,通過(guò)外部設(shè)置改變輸入狀態(tài)。常用場(chǎng)景有按鈕開(kāi)關(guān)、光電開(kāi)關(guān)等。
- 地址范圍:10001到19999
- 讀/寫(xiě)方式:只讀
- 數(shù)據(jù)類(lèi)型:單個(gè)位(1位)按位操作
- 功能碼:
- 讀離散輸入狀態(tài):功能碼 02H
- 輸入寄存器(Input Registers)
- 功能:存儲(chǔ)連續(xù)的16位數(shù)據(jù),常用于AI模擬量輸入,控制器運(yùn)行時(shí)從外部設(shè)備獲取的參數(shù)。常用場(chǎng)景有傳感器或測(cè)量設(shè)備的輸入。
- 地址范圍:30001到39999
- 讀/寫(xiě)方式:只讀
- 數(shù)據(jù)類(lèi)型:16位(2字節(jié))按字節(jié)操作
- 功能碼:
- 讀輸入寄存器:功能碼 04H
- 保持寄存器(Holding Registers)
- 功能:存儲(chǔ)連續(xù)的16位數(shù)據(jù),常用于AO模擬量輸出,輸出參數(shù)或保持參數(shù)。常用場(chǎng)景有存儲(chǔ)設(shè)備的配置參數(shù)或輸出數(shù)據(jù)。
- 地址范圍:40001到49999
- 讀/寫(xiě)方式:可讀可寫(xiě)
- 數(shù)據(jù)類(lèi)型:16位(2字節(jié))按字節(jié)操作
- 功能碼:
- 讀保持寄存器:功能碼 03H
- 寫(xiě)單個(gè)保持寄存器:功能碼 06H
- 寫(xiě)多個(gè)保持寄存器:功能碼 10H
4、功能碼01H
- 01H:讀線圈狀態(tài)。讀取一組線圈的狀態(tài),返回一個(gè)字節(jié)數(shù)組,其中每個(gè)位表示一個(gè)線圈的狀態(tài)。
- 發(fā)送報(bào)文
- 含義:從機(jī)地址為01H,寄存器地址為0000H,讀取寄存器數(shù)量0008H為8個(gè),最后兩位為校驗(yàn)位。
- 響應(yīng)報(bào)文
- 含義:返回字節(jié)數(shù)量01H為1個(gè)字節(jié),01功能碼為按位讀取,需要把返回的數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制。
- 數(shù)據(jù)1為0FH,轉(zhuǎn)換為二進(jìn)制為:(線圈0007H-0000H)
5、功能碼02H
- 02H:讀離散輸入狀態(tài)。讀取一組離散輸入的狀態(tài),返回一個(gè)字節(jié)數(shù)組,其中每個(gè)位表示一個(gè)輸入的狀態(tài)。
- 發(fā)送報(bào)文
- 含義:從機(jī)地址為01H,寄存器地址為0000H,讀取寄存器數(shù)量0008H為8個(gè),最后兩位為校驗(yàn)位。
- 【注】這里的寄存器地址為偏移地址,邏輯地址是從10001開(kāi)始的。
- 響應(yīng)報(bào)文
- 含義:返回字節(jié)數(shù)量01H為1個(gè)字節(jié),02功能碼為按位讀取,需要把返回的數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制。
- 數(shù)據(jù)1為0FH,轉(zhuǎn)換為二進(jìn)制為:(線圈0007H-0000H)
6、功能碼03H
- 03H:讀保持寄存器。讀取一組保持寄存器的值,每個(gè)寄存器返回16位(2字節(jié))數(shù)據(jù)。
- 發(fā)送報(bào)文
- 含義:0000H寄存器開(kāi)始,讀取2個(gè)寄存器。
- 響應(yīng)報(bào)文
- 含義:返回字節(jié)數(shù)04H為4個(gè)字節(jié)(2個(gè)寄存器,一個(gè)寄存器返回2個(gè)字節(jié)),數(shù)據(jù)1為0001H(通道1),數(shù)據(jù)2為0000H(通道2)。
7、功能碼04H
- 04H:讀輸入寄存器。讀取一組輸入寄存器的值,每個(gè)寄存器返回16位(2字節(jié))數(shù)據(jù)。
- 發(fā)送報(bào)文
- 含義:0000H寄存器開(kāi)始,讀取2個(gè)寄存器。
- 響應(yīng)報(bào)文
- 含義:返回4個(gè)字節(jié),數(shù)據(jù)1為0001H,數(shù)據(jù)2為0000H。
8、功能碼05H
- 05H:寫(xiě)單個(gè)線圈。設(shè)置一個(gè)線圈的狀態(tài),寫(xiě)入一個(gè)位(0或1)。
- 發(fā)送報(bào)文和響應(yīng)報(bào)文一致
- 含義:寄存器地址為0000H,向寄存器寫(xiě)入FF00H控制線圈吸合(寫(xiě)入0000H控制線圈斷開(kāi))。
9、功能碼06H
- 06H:寫(xiě)單個(gè)保持寄存器。設(shè)置一個(gè)保持寄存器的值,寫(xiě)入16位(2字節(jié))數(shù)據(jù)。
- 發(fā)送報(bào)文和響應(yīng)報(bào)文一致
- 含義:寄存器地址為0000H,向寄存器寫(xiě)入值為0001H。
10、功能碼0FH
- 0FH:寫(xiě)多個(gè)線圈。設(shè)置多個(gè)線圈的狀態(tài),寫(xiě)入一個(gè)字節(jié)數(shù)組,其中每個(gè)位表示一個(gè)線圈的狀態(tài)。
- 發(fā)送報(bào)文
- 含義:寄存器起始地址為0000H,線圈寄存器數(shù)量為0004H,寫(xiě)入字節(jié)數(shù)為01H,寫(xiě)入數(shù)據(jù)為0FH(需要轉(zhuǎn)換為二進(jìn)制)
- 這意味著從起始地址開(kāi)始的四個(gè)線圈都要設(shè)置為1(打開(kāi))。
- 響應(yīng)報(bào)文
- 含義:寄存器起始地址為0000H,線圈寄存器數(shù)量為0004H。
11、功能碼10H
- 10H:寫(xiě)多個(gè)保持寄存器。設(shè)置多個(gè)保持寄存器的值,寫(xiě)入多個(gè)16位(2字節(jié))數(shù)據(jù)。
- 發(fā)送報(bào)文
- ???????
- 含義:寄存器起始地址為0000H,寄存器數(shù)量為2個(gè),寫(xiě)2個(gè)保持寄存器需要4個(gè)字節(jié),數(shù)據(jù)1為0001H,數(shù)據(jù)2為0001H。
- ???????
- 響應(yīng)報(bào)文
- 含義:寄存器起始地址為0000H,保持寄存器數(shù)量為2個(gè)。