在win10本地环境下,通过python3和OpenOPC包与MatrikonOPCServer进行读写交互,模拟工厂数据读写
第一个坑,64位的Python似乎是和后面的OpenOPC不兼容,装了调用会出类似"OpenOPC.OPCError: Dispatch: 没有注册类"的错误。因此要选择32位的Python
下载地址: https://www.python.org/downloads/windows/
第二个坑,直接通过pip安装OpenOPC-Python3x似乎会有问题,还需要通过网站下载OpenOPC程序,并通过2to3.py将其中的OpenOPC.py(src文件夹中)进行转换,对pip安装的OpenOPC.py进行覆盖
pip install OpenOPC-Python3.x
OpenOPC程序下载地址: https://sourceforge.net/projects/openopc/
2to3.py一般在Python安装路径的Tools/srcipts文件夹下(不清楚可import sys,通过sys.path查询),使用方法可参考: https://blog.csdn.net/u012211419/article/details/51136232
2to3.py转化后最好检查一遍转化文件,可能还需要把其中的Pyro改为Pyro4,以及安装pypiwin32包
这部分参考了: https://blog.csdn.net/weixin_48716321/article/details/107407078
这个没啥说的,直接安装就行,下载地址: https://www.matrikonopc.com/portal/downloads/product_software/MatrikonOPCSimulation.exe
使用方法可参考: http://t.zoukankan.com/ioufev-p-9366426.html
打开MatrikonOPC Server for Simulation,创建并添加一个随机点位Random.Real4,一个普通点位Alias1.尾煤(初始值20)
然后简单测试下读写,可以在这里找到相关资料: https://openopc.sourceforge.net/api.html
- import OpenOPC
- import time
-
- opc = OpenOPC.client()
-
- servers = opc.servers()
-
- opc.connect(servers[0])
-
- for i in range(5):
- opc.read(['Random.Real4', ])
- time.sleep(1)
-
- opc.read(['Alias1.尾煤', ])
-
- opc.write([('Alias1.尾煤', 18), ])
-
- opc.read(['Alias1.尾煤', ])
可以看到已经成功了