OpcEnum.exe 是做什么的? Windows 在哪里存储可用的 OPC 服务器列表?

What does OpcEnum.exe do? Where does Windows store the list of available OPC servers?

我正在为 Windows 7 系统开发 OPC 客户端应用程序,该系统正在与 Rockwell RSLinx Classic 中的 OPC 服务器 运行 通信。

RSLinx Classic 软件包包括一个 OPC 测试客户端。客户端程序生成一个我可以连接到的 OPC 服务器列表(我的机器上有一些来自 National Instruments 的额外服务器,我不确定它们是如何到达那里的)。我选择一个服务器并连接。我可以监控服务器上实时更新的项目。所以我知道我有一个有效的客户端-服务器连接。

现在想自己写客户端。我怎样才能自己得到那个 OPC 服务器列表?我的研究表明,Rockwell and/or the National Instruments 软件在我的计算机上的文件夹 C:\Windows\SysWOW64 中安装了一个名为 OpcEnum.exe 的程序。它不在 PATH 上。 OpcEnum 服务显示在系统服务注册表中,它是 运行。如果您直接从其文件夹执行 OpcEnum.exe,它会运行...但不会向控制台输出任何内容。它有什么作用?它没有 -h 或 –help 命令行选项。据推测,它在某处更新了一个数据文件,其中列举了服务器名称。

我找不到任何详细描述 OpcEnum.exe 的文档,无法理解它。

感谢您的任何建议,谢谢!

OPCEnum 不特定于罗克韦尔。它是通用 OPC 基础设施的一部分,并在 OPC "Classic" 规范 (https://opcfoundation.org/developer-tools/specifications-classic/data-access/ ) 中进行了描述。

在那里您会发现它公开了它作为 COM 组件的功能。所以,如果你想使用它,你需要创建一个特定 COM 对象的实例(通过它的 CLSID),获取记录的接口,并使用它们的方法来获取计算机上的 COM 服务器列表,或者其他关于他们的信息。

OPCEnum 可以作为某些软件安装的一部分(由 Rockwell)安装,但它来自 OPC 基金会的 "OPC Core Components" (https://opcfoundation.org/developer-tools/samples-and-tools-classic/core-components/)。

有关服务器的信息存储在注册表中。事实上,OPC 服务器主要使用标准的 Microsoft COM 注册,它们的信息存储方式与其他 COM 组件相同,但 OPCEnum 知道服务器的组件 category/categories,因此它可以为您过滤掉 OPC 服务器;在 OPC 1.0 中,服务器未归入组件类别,因此 OPCEnum 依靠额外的注册表项 ("OPC") 来找到它们。