Python3 - opc-DA数据采集-OpenOPC使用说明

4 篇文章 1 订阅
3 篇文章 0 订阅

运行环境

  • python3.8-32位!32位!32位!
  • win10
  • KEPServerEX.6.4

其他

  • 项目地址

  • 官方api文档地址

  • opc 模拟服务器下载

    • https://www.matrikonopc.com/downloads/178/index.aspx

    • https://pan.baidu.com/s/1R4bC-NKLEl4s4FqRfhAIwQ
      提取码:07yy

环境以及依赖配置

OpenOPC 配置

  1. 下载 OpenOPC-1.3.1.win32-py2.7.exe 并安装

  2. 将 OpenOPC 安装目录下 src 文件夹下的 OpenOPC.py (其他3个py文件随意)复制到 python3.8 安装目录下的 Lib\site-packages 目录下,或者你的项目目录下(能import 就行)。

  3. 使用2to3工具

安装python会自动安装2to3工具,能够将python2 的代码一键转为python3的,支持批量修改

  • 查看使用帮助,执行:
2to3 --help
  • 这里我们直接把原来的python2 代码替换掉,从此以后只用python3,执行:
2to3 -w -n OpenOPC.py

-n 参数表示不备份原代码

  1. 修改包名

将 OpenOPC.py 中的 Pyro 全部替换为Pyro4
(升级到 Pyro5的请参考:兼容性转换)

  1. 修改环境变量

环境变量从哪改就不说了吧

OPC_MODE = open

pip 包依赖

pip install Pywin32
pip install OpenOPC-Python3x
pip install Pyro4   # 此处为 Pyro4(已经有Pyro5)

api 使用

参考上一篇 python2 的openOPC用法,注意开始创建客户端的方法不一样了:

import time

from openopc import OpenOPC

GROUP_NAME = 'test'

opc = OpenOPC.client()
# 查询可用服务
print(opc.servers(opc_host='localhost'))
   
opc.connect('Kepware.KEPServerEX.V6', 'localhost')
print(opc.list('通道 1.设备 1', recursive=True))

# 点位列表
taglist = [u'通道 1.设备 1.标记 1', u'通道 1.设备 1.标记 2', u'通道 1.设备 1.TAG1']
# 创建组对象
opc.read(taglist, group=GROUP_NAME)

try:
    # 循环周期读取
    while True:
        # 请求组
        opc_data = opc.read(group=GROUP_NAME)
        # 保存字典
        send_values = {}
        for item in opc_data:
            name, value, quality, time_ = item
            if quality == 'Good':
                send_values[name] = value
            else:
                print('Error:  {}'.format(item))
        print(send_values)

        time.sleep(5)
finally:
    # 释放资源
    opc.remove(opc.groups())
    opc.close()

详细用法请参考 官方 API

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值