modbus-RTU 擷取
1. 建立節點
Section titled “1. 建立節點”(1) 進入 CommBridge 頁面的【智慧孿生】,在左側點選切換至【裝置智聯】。

(2) 依次拖曳 Modbus 用戶端【主站】、資料處理和 MQTT 上傳外掛到外掛工作區,分別產生三個節點。

(3) 依次連線三個節點,連線順序:Modbus 用戶端【主站】 → 資料處理 → MQTT 上傳。

2. 建立方案
Section titled “2. 建立方案”協定選擇
Modbus-RTU
(1) 按兩下 Modbus 用戶端【主站】,點選【新增方案】按鈕。

(2) 填寫連線設定,點選【下一步】。

(3) 點選【新增分組】,填寫分組資訊,點選【確認】。

(4) 點選【新增資料】,填寫點位資料,點選【確認】。

(5) 點選【完成】,成功新增擷取方案。

(6) 開啟方案的開關,點選【儲存】。

3. 檢視結果
Section titled “3. 檢視結果”(1) 點選【裝置智聯】的【部署】按鈕,部署成功。

圖中展示通用的“部署”入口;本頁的節點與方案應使用前文設定的 Modbus-RTU 參數。
(2) 點選切換至【智慧孿生】,滑鼠移動至 Modbus 用戶端【主站】節點,彈出節點資訊清單。

(3) 點選方案,檢視該方案下各分組的點位即時資料和歷史資料。

4. 寫資料
Section titled “4. 寫資料”設定同Modbus-TCP的寫資料
5. 設定描述說明
Section titled “5. 設定描述說明”| 參數 | 描述 | 格式 | 舉例 |
|---|---|---|---|
| 方案名稱 | 使用者自訂該方案的名稱 | 非空 | 擷取溫度 |
| 協定 | Modbus 協定 | Modbus TCP、Modbus RTU | Modbus RTU |
| 同步擷取 | 是否同步擷取,Yes 和 No | Yes、No | YES |
| 擷取週期 | 資料讀取輪詢週期,指整個方案內的每個分組每次讀取暫存器的間隔時間 | 數字,範圍:(100,2147483647] | 2000 |
| 擷取時效性 | 分組內所有點位需在設定時間內完成擷取,否則丟棄該分組資料;該時間包含訊框延遲。 | 數字,範圍:(0, 擷取週期] | 1000 |
| 超時時間 | 指整個方案下每個分組的每次擷取資料的時間,若超過了該時間則丟棄該次讀取的資料 | 數字,範圍:(0, 擷取週期] | 1000 |
| 最大批次暫存器數 | 連續點位批次擷取時的最大批次暫存器數 | 自然數,範圍:[1,120] | 120 |
| 介面 | 根據具體裝置上的實際序列埠決定,一般執行在 RS485,插入 usb 後,介面會增加對應的名稱 | ttyS0、ttyS1 | ttyO4 |
| 資料位元 | 表示一組資料實際包含的資料位元數 | 7、8 | 8 |
| 停止位元 | 用於表示單個包的最後一位 | 1、2 | 1 |
| 同位檢查位元 | 序列埠通訊中一種簡單的驗錯方式 | Odd、Even 或 None | None |
| 鮑率 | 衡量符號傳輸速率的參數,表示每秒傳送的符號的個數 | 115200、57600、38400、19200、9600 或 4800 | 9600 |
| 訊框延遲 | 兩次擷取之間的最小間隔,0為預設值。若擷取頻繁超時可適當增大,否則無需修改。 | 單位毫秒,數字,範圍:[0, 2147483647] | 0 |
| 寫訊框延遲 | 寫資料時的額外等待時間,部分裝置寫操作較慢需設定,0表示無需額外延遲。 | 單位毫秒,數字,範圍:[0, 2147483647] | 0 |
| 寫暫存器功能碼 | 設定寫保持暫存器的功能碼。 | Auto、06、10,詳見下說明 | Auto |
| 變化擷取 | 資料擷取的方式。No:不變化擷取;SingleData: 只傳輸變化的點位;WholeGroup:組內任意資料變化後傳輸一整組資料。 | No、SingleData、WholeGroup | SingleData |
| 變化擷取重置時間 | 資料持續未變化超過該時間強制觸發一次資料提交。設定為0表示永不觸發 | 單位秒,數字,範圍:(0, 2147483647] | 0 |
| 失敗退避 | 擷取失敗後按退避率延長下次擷取時間,最長不超過擷取週期 × 最大退避率 | Yes、No,詳見下說明 | Yes |
| 退避率 | 失敗時的時間增長比率,必須大於0且不等於1 | 數字 | 2 |
| 最大退避率 | 最大退避時間比率,增長到這個比率後將保持最大比率不變。 | 數字 | 16 |
同步擷取:
- “Yes”表示整個方案下分組的擷取週期、超時時間和擷取時效性統一設定;作用範圍:整個方案內點位資料;
- “No”表示每個分組自行設定擷取週期、超時時間和擷取時效性。
寫暫存器功能碼:Auto: 寫一個暫存器時使用06,寫大於一個暫存器時使用10;06:全部使用06寫暫存器;10:全部使用10寫暫存器
失敗退避:例如擷取週期為1秒,退避率為2,最大退避率為16,那麼一直擷取失敗的等待時間會是1s, 2s, 4s, 8s, 16s。同理,如果擷取週期為10秒,退避率為0.5,最大退避率為0.1,那麼一直失敗的等待時間會是10s, 5s, 2.5s, 1.25s。一旦成功擷取將恢復初始預設的擷取週期
當退避率大於1時,最大退避率需要大於退避率,當退避率小於1時,最大退避率需要小於退避率
| 參數 | 描述 | 格式 | 舉例 |
|---|---|---|---|
| 分組名稱 | 使用者自訂該分組的名稱 | 非空 | 溫度分組一 |
| Slave ID | Modbus 裝置位址,被擷取的裝置的從位址 | 數字,範圍:(0,255] | 1 |
| 擷取週期 | 資料讀取輪詢週期,指單個分組每次讀取暫存器的間隔時間 | 數字,範圍:(100,2147483647] | 1000 |
| 擷取時效性 | 指單個分組的所有點位擷取資料的有效時間,在該時間內未讀取到分組內的所有點位資料,則丟棄該分組內的所有點位資料 | 數字,範圍:(0, 擷取週期] | 500 |
| 超時時間 | 指單個分組的每次擷取資料的時間,若超過了該時間則丟棄該次讀取的資料 | 數字,範圍:(0, 擷取週期] | 500 |
注意: 連線設定的同步擷取為 No,整個分組內的點位資料 Modbus 一次性讀取的暫存器個數有數量限制。 Holding Register 和 Input Register 暫存器一次性讀取一組連續暫存器點位個數最大是 120,Discrete 和 Coils 暫存器一次性讀取一組連續暫存器點位最大是 2000。
| 參數 | 前提 | 描述 | 格式 | 舉例 |
|---|---|---|---|---|
| 資料別名 | 點位的名稱,同一分組中是唯一的 | 非空,不能以數字、底線開頭,不能包含空格 | T | |
| 位址 | 暫存器位址,同一個分組下的位址不能相同 | 數字,範圍:(0,2147483647) | 0 | |
| 暫存器型別 | 指 Modbus 的操作碼 | Holding Register、Input Register、Discrete、Coils,詳見下說明 | Holding Register | |
| 資料型別 | 暫存器型別決定 | 暫存器資料的原始型別 | uint16、int16、uint32、int32、float、boolean、combine、string、hex string,詳見下說明 | uint16 |
| 位元組順序 | 暫存器型別和資料型別共同決定 | 指超過一個位元組的資料型別在記憶體中的儲存順序 | AB、BA、ABCD、CDAB、BADC、DCBA,詳見下說明 | AB |
| 暫存器數量 | 暫存器型別和資料型別共同決定 | 暫存器的資料型別的個數 | 詳見下說明 | 1 |
| 讀寫模式 | 暫存器型別決定 | 支援 r(唯讀)、rw(讀寫) | r、rw | r |
| 計算 | 使用者根據資料別名自訂公式 | T/10 | ||
| 偏移 | 資料型別為bit | 按照位元組順序調整後,從高位到低位的bit偏移 | 數字,範圍:[0,15] |
例如,要除錯溫度屬性,您裝置的溫度屬性位址為 1,則暫存器位址可設定為 1。
- 當暫存器型別為 Discrete、Coils 時,資料型別預設為 boolean。
- 當資料型別為 uint16、int16、combine 時,位元組順序可選擇 AB、BA;當資料型別為 uint32、int32、float 時,位元組順序可選擇 ABCD、CDAB、BADC、DCBA;其他資料型別沒有位元組順序。
- 當暫存器型別為 Discrete、Coils 時,暫存器數量預設為 1;當資料型別為 uint16、int16、boolean 時,暫存器數量預設為 1;當資料型別為 uint32、int32、float 時,暫存器數量預設為 2;當資料型別為 combine 時,暫存器數量可選擇 1、2;當資料型別為 string、hex string 時,暫存器數量可手動填寫。
16位順序:
- AB:表示1個字的暫存器,高字在前低字在後,字內高位元組在前低位元組在後(大端排序)
- BA:表示1個字的暫存器,高字在前低字在後,字內低位元組在前高位元組在後(小端排序)
32位順序:
- ABCD:表示2個字的暫存器,高字在前低字在後,字內高位元組在前低位元組在後(大端排序)
- BADC:表示2個字的暫存器,高字在前低字在後,字內低位元組在前高位元組在後(大端位元組交換)
- CDAB:表示2個字的暫存器,低字在前高字在後,字內高位元組在前低位元組在後(小端位元組交換)
- DCBA:表示2個字的暫存器,低字在前高字在後,字內低位元組在前高位元組在後(小端排序)
6. Modbus 協定相關參數說明
Section titled “6. Modbus 協定相關參數說明”modbus-RTU 相關協定設定同 modbus-TCP。