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