我正在为Windows7系统开发一个RSLinx客户端应用程序,它与运行在Rockwell OPC Classic中的OPC服务器对话。
OPC包包括一个RSLinx测试客户端。客户机程序生成一个我可以连接的OPC服务器列表(在我的机器上有一些来自National Instruments的额外服务器,我不确定它们是如何到达那里的)。我选择一台服务器并进行连接。我可以监控服务器上的项目,这些项目会实时更新。因此,我知道我有一个工作的客户端-服务器连接。
现在我想编写我自己的客户端。我怎样才能得到OPC服务器列表?我的研究表明,罗克韦尔和/或国家仪器公司的软件在我的电脑上安装了一个名为OpcEnum.exe的程序,位于C:\Windows\SysWOW64文件夹中。它不在路上。OpcEnum服务出现在System Services注册表中,并且正在运行。如果您直接从它的文件夹执行OpcEnum.exe,它将运行...但不向控制台输出任何内容。是干什么的呢?它没有-h或-help命令行选项。据推测,它会在某处更新枚举服务器名称的数据文件。
我找不到任何详细描述OpcEnum.exe的文档来理解它。
我们非常感谢您的建议,谢谢!
发布于 2020-05-07 13:53:38
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 Core Components“。
有关服务器的信息存储在注册表中。事实上,OPC服务器主要使用标准的Microsoft COM注册,它们的信息存储方式与其他COM组件相同,但OPCEnum知道服务器的组件类别,因此它可以为您筛选出OPC服务器;在OPC1.0中,服务器没有被归类为组件类别,因此OPCEnum依赖额外的注册表项(" OPC ")来查找它们。
https://stackoverflow.com/questions/61645617
复制相似问题