View Issue Details

IDProjectCategoryView StatusLast Update
000174910000-003: Address Spacepublic2012-04-09 13:58
ReporterKarl Deiretsbacher Assigned ToWolfgang Mahnke  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Fixed in Version1.02 
Summary0001749: Add optional EngineeringUnit property
Description

We want this property to be usable also on Base DataVariables.

TagsNo tags attached.
Commit Version
Fix Due Date

Relationships

related to 0001975 closedPaul Hunkar 10000-007: Profiles Add optional EngineeringUnit property 

Activities

Petr Kodet

2011-10-11 20:41

reporter   ~0003039

I am concerned how the AnalogItemType and related EUInformation are designed, with respect to information duplicity and memory consumption.
If undestanding it properly, any instance of AnalogItemType supporting EUInformation will have a new separate instance of EUInformation, which contans its own copy of all fields m_namespaceUri, m_unitId, m_displayName, m_description. For any new created AnalogItemType , completre new EUInformation is created ( code fragment below ). Imagine an array of 100x100 AnalogItemType values.
Is not more feasible some some alternative design, perhaps with AnalogItemType just containing a reference to EUInformation, single per server ( or AnalogItemType containg just Id of a unit, and EUInformation itself available in a global map Id -> EUInformation) ?

// ------- DaItemState.cs
Code:

/// <summary>
/// Initializes the node from the element.
/// </summary>
public void Initialize(ISystemContext context, DaElement element, ushort namespaceIndex)
{
...
// set the TypeDefinition based on the ElementType.
switch (element.ElementType)
{
...
case DaElementType.AnalogItem:
{
...
// check if EngineeringUnits is supported.
if (element.EngineeringUnits != null)
{
...
property.Value = new EUInformation(element.EngineeringUnits, namespaceUri);
}
break;
}
...

// ------- Opc.Ua.Types.xsd
Code:

<xs:complexType name="EUInformation">
<xs:sequence>
<xs:element name="NamespaceUri" type="xs:string" minOccurs="0" nillable="true" />
<xs:element name="UnitId" type="xs:int" minOccurs="0" />
<xs:element name="DisplayName" type="ua:LocalizedText" minOccurs="0" nillable="true" />
<xs:element name="Description" type="ua:LocalizedText" minOccurs="0" nillable="true" />
</xs:sequence>
</xs:complexType>

Karl Deiretsbacher

2011-10-28 12:20

developer   ~0003046

To Petr Kodet:
This is a false assumption. Servers may share any property across all instances where it applies to.

If a server permits writing to such shared properties it has to differentiate two use cases:
(1) The change shall affect all instances or
(2) The change shall only affect a single instance. In this latter case the server has to maintain separate NodeIds for each instance and has to initialise a new property instance when such a Write is performed. In this case the additional memory consumption is necessary

Wolfgang Mahnke

2011-12-19 16:44

developer   ~0003094

Fixed in doc 1.02.16

Added optional property to node class Variable.
Made forward reference for data type and details of definition to part 8.

Jim Luth

2012-02-07 21:24

administrator   ~0003269

Rreviewed and agreed in telecon.

Issue History

Date Modified Username Field Change
2011-09-16 00:36 Karl Deiretsbacher New Issue
2011-09-16 00:38 Karl Deiretsbacher Status new => assigned
2011-09-16 00:38 Karl Deiretsbacher Assigned To => Wolfgang Mahnke
2011-09-16 01:05 Karl Deiretsbacher Project 10000-005: Information Model => 10000-003: Address Space
2011-10-11 20:41 Petr Kodet Note Added: 0003039
2011-10-28 12:20 Karl Deiretsbacher Note Added: 0003046
2011-12-19 16:44 Wolfgang Mahnke Status assigned => resolved
2011-12-19 16:44 Wolfgang Mahnke Fixed in Version => 1.02
2011-12-19 16:44 Wolfgang Mahnke Resolution open => fixed
2011-12-19 16:44 Wolfgang Mahnke Note Added: 0003094
2012-02-07 21:24 Jim Luth Status resolved => closed
2012-02-07 21:24 Jim Luth Note Added: 0003269
2012-04-09 13:58 Jim Luth Issue cloned: 0001975
2012-04-09 13:58 Jim Luth Relationship added related to 0001975