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).
| 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 |
12.2.7.2 FdtParameter
12.2.7.2.1 General
Table 69 shows the mapping for the FdtParameter.
| 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 | |
12.2.7.2.2 Datatype mapping
The datatype mapping for parameter data is described in Table 70.
| 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.