协议简介
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
(2) 配置3个数据点,并开启数据模拟
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文件内容。
查看点位地址
1.通过UaExpert查看(UaExpert是OPC UA的GUI工具)下载链接,如何利用该工具查看OPC UA服务器的点位地址可以查看网上使用教程。
从代码中也能找到模拟器所设置的点位地址有哪些,code/model目录下三个文件就记录着该python写的模拟器的点位地址,例如:
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界面中的状态如下图所示:
通过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南向配置
创建南向设备
新增设备,选择协议类型
确认创建,点击设备配置
填写相应配置信息,点击提交按钮
单击该设备面板,进入Group列表,点击创建填写group名称及采集频率为多少ms,完成创建
点击上图箭头所指图标,进入tag列表创建tag,添加tag填写tag相应信息,完成创建
点位创建成功后,开启刚创建好的南向设备,可以看到该设备工作状态以及连接状态都处于正常运行中
切换到数据监控页面,选择刚创建的南向设备和group名称,便可以看到点位对应的值
Neuron北向配置
创建北向应用
点击添加应用,填写名称,选择协议类型,完成创建
点击北向emqx面板上应用配置
填写北向配置信息,点击提交,开启该北向应用,可以看到工作状态及连接状态都处于正常运行中
单击emqx面板进入Group列表,选择添加订阅,选择需要订阅的南向设备及group,点击提交按钮
验证
验证北向应用是否连接到EMQX
可以看到北向设置的clientid为neuron的客户端已经连接到EMQX
验证北向所订阅南向设备点位数据是否接收成功
这里通过MQTTX去连接一个客户端到EMQX并且订阅南向设备上报数据topic为neuron/neuron/upload,可以看到成功接收到南向设备上报的点位数据信息,如图:
至此,OPC UA协议模拟测试完成。