-
Notifications
You must be signed in to change notification settings - Fork 0
Ideas for Mapping
Most OPC UA applications use a Server/Client model rather than Publisher/Subscriber (Pub/Sub). Furthermore, almost all Companion Specifications define an Address Space and no DataSetClasses or DataSets. For the umati Dashboard, the semantics of the address space are essential. Therefore, a mapping between OPC UA Address Space and OPC UA Pub/Sub must be defined for use with umati.
(see https://github.com/umati/UA-CloudPublisher/issues/5#issuecomment-2060608587)
- Be able to react to dynamic changes in the address space (nodes are added / nodes are deleted)
- Resolve pro-mans references (NodeId as values)
- Hierarchy references must be mapped
- No-hierachy references should be mapped if necessary
- Provide TypeInformation
- Methods should already be considered
- Online detection (possibly as separate topics)
- Objects that can be empty.
- Events / alarms must be able to be mapped
- Coordinate the completeness of the run
- The encoding should be UA JSON
- Dimensioning for approx. 350 subscribers (machines + dashboard users)
- Custom DataType must be included
The following examples are used for all recommendation:
- mqtt dev.umati.app : umati/v2/vdw/devclient/MachineToolType/nsu=http:_2F_2Fwww.3yourmind.com_2FBasicAMMachine_2F;i=66382
- in topic structure
- BrowsePath as Property in MetaDataField
- Properties of DataSetWriterProperties
- Defining additional Fields in Dataset
- DataSetClass ?
- By-Pass Address Information with e.g. CloudLibrary
- Encoding im Name of the Field (siehe https://www.linkedin.com/posts/opc-foundation_the-concept-of-using-asset-hierarchies-as-activity-7154150574630838273-zZTQ?utm_source=share&utm_medium=member_desktop)
Hierarchial Reference will be mapped via the topic strutuce.
Topic im umati:
<Prefix>/json/data/<PublisherId>/MachineToolType/nsu=http:_2F_2Fwww.3yourmind.com_2FBasicAMMachine_2F;i=66382/Monitoring/MachineTool
Encoding:
- DataVariable -> Field (Properties in MetaDataField Properties)
- Properties -> DataSetWriterProperties
- easy to understand / debug
- smaller DataSets
- fit not good in opc ua standard
- more topic to watch/oganize
- not hierachical reference can be mapped (additional reommendation is needed)
- TypeInformation are not mapped
Hierarchial Reference and other semantic information are mapped via MetaDataField. All variables of one machine are mapped to one datset
Topic im umati:
<Prefix>/json/data/<PublisherId>/MachineToolType/nsu=http:_2F_2Fwww.3yourmind.com_2FBasicAMMachine_2F;i=66382/
Encoding:
- Variables-> Fields
- Properties are used to include semantic information.
Key | Value | Value DataType | Comment |
---|---|---|---|
ReferenceType | targetId | NodeID | TargetId is the other nodeId of the reference linked with the node |
- only one topic per Writer
- semantic missmatch with term property
- a lot of semantic is encoded in the properties
Hierarchial Reference and other semantic information are mapped via DataSetWriterProperties. All variables of one machine are mapped to one datset
<Prefix>/json/data/<PublisherId>/MachineToolType/nsu=http:_2F_2Fwww.3yourmind.com_2FBasicAMMachine_2F;i=66382/
- Variables-> Fields
- Properties are used to include semantic information.
Key | Value | Value DataType | Comment |
---|---|---|---|
ReferenceType | targetId | NodeID | TargetId is the other nodeId of the reference linked with the node |
- only one topic per Writer
- semantic missmatch with term property
- a lot of semantic is encoded in the properties
The semantic Information like hasTypedefinition or hasParent are seperat fields definied in the DataSetMetadata
<Prefix>/json/data/<PublisherId>/MachineToolType/nsu=http:_2F_2Fwww.3yourmind.com_2FBasicAMMachine_2F;i=66382/
Variables -> Fields References are seperate Fields
- data messages contain the semantic directly (easier to read)
- additional custom field which are not standardized
- big data messages (containing a lot of semantic)
The DataSetClass contains additonal information
<Prefix>/json/data/<PublisherId>/MachineToolType/nsu=http:_2F_2Fwww.3yourmind.com_2FBasicAMMachine_2F;i=66382/
todo
todo
todo
e.g use DataClassID for Type and Fields