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