基于python openOPC的监控页面一
笔者涉猎的工业领域项目遇到一个需求,需要把底层设备(表记)的状态和运行数据集中放到一个监控画面进行展示,数据需要在界面端实时进行刷新,类似网友的例子,如下图(侵删)

数据需要实时主动刷新,笔者基于多年前在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服务数据的通路,下一章,我们将尝试实现把数据显示在网页上。
基于python openOPC的监控页面一的更多相关文章
- nomon+ pyNmonAnalyzer实现基于python的nmon监控性能数据可视化
pip install pyNmonAnalyzer nnmon for linux from sourceforge:https://sourceforge.net/projects/nmon/ ...
- 性能测试 基于Python结合InfluxDB及Grafana图表实时监控Android系统和应用进程
基于Python结合InfluxDB及Grafana图表实时监控Android系统和应用进程 By: 授客 QQ:1033553122 1. 测试环境 2. 实现功能 3. 使用前提 4. ...
- Python 基于Python结合pykafka实现kafka生产及消费速率&主题分区偏移实时监控
基于Python结合pykafka实现kafka生产及消费速率&主题分区偏移实时监控 By: 授客 QQ:1033553122 1.测试环境 python 3.4 zookeeper- ...
- 基于python爬虫的github-exploitdb漏洞库监控与下载
基于python爬虫的github-exploitdb漏洞库监控与下载 offensive.py(爬取项目历史更新内容) #!/usr/bin/env python # -*- coding:utf- ...
- 基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)
基于python语言的tensorflow的‘端到端’的字符型验证码识别 1 Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的 ...
- 基于Python+Django的Kubernetes集群管理平台
➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...
- 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试
Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...
- Python远程视频监控
Python远程视频监控程序 老板由于事务繁忙无法经常亲临教研室,于是让我搞个监控系统,让他在办公室就能看到教研室来了多少人.o(>﹏<)o||| 最初我的想法是直接去网上下个软件,可 ...
- 基于python的互联网软件测试开发(自动化测试)-全集合
基于python的互联网软件测试开发(自动化测试)-全集合 1 关键字 为了便于搜索引擎收录本文,特别将本文的关键字给强调一下: python,互联网,自动化测试,测试开发,接口测试,服务测试,a ...
随机推荐
- Java操作redis客户端Jedis连接集群(Cluster)
创建JedisCluster类连接redis集群. @Test public void testJedisCluster() throws Exception { //创建一连接,JedisClust ...
- xcode7 上传APPStore错误ERROR ITMS-90474: iPad Multitasking support requires these orientations
在使用Xcode7 上传AppStore时候发现ERROR ITMS-90474错误.报错描述如下: ERROR ITMS-90474: “Invalid Bundle. iPad Multitask ...
- 金蝶CLOUD消息队列服务
- winform 界面加载慢原因分析
公司新来的开发人员,对winform开发还不是特别精通,在做个性化界面体验的时候容易出现闪烁和加载慢 闪烁的话,通过winform窗体的双缓存来解决在form 窗体中增加如下代码 protected ...
- CCS|ANSI|中华人民共和国标准化法|国标|ISO|IEC|Ieeexplore|
国家的标准的有效期,标龄是5年.强制性标准是是指为保障人体的健康.人身.财产安全的标准和法律.行政法规定强制执行的标准,如药品标准.食品卫生标准. CCS:分类法简写图 国际标准,比如美国国家标准AN ...
- 记一次关于JDBCUtils工具类的编写
jdbc.properties数据库配置的属性文件内容如下 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost/xxxx ...
- 关于vyos 防火墙配置
VyOS是一个基于Debian的网络操作系统,是Vyatta的社区fork.Vyatta是博通的企业级的产品,通过这套系统,能在x86平台提供路由,防火墙和×××的功能. 这个系统提供了和其他诸如Ci ...
- .net core 读取json文件
核心代码 Program.cs: using System; using System.IO; using Microsoft.Extensions.Configuration; namespace ...
- python-django框架-电商项目-首页开发_20191122
python-django框架-电商项目-首页开发 业务背景: 用户浏览网站一定是先到首页, 没有登陆的话首页内容完全一样,而且是不经常变化的, 一段时间内,有100用户访问,就要有几个用户就要查询多 ...
- life|October the 1st| five twenty|three–fifths|1970s|30s
The music is full of (a, an, the, /) life. It can release your pressure to a large extent, so I enj ...