工业数据采集:从OPC读写设备实时数据

工业数据采集:从OPC读写设备实时数据

这篇文章用具体实例给不熟悉OPC的读者科普如何用python连接OPC来抓取机器PLC的数据。 搞数字化工厂的基础就是工业数据采集。只要有了数据,我们就可以可以做数据可视化展示,工业大数据存储,数据挖掘,等等。

0. 简介

0.jpg
  • 对于自动化程度低的工厂,我们可以通过外接传感器完成数据的自动收集。实现数字化工厂:传感器+数据采集+网站完整实现设备实时数据可视化

  • 对于自动化程度高的工厂,我们显然不需要花时间去一个传感器一个传感器的安装。我们可以通过自动化的协议来直接进行数据采集。工业4.0的理解和落地实施-工业数据采集

然而talk is cheap,大家还是没有主观认知究竟如何进行数据抓取,并且上传到上层的服务器或者信息系统。

1.关于OPC

简单来说,OPC是一套标准,其目的是把PLC特定的协议(如Modbus,Profibus等)抽象成为标准化的接口,作为“中间人”的角色把通用的OPC“读写”请求转换成具体的设备协议来与HMI/SCADA系统直接对接 基于这个标准,有几个公司都分布开发了自己的OPC server/client。我自己使用过的是Kepware的。他家的软件本身是免费下载的。但是连接PLC的驱动是要单独付费购买。

2.配置OPC server连接机器PLC

我们可通过新建Tag来绑定机器PLC的各种数据点位。如果需要教程指导可以自行百度。这个操作是很容易的。重点是读者需要了解,很多机器数据,比如温度,压强,电压,扭矩等等实时数据在PLC都存在,我们通过这里的Tag已经把机器PLC的数据绑定到了OPC软件上来,下一步我们只需要从OPC里读写TAG的数据就可以了

然后咱们需要祭出万能的python 安装OPC的包。

pip3 install OpenOPC-Python3x
pip3 install pypiwin32
​

3.操作OPC

1.gif
1.jpg
连接
2.jpg
读取
3.jpg
写入
4.jpg

把OPC抓取的实时数据绑定到了工厂的3D展示视图,从而实现了更酷炫的效果


2.gif

参考代码

import OpenOPC
import pywintypes
import time
#连接OPC
opc =OpenOPC.client()
opcserv='Matrikon.OPC.Simulation.1'
opc.connect(opcserv)
​
pywintypes.datetime = pywintypes.TimeType
# 读一个Tag的值
# tag ='机器1.TAG1'
# value = opc.read(tag)
​
# 读多个tag的值
# tags=['机器1.TAG1','机器1.TAG2']
# value = opc.read(tags,group='Group1',update=1)
# ===========write================
# 写一个Tag值
# tag ='机器1.TAG2'
# 方式1
# opc.write( (tag, 10) )
# value = opc.read(tag)
# 方式2
# opc[tag] = 100.0
​
# 写入多个Tag
# opc.write( [('TAG2', 10.0), ('TAG3', 20.0)] )
# value = opc.read(tag)

# **********************************************************
# 关闭opc连接
# opc.close()

你可能感兴趣的:(工业数据采集:从OPC读写设备实时数据)