引用
引用第4樓qq771621929于2023-02-01 13:29發表的 :
就是modbusRTU通訊,讀的丹佛斯變頻器,1200里面取位很簡單,SMART200還沒用過
1200我只會打開博圖組態然后弄個起保停啥的,不知道1200的MODBUS RTU的庫是不是和200SMART一樣。
以下是200SMART說明文檔里邊關于MBUS_MSG指令里邊的一段解釋。你可以看一下。
參數“計數”(Count) 用于分配要在該請求中讀取或寫入的數據元素數。對于位數據類型,“Count”是位數,對于字數據類型,則表示字數。
對于地址 0xxxx,“計數”(Count) 是要讀取或寫入的位數
對于地址 1xxxx,“計數”(Count) 是要讀取的位數
對于地址 3xxxx,“計數”(Count) 是要讀取的輸入寄存器字數
對于地址 4xxxx 或 4yyyyy,“計數”(Count) 是要讀取或寫入的保持寄存器字數
MBUS_MSG/MB_MSG2 指令最多讀取或寫入 120 個字或 1920 個位(240 個字節的數據)。Count 的實際限值取決于 Modbus 從站設備的限制。
參數 DataPtr 是間接地址指針,指向 CPU 中與讀/寫請求相關的數據的 V 存儲器。對于讀請求,將 DataPtr 設置為用于存儲從 Modbus 從站讀取的數據的第一個 CPU 存儲單元。對于寫請求,將 DataPtr 設置為要發送到 Modbus 從站的數據的第一個 CPU 存儲單元。
程序將 DataPtr 值以間接地址指針的形式傳遞到 MBUS_MSG/MB_MSG2。例如,如果要寫入到 Modbus 從站設備的數據始于 CPU 的地址 VW200,則 DataPtr 的值將為 &VB200(地址 VB200)。指針必須始終是 VB 類型,即使它們指向字數據。
DataPtr 這個指針指向的存儲空間就是“字”。你可以監控一下。比如你在 DataPtr 這個管腳填寫的是&VB200,那你就在狀態圖表里監控VW200,這個就是你讀取到的字。然后你想讀取哪個位就分開監控哪個位唄。V200.0,V200.1,V200.2等等。