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 |