跳到內容
返回官網

Modbus TCP 擷取 Modbus Slave 的資料

使用 Modbus Slave 模擬工具模擬 Modbus TCP 從站裝置,使用 Modbus 用戶端【主站】外掛的 Modbus TCP 協定擷取模擬器的資料,將擷取到的資料進行處理之後,即時展示資料。

  • 模擬器

Modbus Slave:從裝置模擬器,主要用來模擬 Modbus 從站裝置,接收主站的命令包,回送資料包。

模擬的連線和點位資訊如下:

key name
協定(Connection) Modbus TCP/IP
IP 位址 0.0.0.0
埠號 502
Slave ID 1
暫存器型別 Holding Registers
資料型別 Unsigned
  • 裝置

    RSB-3720 裝置

  • 外掛

    Modbus 用戶端【主站】、資料處理外掛、MQTT 上傳外掛

(1) Modbus Slave 模擬三個點位資料

- 協定為 Modbus TCP;
- 暫存器型別 Holding Register;
- 資料型別為 uint16;
- 位元組順序為大端模式(AB);
- 點位位址是 0、1 和 2;

(2) 使用 Modbus TCP 協定擷取三個 Modbus 點位,資料名稱分別為“X”、“Y”和“Z”,其中“X”計算公式為 {X}/10,“Y”計算公式為 {Y}**3,“Z”計算公式為{Z}*3.1412;

(3) 根據上述規則的提供的連線方案如下:

(1) Modbus Slave 的模擬設定

1). 開啟【Modbus slave】 → 點選【File】 → 點選【New】,新增一個 Mbslave

  • No Connection:未與任何裝置連線
  • ID=1:從裝置的 Slave ID 為 1,可自訂設定
  • F=3:Function 為 03 Holding Registers(4x),選擇的值與擷取外掛中擷取設定的資料暫存器型別一致
  • 左側的數字 0-7:表示資料的位址。

2). 點選【Connection】 → 點選【Connect…】 → 填寫相關參數 → 點選【OK】

  • Connection:目前 Modbus Slave 模擬的連線協定為 Modbus TCP/IP;
  • IP Address:填寫模擬裝置的 IP,預設為 0.0.0.0(外掛實際連線時應該填寫模擬器所在的 PC 的 IP 位址);
  • Port:填寫模擬裝置的埠號,預設為 502

3). 點選【SetUp】 → 點選【Slave Definition…】 → 填寫相關參數 → 點選【OK】

  • Slave ID:從及裝置位址 ID,預設為 1
  • Funtion:暫存器型別,選擇為 03 Holding Register(4x)
  • Address:起始位址,填寫為 0
  • Quantity:暫存器數量個數,填寫為 3

4). 選擇三個點位資料 → 點選【Didplay】 → 選擇【Unsigned】

5). 按兩下第一行資料 → 填寫 value 為 88 → 點選【OK】

6). 依次填寫第二個和第三點位為 12 和 35

(2) Modbus 用戶端【主站】的擷取設定

1). 連線設定(注:方案名稱必填)

根據 Modbus Slave 模擬器的參數,設定如下:

  • 方案名稱:擷取 slave
  • 協定:Modbus TCP
  • 同步擷取:Yes
  • 擷取週期(ms):1000
  • 超時時間:500
  • 擷取時效性(ms):500

2). 新增分組

點選【新增分組】→【填寫資料】→ 點選【完成】,設定如下:

  • 分組名稱:分組一
  • Slave ID:1
  • IP:172.21.78.157
  • 埠:502

注意: IP、埠和 Slave ID 與 Modbus Slave 模擬器保持一致,其中 IP 位址就算模擬器所在裝置的 IP 位址。

3). 新增點位

點選【新增資料】→【填寫資料】→ 點選【確認】,設定如下:

  • 資料別名:X
  • 位址:0
  • 暫存器型別:Holding Registers
  • 資料型別:uint16
  • 暫存器數量:1
  • 位元組順序:AB
  • 讀寫模式:r
  • 計算:{X}/10

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

(2) 切換至【智慧孿生】,滑鼠移動到 Modbus 用戶端【主站】節點 → 點選【擷取 slave】→ 檢視擷取到的【即時資料】。

(3) 滑鼠移動到資料處理節點 → 點選【擷取 slave】→ 檢視處理後的【即時資料】.