View Issue Details

IDProjectCategoryView StatusLast Update
000845810000-006: MappingsSpecpublic2023-01-24 17:07
ReporterMohit Agarwal Assigned ToRandy Armstrong  
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionduplicate 
Target Version1.05.03 RC1 
Summary0008458: Standard Usage of NodeId in non-OPC UA applications such as Databases - Portable NodeId
Description
  1. Scenario:
    a. In OPC UA, for many properties or variables, the primary way to identify is NodeId. We want to consume the Events and Conditions Model from OPC UA and internal applications will store the data in the data bases.
    b. Example: ConditionClassId and ConditionSubClassId for Events and Conditions Model.
    c. But, when we read the data from a device via OPC UA and then an internal application wants to store it in the database, what is the best way to convert the NodeId to internal Id.
    d. In general, if we want to convert the NodeId to a string, we can try to use uri=x;id=”Test” format.
    i. Uri is the NamespaceUri of the specification in which the ID is defined.
    ii. Id is the identifier which can be integer, string, guid or bytestring.
  2. Overlap of namespace and NodeId type (i= or s=, or g= or b=)
    a. The main issue would be the namespace Index, as different OPC UA servers will have different indexes based on which namespace it supports.
    b. For example, if we use a namespace of Asset Management Basics Specification, the NodeId of OutOfResourcesConditionClassType is i=1009
    c. But based on the type of application, the NodeId could be ns=4;i=1009 or ns= ns=5;i=1009
    d. Now for now, I have suggested to use the following format, uri=AMB Uri;id=1009 and the application can have parsing logic instead of NamespaceIndex since that could vary based on the OPC UA Server.
  3. Standardized way to convert NodeIds format to String for non-OPC UA applications which consumes OPC UA data?
    a. The above option probably can be standardized so that the IDs are easily mapped in bi-directional way irrespective of the OPC UA server implementation which can include multiple namespaces?
    b. Maybe, either harmonization group or OPC UA group can have a mapping or approach to suggest a conversion to NodeId to String?
Additional Information

A standard way to convert a NodeId to string in a bi-directional way when the data is consumed from OPC UA and processed in applications which are NOT based on OPC UA.

We cannot use ns=index since index could change all the time based on the type of server. To some extent, it is an implementation specific detail but if we can standardize how to convert the NodeId to String, it would be useful in many applications.

TagsNo tags attached.
Commit Version
Fix Due Date

Relationships

duplicate of 0006720 closedRandy Armstrong Simplified JSON encoding as a text string for BuiltIn types ExpandedNodeId and QualifiedName 

Activities

Mohit Agarwal

2022-11-28 09:22

reporter   ~0018195

Adding additional notes:
In Part 6 - OPC 10000-6 - 1.05.01, NodeId (OPC UA XML and OPC UA JSON), the following formats are given to encode a NodeId as String:

XML: ns=<namespaceindex>;<type>=<value>
JSON: Only provided as a complex object option.

But, for Expanded NodeId in XML Encoding:

An ExpandedNodeId value is encoded as an xs:string with the syntax:
svr=<serverindex>;ns=<namespaceindex>;<type>=<value>
or
svr=<serverindex>;nsu=<uri>;<type>=<value> ---- THIS IS A GOOD OPTION to avoid NAMESPACE INDEX dependency. MAYBE be similar standard option can be given for NodeId in both XML and JSON options when we want to convert a NodeId to String...

Randy Armstrong

2022-12-28 06:48

administrator   ~0018357

Resolved by the normative string representation for NodeId.

Jim Luth

2023-01-24 17:07

administrator   ~0018572

Agreed to dup in web meeting.

Issue History

Date Modified Username Field Change
2022-11-23 12:36 Mohit Agarwal New Issue
2022-11-28 09:22 Mohit Agarwal Note Added: 0018195
2022-11-29 17:20 Jim Luth Project Feature Requests => 10000-006: Mappings
2022-11-29 17:20 Jim Luth Category Feature Request => Api Change
2022-11-29 17:27 Jim Luth Assigned To => Randy Armstrong
2022-11-29 17:27 Jim Luth Status new => assigned
2022-11-29 17:27 Jim Luth Category Api Change => Spec
2022-11-29 17:27 Jim Luth Target Version => 1.05.03 RC1
2022-12-28 06:48 Randy Armstrong Status assigned => resolved
2022-12-28 06:48 Randy Armstrong Resolution open => duplicate
2022-12-28 06:48 Randy Armstrong Fixed in Version => 1.05.03 RC1
2022-12-28 06:48 Randy Armstrong Note Added: 0018357
2022-12-28 06:48 Randy Armstrong Relationship added duplicate of 0006720
2023-01-24 17:07 Jim Luth Status resolved => closed
2023-01-24 17:07 Jim Luth Fixed in Version 1.05.03 RC1 =>
2023-01-24 17:07 Jim Luth Note Added: 0018572