12.2.7 Variable

12.2.7.1 General

The parameter set of a device (offline and online) is described by means of the DataInfo data type (available with the <GetDataInfo> method from IInstanceData (offline) and IDeviceData (online)).

DataInfo provides a description of the available data without the values. The actual values are accessible with <Read> and <Write> methods from IInstanceData (offline) and IDeviceData (online).

DataInfo provides a list of data items (member DeviceDataItems), which may represent a range of types. Some of these data items are mapped to DataVariables (see Table 68).

Table 68 – Mapping of FDT data items
OPCFDT
DataVariable
(according OPC UA 10000-3)
Data
UnitData
RangeData
AlarmData
SubstituteData
StructDataGroup

FunctionalGroup

(according OPC UA 10000-100)

DataGroup
Block object
(according OPC UA 10000-100)
ModuleDataGroup
12.2.7.2 FdtParameter
12.2.7.2.1 General

Table 69 shows the mapping for the FdtParameter.

Table 69 – FdtParameter mapping
OPCFDT
AttributeInterfaceMethodData memberDescription
NodeClassFixed value: Variable
BrowseNameIData<GetDataInfo>Name
DisplayNameIData<GetDataInfo>Label
DescriptionIData<GetDataInfo>Descriptor
WriteMaskGenerated by Frame
UserWriteMaskIData<GetDataInfo>IsChangeEnabledGenerated by Frame
ValueIData<Read> / <Write>
DataTypeIData<GetDataInfo>DataTypeInfo
ValueRankIData<GetDataInfo>DataTypeInfoIndicates whether the datatype is an array.
ArrayDimensionsIData<GetDataInfo>DataTypeInfoIf the datatype is an array, then provide dimensions.
AccessLevelIData<GetDataInfo>IsReadable, IsWritableGenerated by Frame
UserAccessLevelIData<GetDataInfo>IsReadable, IsWritableGenerated by Frame
MinimumSamplingIntervalDefined by Frame.
HistorizingDefined by Frame.
BrowseName
2:EURangeIData<GetDataInfo>RangeDataRefs
2:EngineeringUnitsIData<GetDataInfo>UnitDataRef
0:HasComponentMay be used for structured datatypes (StructDataGroup)
2:HasDefinitionDefined by Frame.
2:ValuePrecisionDefined by Frame.
DisplayFormatIData<GetDataInfo>DisplayFormat
AlarmTypeIData<GetDataInfo>AlarmType
RangeTypeIData<GetDataInfo>RangeType
SubstitutionTypeIData<GetDataInfo>SubstitutionType
ApplicationIdIData<GetDataInfo>ApplicationId
SemanticInfoIData<GetDataInfo>SemanticInfos
DataRefIData<GetDataInfo>DataRefs
IOSignalRefIData<GetDataInfo>IOSignalRef
AlarmDataRefIData<GetDataInfo>AlarmDataRefs
SubstituteDataRefIData<GetDataInfo>SubstituteDataRef
12.2.7.2.2 Datatype mapping

The datatype mapping for parameter data is described in Table 70.

Table 70 – Mapping of simple data types
OPCFDT
Data typeData typeDescription
FloatFloat
DoubleDouble
ByteByte
Int32Int
Int64Long
UInt32UInt
UInt64ULong
DateTimeDateTime
DateTimeDateDate is represented as date at 0:00 a clock.
DurationTimeTime is expressed as duration since midnight.
DurationTimeSpanDuration is expressed in milliseconds, TimeSpan is expressed in terms of days, hours, minutes. For the conversion of large TimeSpan a loss of precision may occur.
StringString
Array of ByteBinaryByteArray
Array of BitBinaryBitArray
EnumerationEnumerator
BooleanBoolean
SByteSByte

In OPC UA array datatypes are represented by a combination of the properties datatype, value-rank and array-dimensions (see OPC OPC UA 10000-5, section 5.6.2).

In FDT array datatypes are represented with a dedicated ArrayDatatypeInfo datatype. This datatype has a member ArrayDatatypeInfo.ArrayDimensions, which specifies the length of each dimension of the array.

The mapping for array data types is defined as follows.