10.1 Primitive data types

The mapping of primitive data types is described in Table 91.

Table 91 – Mapping of primitive data types
BACnet OPC UA
NullNull
0:Boolean0: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 String0:ByteString
Character String0: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.

DateStructure BACnetDate
TimeStructure BACnetTime
BACnetObjectIdentifierSee 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