全部產品
Search
文件中心

:Modbus調試工具

更新時間:Jul 13, 2024

Modbus調試工具用於測試網關能否串連指定的Modbus裝置,同時也可以測試該Modbus裝置所屬產品的物模型是否配置正確。

前提條件

  • 請您確保已建立完成邊緣執行個體,操作詳情請參見環境搭建
  • 請您確保已為邊緣執行個體分配Modbus驅動和子裝置,操作詳情請參見Modbus驅動

操作步驟

  1. 登入邊緣計算控制台
  2. 在左側導覽列中單擊邊緣執行個體
    找到已指派Modbus裝置的執行個體,單擊對應操作欄中的查看
  3. 執行個體詳情頁面裝置與驅動頁簽,單擊全部驅動下的Modbus驅動,再單擊裝置名稱右側的調試
    說明 調試功能為灰色不可用時,請在執行個體詳情頁面右上方單擊重設,重設邊緣執行個體。
    調試modbus裝置
  4. 通訊通道調試頁面,單擊添加屬性點,配置調試。
    • 線圈配置參數說明如下所示。通訊通道調試
      表 1. 線圈參數說明
      參數描述
      地址線圈的地址。十六進位,以0x開頭。

      根據您自己裝置的屬性地址設定線圈地址。例如,要調試溫度屬性,您裝置的溫度屬性地址為1,則線圈地址可設定為0x1

      屬性名稱方便閱讀的功能名稱。

      設定屬性名稱,並儲存配置後,在該調試裝置所屬產品的產品詳情頁面功能定義頁簽自訂功能地區框中,功能名稱一列中可看到已設定的屬性名稱。

      讀取功能碼用於讀取或輸入該線圈狀態的功能碼。
      寫入功能碼用於寫入該線圈的功能碼。
      說明 讀取功能碼設定為0x02(輸入狀態)的線圈不支援此功能。
      當前值顯示被調試的Modbus裝置所屬產品物模型中設定的測量值,例如光照度、溫度、濕度等的當前值。
      操作
      • 讀取:向網關發送讀取測量值的指令。網關會嘗試向該裝置發送讀取指令並將結果返回到當前值一欄。
      • 寫入:向網關發送寫入測量值的指令。網關會嘗試向該裝置發送寫入指令,並根據結果更新當前值一欄。
        說明 讀取功能碼設定為0x02(輸入狀態)時不支援寫入指令。
      • 刪除:從裝置所屬產品的物模型中刪除此線圈。
        重要 執行刪除操作,並儲存配置後,該操作會影響此產品下的所有裝置。
    • 寄存器配置參數說明如下所示。寄存器設定
      表 2. 寄存器參數說明
      參數描述
      地址屬性的起始地址。十六進位,以0x開頭。
      重要 添加多個配置項時寄存器地址不可重疊,若產生重疊,在儲存配置時會提示配置異常。

      根據您自己裝置的屬性地址設定寄存器地址。例如,要調試溫度屬性,您裝置的溫度屬性地址為1,則寄存器地址可設定為0x1

      屬性名稱方便閱讀的功能名稱。
      讀取功能碼用於讀取該寄存器的功能碼。
      寫入功能碼用於寫入該寄存器的功能碼。
      說明
      • 讀取功能碼設定為0x04(輸入寄存器)的寄存器不支援此功能。
      • 對於除int16和uint16之外的資料類型,如果想要寫入保持寄存器,請選擇0x10功能碼。
      資料類型寄存器的資料類型,可選資料類型有int16、uint16、int32、uint32、int64、uint64、float、double。不同資料類型使用的寄存器個數不同,如本文下方“各資料類型寄存器個數說明”表格所示。
      單位選擇被調試Modbus裝置的測量值單位。
      當前值顯示被調試Modbus裝置的所屬產品物模型中設定的測量值,例如光照度、溫度、濕度等的當前值。
      操作
      • 讀取:向網關發送讀取測量值的指令。網關會嘗試向該裝置發送讀取指令並將結果返回到當前值一欄。
      • 寫入:向網關發送寫入指令,輸入十進位數字。網關會嘗試向該裝置發送寫入指令,並根據結果更新當前值一欄。
        說明 讀取功能碼設定為0x04(輸入寄存器)時不支援寫入指令。
      • 進階:為寄存器配置更多配置項,參數說明請參考本文下方“進階參數配置說明”表格。
      • 刪除:從裝置所屬產品的物模型中刪除此寄存器。
        重要 執行刪除操作,並儲存配置後,該操作會影響此產品下的所有裝置。
      表 3. 進階參數配置說明
      參數描述
      交換位元組此開關控制解析寄存器內部的位元組順序。系統預設使用大端序(big-endian)的解析方式。
      • true:使用小端序(little-endian)的解析方式。
      • false:使用大端序的解析方式。

      樣本1,當寫入12345時,對應的十六進位值為0x3039,當該功能設定為false時,發送/接收順序為30 39;設定為true時,發送/接收順序為39 30。

      樣本2,若使用0x10功能碼向slaveID為1的從站發送寫入保持寄存器的RTU報文,當該功能設定為false時,報文完整內容是:01 10 02 00 01 30 39 F7 E1;設定為true時,報文完整內容是:01 10 02 00 01 39 30 33 14。

      交換寄存器此開關控制解析寄存器的順序(僅在除int16、uint16的資料類型中有效)。系統預設認為較高位的數值在較低地址的寄存器中,因此先解析較低地址的寄存器,即先發送較高位的資料。

      例如,發送int64資料類型的資料:0x1234567890ABCDEF到裝置端,會拆分成4個寄存器發送(假設上文中交換位元組設定為false),當該功能設定為false時,發送順序為12 34 56 78 90 AB CD EF;設定為true時,發送順序為CD EF 90 AB 56 78 12 34。

      縮放因子設定如何縮放裝置的未經處理資料。通常情況下,浮點運算效能較差時會以整數型表示浮點型,如果裝置使用此方案,則可以使用縮放因子縮放裝置的未經處理資料。

      例如裝置使用1234表示12.34時,縮放因子參數應當設定為0.01。此時所有向該裝置設定的數值,會被自動乘以100並發送到裝置上,當雲端或控制台設定12.34數值時,驅動會自動將12.34轉換為1234發送到裝置上。反過來,裝置發送的1234也會被驅動轉換為12.34發送到雲端或其他裝置上。

      表 4. 各資料類型寄存器個數說明
      資料類型暫用寄存器個數描述
      int16116位有符號整型
      uint16116位無符號整型
      int32232位有符號整型
      uint32232位無符號整型
      int64464位有符號整型
      uint64464位無符號整型
      float2單精確度浮點型(32位)
      double4雙精確度浮點型(64位)
  5. 配置調試完成後,單擊儲存配置,將產品的功能定義更新到伺服器中。
    系統彈出儲存成功的提示,表示資料已經儲存到伺服器中。
    說明 儲存配置後,配置項所設定的內容會在該調試裝置所屬產品的產品詳情頁面功能定義頁簽的自訂功能地區框中,產生一條自訂功能,該條自訂功能中的標識符,是在儲存配置後系統自動產生的標識符。產生原理如下所示。

    標識符是物模型中Identifier參數的值,Identifier參數是由寄存器類型_4位十六進位地址該規範產生。例如,設定配置項中的讀取功能碼為01時,寄存器類型為coilStatus;設定地址為0x00,則4位十六進位地址是0000,因此Identifier的值(即標識符)為coilStatus_0000。

其他動作

  • 重設:在配置調試頁面左下方單擊重設,可重設當前已配置的內容
  • 通道設定:在配置調試頁面右上方單擊通道設定,可修改該Modbus通訊通道的參數,設定完成後需單擊確定儲存修改。
  • 調試日誌:在通訊通道調試頁面單擊調試日誌,可查看調試日誌資訊;單擊清屏可清除該頁面日誌資訊。

功能碼與寄存器/線圈類型對應表

類型功能碼對應操作類型(operateType)
線圈(線圈狀態)0x01coilState
輸入狀態(輸入線圈)0x02inputState
保持寄存器0x03holdingRegister
輸入寄存器0x04inputRegister