The mapping of primitive data types is described in Table 91.
Table 91 – Mapping of primitive data types
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.
|
Signed Integer |
There are three different options for mapping the abstract BACnet data type to OPC UA.
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 |
- Currently Structures with special indication for optional fields
- Within structure definition field with IsArray = true
- 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
- DataType = TYPE (Structure)
- ValueRank = Array
- ArrayDimension[0] = 7
- DataType = TYPE (Structure)
- ValueRank = Array
- DataType = TYPE (Structure)
- ValueRank = Array
- Methods for Adding/Removing Elements
- BaseDataType