我已经减少并检查了 SamplingInterval 和 PublishingInterval..values 没有影响。 你能提出任何建议吗?让我知道。
最佳答案
如前所述,SamplingInterval 和PublishingInterval 不会影响Browse 服务。这就是您看不到任何改进的原因。
在 OPC UA 中浏览在两端都非常昂贵,但您可能可以进行一些优化。
我不知道您使用的是什么技术(或 SDK 或语言),但这里列出了您可以调查的事项:
- 过滤您的浏览请求:例如,如果您只对对象和变量感兴趣而不是类型等,您可以将 nodeClassMask 应用于您的浏览请求(您的 SDK 或堆栈应该允许这样做)。这将极大地减少用于响应的信息。
- 选择您的浏览方向:在浏览请求中,您可以指定 browseDirection 标志来告诉服务器遵循特定类型的引用(向前、向后或两者) ).在大多数情况下,如果您要浏览变量和对象,forward 就是您想要的。这也将加快请求/响应。您将在同一规范以及您的 SDK 文档中看到该参数。
- 选择要遵循的引用类型:与 #2 类似,您可以选择一种特定的引用类型用于浏览(即 Organizes、HasComponent、HasTypeDefinition 等)以减少负载。此浏览请求参数称为 referenceTypeId。
有关您可以使用浏览请求执行的操作的详细信息,请参阅 this section of the OPC Specification .
为了给你一个想法,下面是一个使用 OPC UA .NET-Standard C# API 发出浏览请求并过滤了其中一些参数的片段:
session.Browse(
null,
null,
ObjectIds.ObjectsFolder,
0u,
BrowseDirection.Forward, //forward only
ReferenceTypeIds.HierarchicalReferences, //only hierarchical
true,
(uint)NodeClass.Variable | (uint)NodeClass.Object | (uint)NodeClass.Method,
out continuationPoint,
out references);
希望这对您有所帮助。 OPC UA 有时会很麻烦......
关于c# - 有什么方法可以减少 OPC UA 客户端中的标签浏览时间?...连接 OPC UA 服务器时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72228906/