工具依赖:
1. OPCClient.exe
2. Simple OPC Server Simulator
3. Python3.x
4. python包pywin32(pythoncom), win32com
5. automation wrapper, http://gray-box.net/download_daawrapper.php?lang=en
执行步骤:
1. 分别安装上面1-4各软件和依赖包
2. 注册wrapper的dll文件, 注册方法https://blog.csdn.net/m0_37764065/article/details/104379209
3. 打开Simple Opc Server模拟器, 设置点位, 点开自动添加请求项和定时更新数据项
4. 编辑连接脚本
import OpenOPC
opc = OpenOPC.client()
opc.connect('opcserversim.Instance.1')
all = opc.list()
print(all)
# opc.read(['test'], include_error=True)
opc.close()
如果对connect的对象不清楚的, 可以通过OPCClient进行连接, 会自动搜索所有的服务端
遗留问题:
1. 目前可以读取到服务端的所有节点, 但是读取不到其中的数据项
2. 读取数据项失败时, 内存会溢出, 直接crash, 而不会抛出exception
3. 无法写入数据
4. 根据读取不存在的节点时, 服务端设置了自动添加请求项, 因此会创建新节点可以判断, 手写客户端和服务端是已经连接了, 但是还是读取不到节点
希望有好心的大佬看到问题解决后能够帮忙予以解决, 可以私信或者留言, 拜托了。