0

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

代码没有到达构造函数。

谢谢!

4

1 回答 1

0

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

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

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

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

出于初始测试目的,在授予访问列表中包括所有人。

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

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

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

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

于 2014-10-04T17:10:51.263 回答