我正在为Windows 7系统开发与正在Rockwell RSLinx Classic中运行的OPC服务器通信的OPC客户端应用程序。
RSLinx Classic软件包包括一个OPC测试客户端。客户程序产生了我可以连接的OPC服务器列表(National Instruments的机器上有一些额外的服务器,我不确定它们是如何到达的)。我选择一台服务器并连接。我可以监视服务器上实时更新的项目。所以我知道我的客户端-服务器连接正常。
现在,我想编写自己的客户端。我怎样才能自己获得该OPC服务器列表?我的研究表明,Rockwell和/或National Instruments软件在我的计算机上的文件夹C:\ Windows \ SysWOW64中安装了一个名为OpcEnum.exe的程序。它不在PATH上。 OpcEnum服务显示在系统服务注册表中,并且正在运行。如果直接从其文件夹中执行OpcEnum.exe,它将运行...但不向控制台输出任何内容。它有什么作用?它没有-h或–help命令行选项。据推测,它会更新一个枚举服务器名称的数据文件。
我找不到足够详细的描述OpcEnum.exe的文档来理解它。
感谢您提出任何建议,谢谢!
OPCEnum并非特定于罗克韦尔。它是常见OPC基础结构的一部分,在OPC“经典”规范(https://opcfoundation.org/developer-tools/specifications-classic/data-access/)中进行了描述。
您将发现它作为COM组件公开其功能。因此,如果要使用它,则需要创建特定COM对象的实例(通过其CLSID),获取记录的接口,并使用其方法获取计算机或其他计算机上的COM服务器列表。有关它们的信息。
OPCEnum可以作为某些软件安装的一部分安装(由Rockwell进行安装,但是它来自OPC Foundation(https://opcfoundation.org/developer-tools/samples-and-tools-classic/core-components/)的“ OPC核心组件”。
关于服务器的信息存储在注册表中。实际上,OPC服务器主要使用标准的Microsoft COM注册,它们的信息与其他COM组件的存储方式相同,但是OPCEnum知道服务器的组件类别,因此它可以为您过滤掉OPC服务器。在OPC 1.0中,服务器未分类为组件类别,因此OPCEnum依靠额外的注册表项(“ OPC”)来找到它们。