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.

  • 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

  • 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