c# - 有什么方法可以减少 OPC UA 客户端中的标签浏览时间?...连接 OPC UA 服务器时

标签 c# c++ visual-studio opc-ua opc

我已经减少并检查了 SamplingInterval 和 PublishingInterval..values 没有影响。 你能提出任何建议吗?让我知道。

最佳答案

如前所述,SamplingIntervalPublishingInterval 不会影响Browse 服务。这就是您看不到任何改进的原因。

在 OPC UA 中浏览在两端都非常昂​​贵,但您可能可以进行一些优化。

我不知道您使用的是什么技术(或 SDK 或语言),但这里列出了您可以调查的事项:

  1. 过滤您的浏览请求:例如,如果您只对对象和变量感兴趣而不是类型等,您可以将 nodeClassMask 应用于您的浏览请求(您的 SDK 或堆栈应该允许这样做)。这将极大地减少用于响应的信息。
  2. 选择您的浏览方向:在浏览请求中,您可以指定 browseDirection 标志来告诉服务器遵循特定类型的引用(向前、向后或两者) ).在大多数情况下,如果您要浏览变量和对象,forward 就是您想要的。这也将加快请求/响应。您将在同一规范以及您的 SDK 文档中看到该参数。
  3. 选择要遵循的引用类型:与 #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/

相关文章:

.net - 为 .NET 跨平台开发组织 Visual Studio 项目和代码的行业标准方法是什么

C# DynamicPDF 合并导致 "Index out of bounds"错误

c# - 如何在使用 foreach 语句循环 winform 控件时更改循环序列

c++ - 获取浏览器进程ID,然后在C++程序中使用

visual-studio - 在 Visual Studio 中更改默认 XML 注释片段

asp.net - 在 ASP.NET Web 应用程序中工作时,您将哪些文件检入源代码控制管理系统?

c# - 为什么 LINQ 运算符被定义为 IEnumerable 接口(interface)上的扩展方法,而不是接口(interface)本身的一部分? C#

c# - 使用 Json.Net 序列化对象会导致内存不足异常

c++ - 预处理器的奇怪错误

Java 和 SWIG : class into a package