开始之前,首先介绍一下我的目的及思路:
目的:PLC为主导,通过HMI控制与监测机器人
现有设备:ABB PLC,博乐机械臂(即我们的机器人,包含Python等语言的开发接口)
思路:由于ABB PLC无法直接控制机器人,只能通过中间环节:即中间加一台PC,一方面通过机器人提供的Python开发接口与机器人通信,另一方面通过力控、KepServer实现与ABB PLC的通信,所以只需做通Python与KepServer的通信,就可以实现整套系统的通信了(PLC间接控制机器人)。
Python OpenOPC,我们的主角,闪亮登场了,接下来就是这篇博客的主要内容:OpenOPC的安装与连接KepServerEX6。
1、安装Python,配置环境变量,这个简单,就不写了,需要注意的是,需要32位的Python。
2、安装OpenOPC,执行下面脚本
- pip install OpenOPC-Python3x
安装完成后我们引入OpenOPC
- import OpenOPC
发现没问题,然后我们使用OpenOPC
- opc = OpenOPC.client()
发现出现报错了
- Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\site-packages\OpenOPC.py", line 155, in __init__ pythoncom.CoInitialize()NameError: name 'pythoncom' is not defined
看到这个,别慌,网上爬了半天,发现缺少pywin32,我们进行下一步
3、安装pywin32
- pip install pywin32
安装完成后我们再试一下
- opc = OpenOPC.client()
发现没问题了,接下来,我们打印一下可以连接的服务并且进行连接
- print(opc.servers()) #结果['CoDeSys.OPC.DA', 'PCAuto.OPCServer', 'Kepware.KEPServerEX.V6']
- #然后我们连接KepServerEX6,没有报错,说明连接成功
- opc.connect('Kepware.KEPServerEX.V6','localhost')
最后我们打开KepServerEX6,发现也有连接状态,说明Python与KepServer通信是有希望了!
参考博客:https://www.cnblogs.com/shuangpang/p/10653663.html