【发布时间】:2020-06-11 12:06:23
【问题描述】:
通读一些现有的 OPC UA 文档 (OPC UA eBook), (github repo), (Home page) 您会遇到类型定义以及如何使用它们来蓝图引用它的任何对象。
但是,通过 github 存储库中的一些示例代码,我找不到明确的示例,类型定义如何使数据访问更容易或更清晰。
例如:
在 github 存储库中的解决方案“UA QuickStart applications”中,有一个 windows 窗体项目“Boiler client”,它在地址空间中使用 2 个不同的“Boiler Type”实例,并根据所选的组合框项目将其变量投影到文本框中。
查看代码时,您可以看到锅炉确实是使用“锅炉类型”标志选择的,但要映射的属性仍然是硬编码的,并且使用相对路径而不是使用类型找到。
Two different boiler instances
Boiler client with seperate variable display
目前,为我使用 OPC UA 数据(节点)意味着我必须列出我想要读取的所有节点地址中的每一个,并在 Session.Read() 中使用它们或使用它们监听它们监控项。
相反,我认为应该可以读取对象中的所有节点并将它们映射到 CLR 对象。
我的问题: C# repo 是否可以从整个对象中捕获数据(使用类型定义或其他方式),而不必使用其地址手动读取每个节点? (读取(“节点地址”))
替代问题: 如果不能在消费者中使用,即使添加类型定义又有什么用? 这对 PLC 程序员来说是一种安慰吗?
【问题讨论】: