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