OPC UA使用示例

EMQX 企业版技术支持发表于:2022年08月03日 11:54:49更新于:2022年08月17日 14:03:50

协议简介

OPC UA的全名是OPC Unified Architecture(OPC统一架构)。是OPC基金会(英语:OPC Foundation)应用在自动化技术的机器对机器网络传输协议。

有以下的特点:  

  • 着重在资料收集以及控制为目的的通讯,用在工业设备以及系统中

  • 开源标准:标准可以免费取得,实作设备不需授权费,也没有其他限制

  • 跨平台:不限制作业系统或是程式语言

  • 面向服务的架构(SOA)

  • 强健的信息安全特性

  • 整合的信息模型,是资讯整合中,基础设施的基础,制造商以及组织可以将其复杂的资料在OPC UA命名空间上建模,利用OPC UA面向服务的架构的优点。

下载OPC UA模拟器

1. Prosys OPC UA Simulation Server

Prosys OPC UA Simulation Server下载地址:https://downloads.prosysopc.com/opc-ua-simulation-server-downloads.php

(1) 配置OPCUA Server的Endpoint

image.png

(2) 配置3个数据点,并开启数据模拟

image.png

2.OPC-UA 服务器代码示例---链接

这个存储库是一个简单的 OPC-UA 服务器,使用 Python 中的opcua-asyncio库创建。

运行 OPC-UA 服务器

  • 克隆存储库

git clone https://github.com/latosai/ocpua_server.git
  • 准备虚拟环境

sudo apt install python3-venv
python3 -m venv venv
source venv/bin/activate
  • 安装要求

pip install -r requirements.txt
  • 运行服务器 cd code

python3 server.py

将 OPC-UA 服务器作为 Docker 容器运行

## 切换到从GitHub上拉下来的opcua目录
$ cd ocpua_server

## 可以看到拉下来的代码里有已经写好的Dockerfile可以自己构建一个镜像;另外还看到有docker-compose.yaml文件可以直接执行docker-compose命令运行一个该镜像的容器,可以省去构建镜像的步骤
$ ls
Dockerfile     README.md    code       docker-compose.yml license      requirements.txt   sys       venv

## 我以docker-compose.yaml文件为例,在当前目录下执行
docker-compose up -d

## 查看容器状态
docker-compose ps

可以看到直接去运行该docker-compose.yaml文件省去了构建镜像和映射端口步骤,它是将这些步骤全写在了docker-compose.yaml文件里,感兴趣可以去查看Dockerfile、docker-compose.yaml文件内容。

image.png

查看点位地址

1.通过UaExpert查看(UaExpert是OPC UA的GUI工具)下载链接,如何利用该工具查看OPC UA服务器的点位地址可以查看网上使用教程。

从代码中也能找到模拟器所设置的点位地址有哪些,code/model目录下三个文件就记录着该python写的模拟器的点位地址,例如:

image.png

2.OPC-UA GUI Client

OPC-UA GUI client作为第三方client工具,辅助测试。

安装命令如下:

pip install opcua-client -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

在终端中键入命令opcua-client,可打开FreeOpcua client应用程序。

FreeOpcua client界面中的状态如下图所示:

image.png

通过opcua-client可以看到OPCUA server已能正常运行。

安装Neuron(以docker运行为例)

## 获取 Docker 镜像
docker pull neugates/neuron:2.1.2

## 启动 Docker 容器
docker run -d --name neuron -p 7000:7000 -p 7001:7001 -p 9081:9081 --privileged=true --restart=always neugates/neuron:2.1.2

Neuron南向配置

创建南向设备

image.png

新增设备,选择协议类型

image.png

确认创建,点击设备配置

image.png

填写相应配置信息,点击提交按钮

image.png

单击该设备面板,进入Group列表,点击创建填写group名称及采集频率为多少ms,完成创建

image.png

点击上图箭头所指图标,进入tag列表创建tag,添加tag填写tag相应信息,完成创建

image.png

点位创建成功后,开启刚创建好的南向设备,可以看到该设备工作状态以及连接状态都处于正常运行中

image.png

切换到数据监控页面,选择刚创建的南向设备和group名称,便可以看到点位对应的值

image.png

Neuron北向配置

创建北向应用

image.png

点击添加应用,填写名称,选择协议类型,完成创建

image.png

点击北向emqx面板上应用配置

image.png

填写北向配置信息,点击提交,开启该北向应用,可以看到工作状态及连接状态都处于正常运行中

image.png

单击emqx面板进入Group列表,选择添加订阅,选择需要订阅的南向设备及group,点击提交按钮

image.png

验证

验证北向应用是否连接到EMQX

可以看到北向设置的clientid为neuron的客户端已经连接到EMQX

image.png

验证北向所订阅南向设备点位数据是否接收成功

这里通过MQTTX去连接一个客户端到EMQX并且订阅南向设备上报数据topic为neuron/neuron/upload,可以看到成功接收到南向设备上报的点位数据信息,如图:

image.png

至此,OPC UA协议模拟测试完成。


    您需要登录后才可以回复