Skip to content

OPC UA PubSub Service 限制和约束

一般规则

发布者

NetworkMessage 中的 PublisherId 用作 OPC UA DataModel Asset 中的 name 字段。

  • 仅支持字段串格式。
  • publisherId 必须与用于 MQTT 连接中的 clientId 相同。
  • 字符数应介于1和128之间。
  • 允许用于 publisherId 的字符串:[a-zA-Z0-9_~-]+

请参考 Asset Management service 进一步验证。

类型

NetworkMessage 中的 StructureDefinition 用作 AssetType/EventType.

  • NetworkMessage 中的 KeyValuePairs 用作 EventType 中的 AssetType Variables 或 Fields。

请参考 Asset Management service 进一步验证。

NetworkMessage 中的 StructureField 用作 EventType 中的 Variable of AssetType 或 Field。

  • 特定字段例如 _time<variable>_qc 不会被创建用于 Variable of AssetType.
    • _time 用于时间序列中的 timestamp
    • <variable>_qc 用于指定 variable 的质量代码。
  • 特定字段(如 timestamp)不是作为 EventType 字段创建的,因为它已默认存在。

请参考 Asset Management service 进一步验证。

验证字符串输入

除非通知了其他任何规范,否则 NetworkMessage 中每个字符串的最大长度为255。如果 NetworkMessage 中的任何字符串值超过了最大限制,则整个 NetworkMessage 将被丢弃。

特定字符串验证

Publisher Id:

  • 该字段用于 OPC UA 数据模型 asset (core.opcuadatamodel) 的名称字段。
  • 仅支持字符串值。
  • 字符数应介于1和128之间。
  • 允许用于 publisherId 的字符串:[a-zA-Z0-9_~-]+

如果不满足以上要求,则整个 NetworkMessage 将被删除。有关进一步验证,请参阅 Asset Management service 限制。

StructureDefinition Name

  • 此字段用于 Asset Types/Event Types 的名称字段。 请参考 Asset Management service 进一步验证。

额外用法

  • 该字段还用于 Aspect Type 的 <name>Fields 格式的名称字段。

Aspect Type And Aspect Name

  • Aspect Type Name: Aspect Types 的 “Name” 字段也使用相同的结构定义字段 Name。
  • 最小字符数为1,最大字符数为128。 模式: [a-zA-Z0-9_]+
  • Aspect Name: Aspect 的 “Name” 字段使用相同的结构定义名称。
  • 最小字符数为1,最大字符数为64。 模式:[a-zA-Z0-9_]

如果不满足以上要求,则整个 NetworkMessage 将被删除。

警告

在创建 Aspect Types 时添加了一些额外的字段,这可能会在 AssetManagement 中导致错误。

StructureField and EnumField Name

  • 此字段用于 Variables 的名称字段。
  • 最小字符数为1,最大字符数为64。模式: [a-zA-Z_][a-zA-Z0-9_]*

如果不满足以上要求,则整个 NetworkMessage 将被删除。

警告

需要在服务级别检查模式验证,以确保它与文档保持一致。

FieldMetaData Name

  • 此字段用于 Asset 的名称字段。层次结构 Asset 名称由'\'和'/'从该字段分隔。 拆分后的每部分必须满足以下要求;
  • 最小字符数为1,最大字符数为128。 模式: [^\/\]*

如果不满足以上要求,则整个 NetworkMessage 将被删除。

警告

需要检查模式的验证是否存在名称字段中的层次结构 asset。

FieldMetaData - 属性名称

  • 此字段用于Asset Type 的 Static Variables (例如 unit, prefix...)。
  • Minimum character count is 1 and maximum character count is 64. Pattern: [a-zA-Z_][a-zA-Z0-9_]*

如果不满足以上要求,则整个 NetworkMessage 将被删除。

警告

需要在服务级别检查模式的验证,以确保它与文档保持一致。

NodeId

  • 根据 OPC UA Part6 1.04.17 规范,NodeId 字段有各种编码值,其中支持“四字节”类型。
  • 除了“四字节”之外的任何其他类型,NodeId 都会导致整个 NetworkMessage 被删除。

StructureFields[]

  • StructureField 的数据类型必须满足以下要求:
    • 命名空间应该等于 OPC UA 的保留命名空间。默认情况下,其他名称空间被视为 EnumDataType,并且该值始终作为 “String” 值处理。
    • 值应该等于有限的BuiltinType之一(只允许1到14)
  • StructureField 的一些特定名称在 MindSphere 中有特殊的含义,这些名称不是作为 aspect variables 创建的。
    • StructureField 的 “_time” 名称将被用作 IoT 中特定数据的时间戳。
    • 如果名称以“_qc”结尾,例如“variable_qc”,这意味着它是variable 的质量代码值。

FieldMetaData[]

  • 元数据最多支持800个字段。
  • 名称

    • 此字段的名称在发布者中必须是唯一的。
    • 允许使用所有字符,包括斜杠(/)和反斜杠()。
    • 斜杠和反斜杠字符表示字段名的层次结构。
    • 字段名由斜杠或/和反斜杠字符分隔。
    • 创建OPC UA 数据类型 (core.opcuadatatype) asset,并使用字段名称的最新部分作为 asset 名称。
    • 为字段名的层次结构部分创建 OPC UA 层次结构类型 asset。
    • 字段名不能以斜杠或反斜杠开始和结束。
    • 字段名正则表达式: [\\/][\\/]{0,1}[^\\/]$
    • 对于所有字段名部分,最大字符数为128。
    • 字段名最多包含2个层次结构 asset (3级)。

    示例:

    字段名: hierarchyPart1/hierarchyPart2/dataFieldName

    创建 Assets:

hierarchyPart1 : OPC UA Hierarchy Type
    hierarchyPart2 : OPC UA Hierarchy Type
      dataFieldName : OPC UA Data Type

EnumDataTypes

  • 系统可以对 EnumDataTypes 进行编码,但不使用它们的值。相反,如果 structuredDataType 的任何 structureField 使用自定义 NodeId 值,那么它将被视为 Enum 数据类型,并且总是作为“STRING”值处理。

属性

  • 即使属性是 FieldMetaData 对象的附加属性,它们也被认为是 StructureDescription 对象的附加属性。如果要基于 StructureDescription 创建新的 asset type,系统将搜索找到包含属性的第一个 FieldMetaData 对象。属性的值将被用作将要创建的asset type 的 variable。
    • 例如,StructureDescription 将自定义对象类型描述为 “SPS”。FieldMetaData 将自定义对象实例描述为 “SPS1”,属性为“unit”和“prefix”。这两个值将用于创建一个名为 “SPS” 的新 asset type。这意味着所有其他的 SPS 自定义对象实例都要符合这个结构。
  • 属性可能值的最大限制仅限于两个值。

ChunkedNetworkMessagePayload

  • 块包标识符是: PublisherId, DataSetWriterId and MessageSequenceNumber.
  • 如果任何块消息的 totalSize 值与其他块消息不同,则将删除分块后的 NetworkMessage。
  • 如果所有的块包都没有完成,那么在一天之后所有上传的块包都会被删除。
  • 块集的最大块数不能超过20。

限制

OPC UA PubSub 限制

Item Soft Limit
Max number of Publisher per Tenant 根据你的代理配额,最多不超过50个
Max number of DataSetWriterId per Publisher 3
Max number of ConfigurationVersion per DataSetWriterId 1
Max size of NetworkMessage 20KB
Max size of Chunk NetworkMessage 20KB
Max size of Chunk bundle 200 KB
Max number of of Chunk NetworkMessage 30
Max duration time of Chunk packages 1 hour

TimeSeries Meta Package (per tenant)

Item Soft Limit
Max number of meta packages per min 1
Max size of meta packages 200KB
Max number of StructureDefinition 25
Max number of Field per MetaData 30
Max number of StructureDefinition Field Count 50
Total max number of Field per Publisher 50
Max number of KeyValuePairs 128
Max number of hierarchy level 3

TimeSeries Data Package (per tenant)

Item Soft Limit
Max number of data packages per sec 1
Max size of data packages 200KB

Event Meta Package (per tenant)

Item Soft Limit
Max number of meta packages per min 1
Max size of meta packages 200KB
Max number of StructureDefinition 10
Max number of Field per MetaData 50
Total max number ofField per Publisher 50
Max number of hierarchy level 3

Event Data Package (per tenant)

Item Soft Limit
Max number of data packages per sec 1
Max size of data packages 200KB

Last update: March 22, 2023