zoukankan      html  css  js  c++  java
  • 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模拟器采用 HoneywellMatrikonOPC 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服务数据的通路,下一章,我们将尝试实现把数据显示在网页上

     

     

     

     

     

     

  • 相关阅读:
    eclipse常用快捷键
    angularJS学习(三)——搭建学习环境
    node.js的安装
    AngularJS学习(二)——Angular应用的解析
    MTK如何烧录IMEI码(俗称串号)
    飞思卡尔IMX515评估板系统烧录和启动
    __asm__ __volatile__("": : :"memory")
    MTK6577+Android4.0之增加重启功能
    WinCE系统声音定制
    介绍一种很棒的wince 如何替换系统声音的方法
  • 原文地址:https://www.cnblogs.com/haozi0804/p/12420822.html
Copyright © 2011-2022 走看看