10.1 Primitive data types
The mapping of primitive data types is described in Table 91.
| BACnet | OPC UA |
| Null | Null |
| 0:Boolean | 0:Boolean |
Unsigned Integer Abstract unlimited type | There are three different options for mapping the abstract BACnet data type to OPC UA. The BACnet data type is mapped to one of the concrete OPC UA DataTypes Byte, UInt16, UInt32, UInt64 if a byte length is defined in BACnet. The BACnet data type is mapped to the abstract OPC UA data type 0:UInteger if the DataType is used in a Variable definition The BACnet data type is mapped to UInt64, UInt32 or a subtype of ByteString if used in Structure DataTypes. |
| Signed Integer | There are three different options for mapping the abstract BACnet data type to OPC UA. The BACnet data type is mapped to one of the concrete OPC UA DataTypes SByte, Int16, Int32, Int64 if a byte length is defined in BACnet. The BACnet data type is mapped to the abstract OPC UA data type Integer if the DataType is used in a Variable definition The BACnet datat type is mapped to Int64, Int32 or a subtype of ByteString if used in Structure DataTypes. |
| Real | 0:Float |
| Double | 0:Double |
| Octet String | 0:ByteString |
| Character String | 0:String |
| Bit String | OPC UA OptionSet See 10.3 for the definition of option set data types. |
| Enumerated | OPC UA Enumeration " -" in names replaced by "" For reserved/deprecated members: Gaps are used See 10.4 for the definition of enumerated data types. |
| Date | Structure BACnetDate |
| Time | Structure BACnetTime |
| BACnetObjectIdentifier | See 10.2.1 |
10.1.1 SEQUENCE with optional fields
Currently Structures with special indication for optional fields
10.1.2 SEQUENCE OF
Within structure definition field with IsArray = true
10.1.3 SEQUENCE with CHOICE
| - new virtual structure: TYPE+"SubTypes" subtypes + sub structure definitions for choices | |
Example:
BACnetSpecialEvent::= SEQUENCE {
period CHOICE {
| calendarEntry | [0] BACnetCalendarEntry, |
| calendarReference [1] BACnetObjectIdentifier | |
| }, | |
| listOfTimeValues [2] SEQUENCE OF BACnetTimeValue, | |
| eventPriority | [3] Unsigned (1..16) |
}
Will be mapped to:
OPC UA Structure: BACnetSpecialEventPeriod (IsUnion = true)
| calendarEntry: BACnetCalendarEntry | |
| calendarReference: BACnetObjectIdentifier |
OPC UA structure: BACnetSpecialEvent
| period : BACnetSpecialEventPeriod | |
| listOfTimeValues : BACnetTimeValue (ValueRank = Array) | |
| eventPriority : UInt32 |
10.1.4 BACnetARRAY[7] of TYPE
| - DataType = TYPE (Structure) | |
| - ValueRank = Array | |
| - ArrayDimension[0] = 7 |
10.1.5 BACnetARRAY[N] of TYPE
| - DataType = TYPE (Structure) |
- ValueRank = Array
10.1.6 List Of of TYPE
| - DataType = TYPE (Structure) | |
| - ValueRank = Array | |
| - Methods for Adding/Removing Elements |
10.1.7 Any
BaseDataType