跳到內容
返回官網

modbus-RTU 擷取

(1) 進入 CommBridge 頁面的【智慧孿生】,在左側點選切換至【裝置智聯】。

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

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

協定選擇 Modbus-RTU

(1) 按兩下 Modbus 用戶端【主站】,點選【新增方案】按鈕。

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

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

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

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

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

(1) 點選【裝置智聯】的【部署】按鈕,部署成功。

CommBridge 部署按鈕與成功提示的介面示例

圖中展示通用的“部署”入口;本頁的節點與方案應使用前文設定的 Modbus-RTU 參數。

(2) 點選切換至【智慧孿生】,滑鼠移動至 Modbus 用戶端【主站】節點,彈出節點資訊清單。

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

設定同Modbus-TCP的寫資料

參數 描述 格式 舉例
方案名稱 使用者自訂該方案的名稱 非空 擷取溫度
協定 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

同步擷取:

  1. “Yes”表示整個方案下分組的擷取週期、超時時間和擷取時效性統一設定;作用範圍:整個方案內點位資料;
  2. “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。

  1. 當暫存器型別為 Discrete、Coils 時,資料型別預設為 boolean。
  2. 當資料型別為 uint16、int16、combine 時,位元組順序可選擇 AB、BA;當資料型別為 uint32、int32、float 時,位元組順序可選擇 ABCD、CDAB、BADC、DCBA;其他資料型別沒有位元組順序。
  3. 當暫存器型別為 Discrete、Coils 時,暫存器數量預設為 1;當資料型別為 uint16、int16、boolean 時,暫存器數量預設為 1;當資料型別為 uint32、int32、float 時,暫存器數量預設為 2;當資料型別為 combine 時,暫存器數量可選擇 1、2;當資料型別為 string、hex string 時,暫存器數量可手動填寫。

16位順序:

  1. AB:表示1個字的暫存器,高字在前低字在後,字內高位元組在前低位元組在後(大端排序)
  2. BA:表示1個字的暫存器,高字在前低字在後,字內低位元組在前高位元組在後(小端排序)

32位順序:

  1. ABCD:表示2個字的暫存器,高字在前低字在後,字內高位元組在前低位元組在後(大端排序)
  2. BADC:表示2個字的暫存器,高字在前低字在後,字內低位元組在前高位元組在後(大端位元組交換)
  3. CDAB:表示2個字的暫存器,低字在前高字在後,字內高位元組在前低位元組在後(小端位元組交換)
  4. DCBA:表示2個字的暫存器,低字在前高字在後,字內低位元組在前高位元組在後(小端排序)

modbus-RTU 相關協定設定同 modbus-TCP。