現(xiàn)在對(duì)Modbus RTU做一個(gè)分析,Modbus RTU是一種國(guó)際的、開(kāi)放的現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)。MODBUS RTU 通訊協(xié)議的報(bào)文功能碼如下:
01H 讀取線圈狀態(tài)。 從執(zhí)行機(jī)構(gòu)上讀取線圈(單個(gè)位)的內(nèi)容;
02H 讀取離散量輸入。 從執(zhí)行機(jī)構(gòu)上讀取離散量輸入(多個(gè)位)的內(nèi)容;
03H 讀取保持寄存器。 從執(zhí)行機(jī)構(gòu)上讀取保持寄存器(16位字)的內(nèi)容;
04H 讀取輸入寄存器。 從執(zhí)行機(jī)構(gòu)上讀取輸入寄存器(16位字)的內(nèi)容;
05H 強(qiáng)置單線圈。 寫(xiě)數(shù)據(jù)到執(zhí)行機(jī)構(gòu)的線圈(單個(gè)位)為“通”(“1”)或
“斷”(“0”);
06H 預(yù)置單寄存器。 寫(xiě)數(shù)據(jù)到執(zhí)行機(jī)構(gòu)的單個(gè)保持寄存器(16位字);
0FH 強(qiáng)置多線圈。 寫(xiě)數(shù)據(jù)到執(zhí)行機(jī)構(gòu)的幾個(gè)連續(xù)線圈(單個(gè)位)為“通”(“1”)
或“斷”(“0”);
10H 預(yù)置多寄存器。 寫(xiě)數(shù)據(jù)到執(zhí)行機(jī)構(gòu)的幾個(gè)連續(xù)的保持寄存器(16位字)。
EB8000軟件中MODBUS協(xié)議的設(shè)備類(lèi)型為0x、1x、3x、4x、5x、6x,還有3x_bit,4x_bit,6x_bit,0x_multi_coils等,06x功能碼介紹如下:
6x:是一個(gè)可讀可寫(xiě)的設(shè)備類(lèi)型,讀取數(shù)據(jù)的時(shí)候,發(fā)出的功能碼也是03H,與4x不同之處在于寫(xiě)數(shù)據(jù)的時(shí)候發(fā)出的功能碼時(shí)06H,即寫(xiě)單個(gè)寄存器的數(shù)據(jù)。
樓主用的是06x功能碼,就是預(yù)置單寄存器的值,意思是可以在選定的變頻器地址里預(yù)置寫(xiě)入一個(gè)數(shù)值,現(xiàn)在就是在變頻器8193地址里面寫(xiě)入一個(gè)常數(shù)18。
至于那個(gè)點(diǎn)動(dòng)常數(shù)應(yīng)該怎么寫(xiě),要看具體的變頻器里面的控制參數(shù)了,那個(gè)地址對(duì)不對(duì)還是兩說(shuō)呢,具體的細(xì)節(jié),在下收集查詢資料后再來(lái)細(xì)說(shuō)。