【问题标题】:OPC server access remotely using OPCDA.NET tools使用 OPCDA.NET 工具远程访问 OPC 服务器
【发布时间】:2011-08-24 03:18:05
【问题描述】:

我正在 Windows C# 中开发 OPC 客户端。我已经开发了代码并阅读 采样和基于事件的 OPC 项目 (OnDataChange)。当我 使用本地机器,然后我的代码也适用于采样 作为 OnDataChange,但是当我尝试从远程 OPC 服务器读取数据时 然后采样工作正常,但我无法在基于事件的过程中获取数据。 我能够连接到 OPC 服务器,但是当我添加订阅时 然后我得到错误。

HRESULT:0x80040202。

       group1.DataChanged += new DataChangeEventHandler(this.DataChangeHandler);
               group1.AdviseIOPCDataCallback();//exception HRESULT : 0x80040202.

OPC 服务器已连接,然后也注册该组,但读取数据时出现异常。

【问题讨论】:

    标签: c# .net opc


    【解决方案1】:

    问题通常是当您使用Advise() 时,服务器将与客户端建立一个 DCOM 连接(标准 DC​​OM 连接点)。需要正确设置客户端以允许这种情况发生(即正确的安全设置以允许服务器在客户端上执行代码)。

    你应该阅读这个页面:http://www.softwaretoolbox.com/xpsp2/,它包含了很多关于如何正确设置 DCOM 以供 OPC 使用的建议。这里有很多安全问题。 Software Toolbox 网站有很多很棒的信息(还有视频)。如果您仍然无法使其正常工作,我建议您购买 OPC 隧道产品,该产品可让您进行远程 OPC,而无需跳过所有 DCOM 循环。

    您不必使用 OPCDA.NET 也会遇到同样的问题。您可以使用任何 OPC 客户端并首先使其与远程服务器一起工作,然后专注于弄清楚如何将其全部连接到 OPCDA.NET。我推荐 OPC Quick Client(附带 Software Toolbox TOP Server 演示)。

    【讨论】:

    【解决方案2】:

    您实际遇到的问题是回调。换句话说,让您失败的不是建议调用,而是来自 OPC 服务器的回调(建议触发器)。此错误通常是由用户身份验证问题引起的(即两台计算机上的用户帐户不匹配)。检查远程计算机上 OPC 服务器的用户帐户。如果在您的本地计算机上不存在,则说明您发现了问题!

    有一个自动应用程序可以帮助您找出问题。我建议你下载 OPC Expert(谷歌它)。它是一个免费的应用程序,不需要安装,也不会更改 Windows 注册表。它救了我很多次。此外,供应商 (OPCTI) 非常有帮助,因此请检查一下。

    【讨论】:

    • 奇怪:这是一个老问题(2011 年),我在 3 小时前评论了 @garo-yeriazarian 的答案,现在有一个新用户的新答案......发生了什么? :)
    【解决方案3】:

    这个问题是因为当你连接服务器时,你可能会使用第一个连接函数,即server.connect();

    请尝试:

    server.connect(new Opc.ConnectData(new System.Net.NetworkCredential()));
    

    这对我有用。希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 1970-01-01
      • 2014-07-19
      • 2015-06-20
      相关资源
      最近更新 更多