使用 OPCDA.NET 工具远程访问 OPC 服务器
Posted
技术标签:
【中文标题】使用 OPCDA.NET 工具远程访问 OPC 服务器【英文标题】:OPC server access remotely using OPCDA.NET tools 【发布时间】: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 服务器已连接,然后也注册该组,但读取数据时出现异常。
【问题讨论】:
【参考方案1】:问题通常是当您使用Advise()
时,服务器将与客户端建立一个 DCOM 连接(标准 DCOM 连接点)。需要正确设置客户端以允许这种情况发生(即正确的安全设置以允许服务器在客户端上执行代码)。
你应该阅读这个页面:http://www.softwaretoolbox.com/xpsp2/,它包含了很多关于如何正确设置 DCOM 以供 OPC 使用的建议。这里有很多安全问题。 Software Toolbox 网站有很多很棒的信息(还有视频)。如果您仍然无法使其正常工作,我建议您购买 OPC 隧道产品,该产品可让您进行远程 OPC,而无需跳过所有 DCOM 循环。
您不必使用 OPCDA.NET 也会遇到同样的问题。您可以使用任何 OPC 客户端并首先使其与远程服务器一起工作,然后专注于弄清楚如何将其全部连接到 OPCDA.NET。我推荐 OPC Quick Client(附带 Software Toolbox TOP Server 演示)。
【讨论】:
6 年后,你拯救了我的一天 :) 链接已失效,但您仍然可以找到它on archive.org,请注意该页面包含有关在 Windows XP Service Pack 2 中使用新的 Windows 防火墙运行 OPC 的信息。 此链接现在有效:support.softwaretoolbox.com/app/answers/detail/a_id/416/kw/dcom/…【参考方案2】:您实际遇到的问题是回调。换句话说,让您失败的不是建议调用,而是来自 OPC 服务器的回调(建议触发器)。此错误通常是由用户身份验证问题引起的(即两台计算机上的用户帐户不匹配)。检查远程计算机上 OPC 服务器的用户帐户。如果在您的本地计算机上不存在,则说明您发现了问题!
有一个自动应用程序可以帮助您找出问题。我建议你下载 OPC Expert(谷歌它)。它是一个免费的应用程序,不需要安装,也不会更改 Windows 注册表。它救了我很多次。此外,供应商 (OPCTI) 非常有帮助,因此请检查一下。
【讨论】:
奇怪:这是一个老问题(2011 年),我在 3 小时前评论了 @garo-yeriazarian 的答案,现在有一个新用户的新答案......发生了什么? :)【参考方案3】:这个问题是因为当你连接服务器时,你可能会使用第一个连接函数,即server.connect();
请尝试:
server.connect(new Opc.ConnectData(new System.Net.NetworkCredential()));
这对我有用。希望对你有帮助:)
【讨论】:
以上是关于使用 OPCDA.NET 工具远程访问 OPC 服务器的主要内容,如果未能解决你的问题,请参考以下文章