Can a Variable Node point to a 'IsAbstract' specified DataType in the Address Space? |OPC UA Standard|Forum|OPC Foundation

Avatar
Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
sp_Feed sp_PrintTopic sp_TopicIcon
Can a Variable Node point to a 'IsAbstract' specified DataType in the Address Space?
Avatar
Martin Lang
Germany
Member
Members
Forum Posts: 72
Member Since:
06/25/2014
sp_UserOfflineSmall Offline
1
02/01/2017 - 02:35
sp_Permalink sp_Print

Hello all!

The UA Spec. Part 3, chapter 5.8.3 says about the DataType Attribute 'IsAbstract':

The IsAbstract Attribute specifies if the DataType is abstract or not. Abstract DataTypes can be used  in  the  AddressSpace,  i.e.  Variables  and  VariableTypes  can  point  with  their  DataType Attribute  to  an  abstract  DataType.  However,  concrete  values  can  never  be  of  an  abstract DataType and shall always be of a concrete subtype of the abstract DataType.

My question:
When is it allowed or recommended to let a Variable point to an abstract DataType and when represent a Variable Node a concrete value?

If I look into the OPC Foundation ReferenceServer Sample there is a Variable Node 'Integer' which is from the DataType Integer as well as one Node from DataType UInteger. These two Nodes are not further specified (e. g. some reference to DataType Int32). In comparison with the CTT test script "Attribute Services/Attribute Write Values/010.js+011.js" each Integer or UInteger specified Node must support up to Int64 or UInt64.

Probably some one can explain it to me?!

Thanks and regards,
Martin

Avatar
Guest
Guests
2
02/03/2017 - 00:11
sp_Permalink sp_Print

As written in Part 3, the DataType Attribute of a Variable can reference an abstract DataType. Although allowed, though, this is assumed to be rare and mainly used for "Number" and abstract sub-types of "Number".

Servers may choose to use an abstract DataType if the concrete DataType for a Variable value is not known or even varies. When reading, of course, the Value has to have a concrete DataType.

One disadvantage of using abstract is that Clients have no clue which concrete sub-types are actually supported. Clients that detect an abstract DataType will then usually read the Value to determine the concrete DataType. But they have to be prepared to receive a different concrete DataType on the next Read ...

The mentioned test scripts may be wrong and I already asked the compliance group to review.

Avatar
Martin Lang
Germany
Member
Members
Forum Posts: 72
Member Since:
06/25/2014
sp_UserOfflineSmall Offline
3
02/03/2017 - 01:01
sp_Permalink sp_Print

Thanks a lot for the clarification to me!
Now it makes sense to me, after I know how Server and Client shall handle this situation.

Regards,
Martin

Forum Timezone: America/Phoenix
Most Users Ever Online: 510
Currently Online:
Guest(s) 26
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Forum Stats:
Groups: 2
Forums: 10
Topics: 1435
Posts: 4855