DC3 Modbus Tcp 驱动模块 #

位置:iot-dc3\dc3-driver\dc3-driver-modbus-tcp

依赖服务(参考Idea开发环境启动即可):dc3-mysql、dc3-mongo、dc3-redis、dc3-rabbitmq、dc3-center-register、dc3-center-manager、dc3-center-data、dc3-center-auth、dc3-center-gateway、iot-dc3-web

开源工具:Spring Cloud、Modbus4j

Modbus Tcp:MODBUS/TCP 使 MODBUS_RTU 协议运行于以太网,MODBUS TCP使用 TCP/IP 和以太网在站点间传送 MODBUS 报文,MODBUS TCP 结合了以太网物理网络和网络标准 TCP/IP以及以 MODBUS 作为应用协议标准的数据表示方法。MODBUS TCP 通信报文被封装于以太网 TCP/IP 数据包中。与传统的串口方式,MODBUS TCP 插入一个标准的 MODBUS 报文到 TCP 报文中,不再带有数据校验和地址。

配置文件 #

位置:iot-dc3\dc3-driver\dc3-driver-modbus-tcp\src\main\resources\application.yml

1. driver.driver-attribute #

driver-attribute 用于配置连接一个 Modbus Tcp 服务所需要的基本参数

连接一个 Modbus Tcp 服务需要:主机、端口,那么 dc3-modbus-tcp 驱动模块此处的 driver-attribute 就应该如下:

  driver-attribute:
    - displayName: 主机
      name: host
      type: string
      value: localhost
      description: Modbus IP
    - displayName: 端口
      name: port
      type: int
      value: 502
      description: Modbus Port

2. driver.point-attribute #

point-attribute 用于配置读取一个 Modbus Tcp 点位值所需要的基本参数

读取一个 Modbus Tcp 服务的点位值需要:从站编号、功能码、偏移量信息,那么 dc3-modbus-tcp 驱动模块此处的 point-attribute 就应该如下:

  point-attribute:
    - displayName: 从站编号
      name: slaveId
      type: int
      value: 1
      description: 从站编号
    - displayName: 功能码
      name: functionCode
      type: int
      value: 1
      description: 功能码 [1、2、3、4]
    - displayName: 偏移量
      name: offset
      type: int
      value: 0
      description: 偏移量

3. driver.schedule #

schedule 用于设置 读 和 自定义方法的调度

read:用于配置周期性调用 iot-dc3\dc3-driver\dc3-driver-modbus-tcp\src\main\java\com\dc3\driver\service\impl\DriverCustomServiceImpl.java (read方法)

custom:用于配置周期性调用 iot-dc3\dc3-driver\dc3-driver-modbus-tcp\src\main\java\com\dc3\driver\service\impl\DriverCustomServiceImpl.java(schedule方法)

enable:是否启动

corn:corn 表达式,用于设置调度规则

  schedule:
    read:
      enable: true
      corn: '0/30 * * * * ?'

小试牛刀 #

1. 启动依赖服务 #

  • 参考Idea开发环境启动 dc3-mysql、dc3-mongo、dc3-redis、dc3-rabbitmq、dc3-center-register、dc3-center-manager、dc3-center-data、dc3-center-auth、iot-dc3-web
  • 启动 dc3-driver-modbus-tcp

2. 启动 Modbus Tcp 调试工具 #

安装并启动 Modbus Slave 软件

下载链接:百度云盘 Modbus Slave (opens new window)

验证码:eatt

3. 启动驱动 #

切换到 ''驱动" 菜单,当前 Modbus Tcp 启动启动成功,并处于 在线 状态

4. 模板 #

切换到 “模板” 菜单,新建一个Modbus测试模板 ,如下

点击''编辑'',下一步切换到"模板位号配置",新增一个名为"tag-int"的字符串类型位号

5. 设备配置 #

首先新建一个设备绑定驱动和模板,如下

点击"编辑",下一步切换到 “驱动属性配置” ,配置一个连接到 第2步启动的 Modbus Tcp 模拟服务 的驱动属性配置,如下

  • 主机 属性值为:localhost,以 Modbus Slave 启动为主,这里的可以设置为同一局域网下的其他电脑启动的模拟器,下图就不是本机启动的模拟器

  • 端口 属性值为:502,以 Modbus Slave 启动为主

6. 位号属性配置 #

下一步切换到 “位号属性配置” ,为刚刚新建的 模板 配置待读取的 位号,这里以一个 Integer 类型的为例,如下

同时也需要在 Modbus Slave 软件中设置一下

  • 从站编号:模拟器中的 ID
  • 功能码:模拟器中的 F
  • 偏移量:模拟器中的 0-9

如下图所示

7. 查看数据 #

切换到 “设备” 菜单,点击详情->设备数据,30秒左右会采集一个值

上次更新: 2023/10/16 17:24:39