跳转到内容
返回官网

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】→ 查看处理后的【实时数据】.