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
OPC |
FDT |
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 |
Table 69 shows the mapping for the FdtParameter.
Table 69 – FdtParameter mapping
OPC |
FDT |
|||
Attribute |
Interface |
Method |
Data member |
Description |
NodeClass |
|
|
|
Fixed value: Variable |
BrowseName |
IData |
<GetDataInfo> |
Name |
|
DisplayName |
IData |
<GetDataInfo> |
Label |
|
Description |
IData |
<GetDataInfo> |
Descriptor |
|
WriteMask |
|
|
|
Generated by Frame |
UserWriteMask |
IData |
<GetDataInfo> |
IsChangeEnabled |
Generated by Frame |
Value |
IData |
<Read> / <Write> |
|
|
DataType |
IData |
<GetDataInfo> |
DataTypeInfo |
|
ValueRank |
IData |
<GetDataInfo> |
DataTypeInfo |
Indicates whether the datatype is an array. |
ArrayDimensions |
IData |
<GetDataInfo> |
DataTypeInfo |
If the datatype is an array, then provide dimensions. |
AccessLevel |
IData |
<GetDataInfo> |
IsReadable, IsWritable |
Generated by Frame |
UserAccessLevel |
IData |
<GetDataInfo> |
IsReadable, IsWritable |
Generated by Frame |
MinimumSamplingInterval |
|
|
|
Defined by Frame. |
Historizing |
|
|
|
Defined by Frame. |
BrowseName |
|
|
|
|
2:EURange |
IData |
<GetDataInfo> |
RangeDataRefs |
|
2:EngineeringUnits |
IData |
<GetDataInfo> |
UnitDataRef |
|
0:HasComponent |
|
|
|
May be used for structured datatypes (StructDataGroup) |
2:HasDefinition |
|
|
|
Defined by Frame. |
2:ValuePrecision |
|
|
|
Defined by Frame. |
DisplayFormat |
IData |
<GetDataInfo> |
DisplayFormat |
|
AlarmType |
IData |
<GetDataInfo> |
AlarmType |
|
RangeType |
IData |
<GetDataInfo> |
RangeType |
|
SubstitutionType |
IData |
<GetDataInfo> |
SubstitutionType |
|
ApplicationId |
IData |
<GetDataInfo> |
ApplicationId |
|
SemanticInfo |
IData |
<GetDataInfo> |
SemanticInfos |
|
DataRef |
IData |
<GetDataInfo> |
DataRefs |
|
IOSignalRef |
IData |
<GetDataInfo> |
IOSignalRef |
|
AlarmDataRef |
IData |
<GetDataInfo> |
AlarmDataRefs |
|
SubstituteDataRef |
IData |
<GetDataInfo> |
SubstituteDataRef |
|
The datatype mapping for parameter data is described in Table 70.
Table 70 – Mapping of simple data types
OPC |
FDT |
|
Data type |
Data type |
Description |
Float |
Float |
|
Double |
Double |
|
Byte |
Byte |
|
Int32 |
Int |
|
Int64 |
Long |
|
UInt32 |
UInt |
|
UInt64 |
ULong |
|
DateTime |
DateTime |
|
DateTime |
Date |
Date is represented as date at 0:00 a clock. |
Duration |
Time |
Time is expressed as duration since midnight. |
Duration |
TimeSpan |
Duration 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. |
String |
String |
|
Array of Byte |
BinaryByteArray |
|
Array of Bit |
BinaryBitArray |
|
Enumeration |
Enumerator |
|
Boolean |
Boolean |
|
SByte |
SByte |
|
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.
- OPC datatype value is mapped according to Table 70.
- OPC value rank is:
- -1 for a simple datatype, or
- Number of fields in FDT ArrayDatatypeInfo.ArrayDimensions (always > 0)
- OPC array-dimensions property is:
- NULL for a simple datatype, or
- has the same value as ArrayDatatypeInfo.ArrayDimensions.
value of 0 means that the array has a variable length,
values > 0 indicate a defined length.