Skip to content

Python opc ua server, client, analysis dashboards, notification etc. For demo how an analysis workflow works

Notifications You must be signed in to change notification settings

stvgz/python-opc-example

Repository files navigation

Python OPCua

使用python发送、读取opc的方法

关于OPC UA

OPC UA是一种协议 https://opcfoundation.org/

被”誉为”是工业4.0的基础,现在工业通信的基础

一些参考信息

https://www.novotek.com/uk/solutions/kepware-communication-platform/opc-and-opc-ua-explained/ https://www.paessler.com/it-explained/opc-ua https://blog.csdn.net/yaojiawan/article/details/88990351 https://www.zhihu.com/question/57073931

OPC UA Compare with MQTT https://www.zhihu.com/question/57073931


Python Installation

pip install opcua


连接到OPC UA服务器

本地服务器 -> uadiscover

某个特定地址服务器,比如 -> uadiscover -u opc.tcp://10.122.000.66:4840

如果没有的话可以先建立一个本地服务器


from opcua import Server

if __name__=='__main__':
    server = Server()
    server.set_endpoint("opc.tcp://0.0.0.0:48400/")

    server.start()    

可以看到

Endpoints other than open requested but private key and certificate are not set.
Listening on 0.0.0.0:48400

Try

uadiscover -u 0.0.0.0:48400


Server 1:
  Application URI: urn:freeopcua:python:server
  Product URI: urn:freeopcua.github.io:python:server
  Application Name: FreeOpcUa Python Server
  Application Type: ApplicationType.ClientAndServer
  Discovery URL: opc.tcp://0.0.0.0:48400/

Endpoint 1:
  Endpoint URL: opc.tcp://127.0.0.1:48400/
  Application URI: urn:freeopcua:python:server
  Product URI: urn:freeopcua.github.io:python:server
  Application Name: FreeOpcUa Python Server
  Application Type: ApplicationType.ClientAndServer
  Discovery URL: opc.tcp://0.0.0.0:48400/
  Server Certificate: [no certificate]

一个OPC UA监控的case

  1. OPC UA Server 服务器
  2. OPC UA Client 客户端
  3. 一个数据库
  4. OPC UA到数据库
  5. 展示dashboard
  6. 预测模型
  7. 信息发送

OPC 服务器

cd opc-ua-temperature-server

temperature-opcua-server.py

OPC Client

cd opc-ua-temperature-client

temperature-opcua-client.py


DB

使用MongoDB作为一个例子,使用docker的版本

docker search mongodb

下载最新的版本

docker pull mongo:latest

看一下是否拿到了

docker ps

开始运行

docker run -itd --name mongo -p 27017:27017 mongo

查看运行状态

docker ps

进入并且配置一下账号密码 docker exec -it mongo mongo admin

db.createUser({ user:'admin',pwd:'IoTadmin!',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]}); Successfully added user: { "user" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, "readWriteAnyDatabase" ] }

db.auth('admin','IoTadmin!') 1

Mongo DB的使用

MongoDB的基本语法比如一个query

filter={} sort=list({ 'timestamp': -1 }.items()) limit=100

result = mongo_client['opc']['temperature'].find( filter=filter, sort=sort, limit=limit )

使用MongoDB Compass进行管理

模型

规则建立的模型是最常见的 建立一个规则的部分

  1. 获取历史数据
  2. 特征提取(optional)
  3. 分析历史数据找到区分OK/NOK的规则
  4. 追溯历史数据进行影响的确认
  5. 应用规则

应用规则的部分

  1. 提醒
  2. 需要可查看
  3. 可以修改

前端可视化 Dash

非常少量的纯python代码构建的可视化内容

cd temperature_dashboard python temeprature-opcua-dashboard.py

提醒服务

Teams Teams Channel

邮件 smtp 服务

微信 server酱 WxPusher

About

Python opc ua server, client, analysis dashboards, notification etc. For demo how an analysis workflow works

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published