首页 > 解决方案 > 如何确定什么样的 OPC 服务器并读取它的项目

问题描述

我提供了 OPC 服务器的链接:http: //192.168.2.5 :54354并被要求读取项目值。我是 OPC 新手,我认为我的服务器是 OPC XML-DA,但是当我尝试示例代码时,它可以工作。但是当我替换我的服务器 URL 和项目名称时,它不起作用,服务器地址似乎缺少某些部分

var client = new EasyDAClient();

DAVtqResult[] vtqResults = client.ReadMultipleItems(
  new ServerDescriptor { UrlString = "http://opcxml.demo-this.com/XmlDaSampleServer/Service.asmx" },
  new DAItemDescriptor[]
 {
   "Dynamic/Analog Types/Double", 
   "Dynamic/Analog Types/Double[]", 
   "Dynamic/Analog Types/Int", 
   "SomeUnknownItem"
 });

这一项有效,但不适用于我的服务器 URL: http: //192.168.2.5 :54354 我不确定是什么/XmlDaSampleServer/Service.asmx意思,但我可以使用https://www.kassl.de/opc/explorer连接到我的服务器.shtml

标签: c#opcopc-da

解决方案


你确定服务器是XML-DA?根据我的经验,很少有服务器使用此协议。它通常是 OPC DA(OPC Classic)或 OPC UA。

服务器上是否有任何安全措施,例如用户名和密码?

根据我的经验,在编写任何代码之前,您需要能够与现有客户端建立连接。可能存在网络或防火墙问题。该服务器似乎在您的本地网络上。您可以从同一台服务器使用 Kassl 客户端连接到它吗?OPC DA 依赖于 COM/DCOM 组件进行通信,这往往与远程连接和防火墙存在许多问题。

尝试以下步骤:

  1. ping 服务器并确保它回复。
  2. 在与服务器相同的 Windows 机器上安装 OPC 客户端(如 Kassl 或Kepware )并查看它是否可以连接。
  3. 如果可以,请禁用防火墙、防病毒等,看看是否可以远程连接。
  4. 检查是否需要进行任何端口转发。您可能想使用 Wireshark 查看数据发生了什么。

推荐阅读