我使用OpenOPC库连接到OPC服务器。我可以成功地从我当地的Matrikon OPC服务器上写入和读取,但当我尝试从另一台机器(不同的主机)读取时,我收到错误Pyro.errors.ProtocolError: connection failed
我的连接代码在这里;
import OpenOPC
class OPC_tag_reader:
opc = OpenOPC.open_client('<remote host>')
#breaks here!!!!
def __init__(self):
print 'connecting to server'
self.opc.connect('Matrikon.OPC.Simulation.1', '<remote host')
代码无法访问构造函数。
谢谢!
答案 0 :(得分:0)
OPC使用DCOM进行通信,您需要执行以下步骤来解决此问题。
从Windows“开始”菜单中选择“运行”,然后键入dcomcnfg.exe,单击“确定”,运行DCOM配置实用程序。 2.展开组件服务,计算机并右键单击MyComputer并选择属性
选择选项卡默认属性并选中“在此计算机上启用分布式COM”。默认身份验证级别应为“连接”,默认模拟级别应为“识别”。注意:应取消选中为参考跟踪提供额外的安全性。
现在选择COM Security选项卡,在Access Permissions部分下单击Edit Defaults按钮,单击Add ...按钮并添加用户名(新创建的用户名与用户名完全相同)服务器)。添加新用户后,选择它并在下面的框中选中复选框以启用(允许)本地访问和远程访问。
初始测试目的包括授予访问权限列表中的所有人。
在服务器将OpcEnum.exe添加到防火墙例外列表的计算机上
在客户端计算机的防火墙上允许端口135传入的锥形
注意:对于初始测试,请在服务器和客户端上禁用防火墙.. :))
记下运行opc服务器的Windows用户帐户的用户ID和密码,并在远程计算机上创建相同的用户名和帐户(这是为了在两台计算机之间建立信任)