笔者涉猎的工业领域项目遇到一个需求,需要把底层设备(表记)的状态和运行数据集中放到一个监控画面进行展示,数据需要在界面端实时进行刷新,类似网友的例子,如下图(侵删)
数据需要实时主动刷新,笔者基于多年前在MES上做数据采集的经验,考虑使用OPC的通信协议来解决数据采集和刷新的问题。由于团队使用技术架构关系,考虑继续采用Python作为开发平台,于是在网上查找Python的第三方OPC支持组件,逐步构建这个验证原型。
下面本文演示如何从零开始一步一步的搭建验证Demo。
1.1. openOPC组件
网上找到开源的openOPC组件,通过它Python运行环境可以访问OPC服务,并读/写OPC tag的值。这样我们就可以通过OPC协议访问设备的Tag,从而获得设备的运行数据。进一步了解OPC原理可以查看OPC基金会官网。
OPC基金会官网:http://opcfoundation.cn/
OpenOPC组件:http://openopc.sourceforge.net/
1.2. 安装Python开发环境
openOPC发布时间较早,原版本支持Python2, 我们需要安装Python2.7版本32位运行环境,这里有点坑,不要装Python2.7 64位版本。
Python官网:http://www.python.org/
Python最新源码,二进制文档,新闻资讯等可以在Python的官网查看到。
安装Python 2.7 32位版本。下载安Windows x86 MSI installer安装包,运行安装文件如下图:
默认按照当前安装目录,点击“Next”按钮...
安装完毕就可以在命令行窗口执行python.exe命令查看python运行环境和版本。
1.3. 安装OPC模拟器
OPC模拟器采用 Honeywell的MatrikonOPC Simulation Server,这个模拟器包括OPC服务器的模拟和一个浏览服务端opc tag点位的客户端工具。运行MatrikonOPCServer.exe安装文件,进入到安装主界面。
1.3.1. 同意软件许可协议
1.3.2. 完成MatrikonOPC Explorer的安装
1.3.3. 打开MatrikonOPC Explorer浏览器
默认情况下能够看到OPC服务模拟器这个OPC服务
1.3.4. 添加一两个随机tag,观察数据变化情况
1.4. 安装openOPC组件包
运行下载的OpenOPC-1.3.1.win32-py2.7.exe安装文件,默认安装选择,如下图:
1.5. 安装pywin32-221.win32-py2.7组件
运行pywin32-221.win32-py2.7.exe文件,点击“下一步”如下图
默认选择,点击下一步
1.6. 通过Python运行环境读取opc服务的值
最简单的读取代码如下,这里是不是觉得python的代码好简单的感觉。
import OpenOPC opc = OpenOPC.client() opc.connect('Matrikon.OPC.Simulation') print opc['Square Waves.Real8'] opc.close()
1.6.1. 通过cmd窗口运行python.exe进入到python运行环境
逐行运行上面的代码,如果未安装1.5步骤组件,执行到第二行代码时会报如下错误,如下图:
1.6.2. 读取到tag位号的值
1.7. 小结
本章节,我们完成了基于Python2.7环境及OPC访问环境的搭建工作,在Python运行环境中,实现了读取OPC服务tag位号值的方法,打通了Python读取opc服务数据的通路,下一章,我们将尝试实现把数据显示在网页上。