Pyro.errors.ProtocolError:连接失败

时间:2014-09-29 13:25:48

标签: python-2.7 connection protocols opc pyro

我使用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')

代码无法访问构造函数。

谢谢!

1 个答案:

答案 0 :(得分:0)

OPC使用DCOM进行通信,您需要执行以下步骤来解决此问题。

从Windows“开始”菜单中选择“运行”,然后键入dcomcnfg.exe,单击“确定”,运行DCOM配置实用程序。 2.展开组件服务,计算机并右键单击MyComputer并选择属性

选择选项卡默认属性并选中“在此计算机上启用分布式COM”。默认身份验证级别应为“连接”,默认模拟级别应为“识别”。注意:应取消选中为参考跟踪提供额外的安全性。

现在选择COM Security选项卡,在Access Permissions部分下单击Edit Defaults按钮,单击Add ...按钮并添加用户名(新创建的用户名与用户名完全相同)服务器)。添加新用户后,选择它并在下面的框中选中复选框以启用(允许)本地访问和远程访问。

初始测试目的包括授予访问权限列表中的所有人。

在服务器将OpcEnum.exe添加到防火墙例外列表的计算机上

在客户端计算机的防火墙上允许端口135传入的锥形

注意:对于初始测试,请在服务器和客户端上禁用防火墙.. :))

记下运行opc服务器的Windows用户帐户的用户ID和密码,并在远程计算机上创建相同的用户名和帐户(这是为了在两台计算机之间建立信任)