基于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复习(五)接口与多态
5.1接口 允许创建者规定方法的基本形式:方法名.参数列表以及返回类型,但不规定方法主体. 也可以包含基本数据类型的数据成员,但他们都默认为static和final 声明格式为 [接口修饰符]inte ...
- 新年在家学java之基础篇--类&方法
面向对象 面向对象OOP,面向过程POP 面向对象三大特征 封装 继承 多态 类 类由属性(对应类中的成员变量)和行为(成员方法)来构成 类的成员变量可以先声明,不用初始化,有默认值 方法名称如果多个 ...
- java中多线程入门有趣介绍
我们在网上可以看到所有有关于java的线程的基本概念的很多解释,不乏有很多详细经典的解释和代码解说.但是我们的很多初学者看完不能有一个直观的印象,特别是一些没有编程基础的学习者,很多时候要花很多时间去 ...
- Linux安装svn服务
安装svn yum -y install subversion 创建保存仓库/版本库的目录 mkdir -p /opt/data/svndir 创建仓库/版本库, 这里同时创建两个仓库(project ...
- 4)mysqlDB
(1)首先是变量声明 (2)函数注释 (3)__contruct函数的编写(可有可无) (4)getInstance函数编写(这个是获得这个mysqlDB类的实例对象) 编写代码: (5)然后是其他功 ...
- python语法基础-基础-变量和数据类型
############### 第一个python程序 ############### print("hello python") # 打印hello python # 分 ...
- SpringCloud快速搭建
1.SpringCloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.负载均衡.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环境简单,可以在开发 ...
- VM Storage Policies深度解析
- 16)用了session会话技术
为什么用session会话技术? 因为假如你进入后台,不可能随意进入,即使你的验证通过了,那么还需要一个变量来存一个标志,假如标志的值是yes,那么我们可以直接进入后台的首页,无需验证,但是,标志是n ...
- JavaScript学习总结(七)Ajax和Http状态字
转自:http://segmentfault.com/a/1190000000691919 Ajax及其工作原理 AJAX 是一种与服务器交换数据无需刷新网页的技术,最早由Google公司在谷歌地图里 ...