DC3 Opc Ua 驱动模块 #

WARNING

当前文档可能落后于最新版本,具体请以代码为准

位置:iot-dc3\dc3-driver\dc3-driver-opc-ua

依赖服务(参考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、Eclipse Milo

OPC UA:Unified Architecture,统一架构,是下一代的OPC 标准,通过提供一个完整的,安全和可靠的跨平台的架构,以获取实时和历史数据和时间。它是基于OPC基金会提供的新一代技术,提供安全,可靠和独立于厂商的,实现原始数据和预处理的信息从制造层级到生产计划或ERP层级的传输。通过OPC UA,所有需要的信息在任何时间,任何地点对每个授权的应用,每个授权的人员都可用。这种功能独立于制造厂商的原始应用,编程语言和操作系统。 OPC UA是目前已经使用的OPC 工业标准的补充,提供重要的一些特性,包括如平台独立性,扩展性,高可靠性和连接互联网的能力。 OPC UA不再依靠DCOM,而是基于面向服务的架构(SOA),OPC UA的使用更简便。现在,OPC UA已经成为独立于微软,UNIX或其他的操作系统企业层和嵌入式自动组建之间的桥梁。

配置文件 #

位置:iot-dc3\dc3-driver\dc3-driver-opc-ua\src\main\resources\application.yml

1. driver.driver-attribute #

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

连接一个 Opc Ua 服务需要:主机、端口、路径信息,那么 dc3-opc-ua 驱动模块此处的 driver-attribute 就应该如下:

  driver-attribute:
    - displayName: 主机
      name: host
      type: string
      value: localhost
      description: Opc Ua IP
    - displayName: 端口
      name: port
      type: int
      value: 18600
      description: Opc Ua Port
    - displayName: 路径
      name: path
      type: string
      value: /
      description: Opc Ua Path

2. driver.point-attribute #

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

读取一个 Opc Ua 服务的点位值需要:命名空间、点位名称信息,那么 dc3-opc-ua 驱动模块此处的 point-attribute 就应该如下:

  point-attribute:
    - displayName: 命名空间
      name: namespace
      type: int
      value: 5
      description: 命名空间索引
    - displayName: 位号
      name: tag
      type: string
      value: TAG
      description: 位号名称

3. driver.schedule #

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

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

custom:用于配置周期性调用 iot-dc3\dc3-driver\dc3-driver-opc-ua\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-opc-ua

2. 启动 Opc Ua 调试工具 #

安装并启动 Prosys OPC UA Simulation Server 软件

下载链接:百度云盘 Prosys OPC UA Simulation Server (opens new window)

验证码:5ffs

3. 驱动 #

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

4. 驱动属性 #

切换到 ''驱动属性" 菜单,当前 驱动属性 列表如下

5. 位号属性 #

切换到 “位号属性” 菜单,当前 位号属性 列表如下

6. 模板 #

切换到 “模板” 菜单,新建一个 私有OpcUaProfile 模板,如下

7. 驱动配置 #

切换到 “驱动配置” 菜单,为刚刚新建的 模板 配置一个连接到 第2步启动的 Opc Ua 模拟服务 的驱动配置,如下

  • 主机 属性值为:localhost,以 Prosys OPC UA Simulation Server 启动为主

  • 端口 属性值为:53530,以 Prosys OPC UA Simulation Server 启动为主

  • 路径 属性值为:/OPCUA/SimulationServer,以 Prosys OPC UA Simulation Server 启动为主

  • 以上的 主机、端口和路径均配置完之后,列表如下

8. 位号 #

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

同时也需要在 Prosys OPC UA Simulation Server 软件中新建一个位号,并进行证书授权(第11,13步骤)

9. 分组 #

切换到 “分组” 菜单,新建一个设备分组,如下

10. 设备 #

切换到 “设备” 菜单,在刚刚新建的分组下,新建一个设备,如下

11. 在Prosys OPC UA Simulation Server中新建点位 #

如图所示

  • 切换到 “Simulation” 菜单,点击右下的 "+" 新建一个模拟点位,类型选择随机,名称添加 string-tag,最后点击 "Create",即可

  • 切换到 “Address Space” 菜单,即可查看点位的详细信息,包括:命名空间和点位名称

12. 位号配置 #

切换到 “位号配置” 菜单,为新建的 设备 ,配置 位号 的的 属性值,从而是 dc3-opc-ua 模块能读取到 Prosys OPC UA Simulation Server 软件中的真实点位值,如下

  • 命名空间:第11步骤中的 ns

  • 位号:第11步骤中的 s

  • 以上的 命名空间和位号均配置完之后,列表如下

13. 在Prosys OPC UA Simulation Server中授权证书 #

切换到 “Certificates” 菜单,如图所示进行授权 “Trust

14. 数据 #

切换到 “数据” 菜单,30秒左右会采集一个值

上次更新: 2023/5/19 00:04:27