7 OPC UA ObjectTypes representing BACnet object types
7.1 BACnetObjectType
7.1.1 General
This ObjectType defines the super type for all OPC UA ObjectTypes representing BACnet object types in an OPC UA Address Space. It introduces two properties common for all BACnet object types. Figure 10 shows an overview for the BACnetObjectType with its Properties and related ObjectTypes. It is formally defined in Table 8.

7.1.2 ObjectType definition
The BACnetObjectType is formally defined in Table 8.
| Attribute | Value | |||||
| BrowseName | BACnetObjectType | |||||
| IsAbstract | True | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BaseObjectType defined in OPC 10000-5 | ||||||
| 0:HasProperty | Variable | Object_Identifier | BACnetObjectIdentifier | 0:PropertyType | M | |
| 0:HasProperty | Variable | Profile_Name | 0:String | 0:PropertyType | O | |
The BACnetObjectType is an abstract type and cannot be used directly.
7.1.3 ObjectType Description
7.1.3.1 Standard OPC UA Object Attributes
The following BACnet properties are mapped to existing OPC UA Object Attributes.
Object_Name is mapped to the BrowseName of the OPC UA Object
Object_Type is mapped to the type definition of the OPC UA Object
Description is mapped to the OPC UA Attribute Description of the OPC UA Object
7.1.3.2 Variable Object_Identifier
This OPC UA Property represents the BACnet property Object_Identifier.
It is the unique address within the BACnet device. It consists of a BACnet object type and instance number. The BACnetObjectIdentifier DataType is defined in 10.2.1.
7.1.3.3 Variable Profile_Name
This OPC UA Property represents the BACnet property Profile_Name.
A profile defines a set of additional properties, behavior, and/or requirements for this object beyond those specified by BACnet.
7.2 BACnetObjectTypeUnknown
7.2.1 General
This ObjectType is used to represent object types not covered by this specification (standard or proprietary object types).
7.2.2 ObjectType definition
The BACnetObjectTypeUnknown is formally defined in Table 9.
| Attribute | Value | ||||
| BrowseName | BACnetObjectTypeUnknown | ||||
| IsAbstract | False | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of the BACnetObjectType defined in 7.1 | |||||
| 0:HasComponent | Variable | Object_Type | BACnetObjectTypeEnum | 0:BaseDataVariableType | M |
7.2.3 ObjectType Description
7.2.3.1 Variable Object_Type
This OPC UA Property, of DataType BACnetObjectTypeEnum, represents the BACnet property Object_Type. The BACnetObjectTypeEnum DataType is defined in 10.4.21.
The property is an enumeration that describes the BACnet object type of the type not covered by this specification. This information is contained in the OPC UA type definition NodeId for the BACnet object types mapped in this specification.
7.3 BACnetDeviceType
7.3.1 General
This OPC UA ObjectType represents a BACnet Device object type. There is exactly one BACnetDeviceType in each BACnet Device. The Object_Identifier property of the BACnetDeviceType identifies the device and is unique throughout the BACnet internetwork. This ObjectType exposes standard BACnet services through OPC UA methods. These methods may be invoked to manage the configuration of the BACnet Device.
Figure 11 shows an overview for the BACnetDeviceType with its Properties and related ObjectTypes. It is formally defined in Table 10.

7.3.2 ObjectType definition
The BACnetDeviceType is formally defined in Table 10.
| Attribute | Value | |||||
| BrowseName | BACnetDeviceType | |||||
| IsAbstract | False | |||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetObjectType defined in 7.1 | ||||||
| 0:HasComponent | Object | Object_List | BaseObjectType | M | ||
| 0:HasComponent | Object | Structured_Object_List | BaseObjectType | O | ||
| 0:HasComponent | Object | TimeManagement | BACnetTimeManagementType | O | ||
| 0:HasComponent | Object | BackupRestore | BACnetBackup RestoreType | O | ||
| 0:HasComponent | Object | MstpMaster | BACnetMstp MasterType | O | ||
| 0:HasComponent | Object | DeviceRestart | BACnetDevice RestartType | O | ||
| 0:HasNotifier | Object | <Notifier_Object_Name> | BACnetNotifier Type | OP | ||
| 0:HasProperty | Variable | System_Status | BACnetDeviceStatus | 0:PropertyType | M | |
| 0:HasProperty | Variable | Vendor_Name | 0:String | 0:PropertyType | M | |
| 0:HasProperty | Variable | Vendor_Identifier | 0:UInt16 | 0:PropertyType | M | |
| 0:HasProperty | Variable | Model_Name | 0:String | 0:PropertyType | M | |
| 0:HasProperty | Variable | Serial_Number | 0:String | 0:PropertyType | M | |
| 0:HasProperty | Variable | Firmware_Revision | 0:String | 0:PropertyType | M | |
| 0:HasProperty | Variable | Application_Software_Version | 0:String | 0:PropertyType | M | |
| 0:HasProperty | Variable | Location | 0:String | 0:PropertyType | O | |
| 0:HasProperty | Variable | Protocol_Version | 0:UInteger | 0:PropertyType | M | |
| 0:HasProperty | Variable | Protocol_Revision | 0:UInteger | 0:PropertyType | M | |
| 0:HasProperty | Variable | Protocol_Services_Supported | BACnetServices SupportedBits | 0:PropertyType | M | |
| 0:HasProperty | Variable | Protocol_Object_Types_Supported | BACnetObjectType SupportedBits | 0:PropertyType | M | |
| 0:HasProperty | Variable | Max_APDU_Length_Accepted | 0:UInteger | 0:PropertyType | M | |
| 0:HasProperty | Variable | Segmentation_Supported | BACnetSegmentation | 0:PropertyType | M | |
| 0:HasProperty | Variable | Max_Segments_Accepted | 0:UInteger | 0:PropertyType | O | |
| 0:HasProperty | Variable | APDU_Segment_Timeout | 0:UInteger | 0:PropertyType | O | |
| 0:HasProperty | Variable | APDU_Timeout | 0:UInteger | 0:PropertyType | M | |
| 0:HasProperty | Variable | Number_Of_APDU_Retries | 0:UInteger | 0:PropertyType | M | |
| 0:HasProperty | Variable | Device_Address_Binding | BACnetAddressBinding[] | 0:PropertyType | M | |
| 0:HasProperty | Variable | Database_Revision | 0:UInteger | 0:PropertyType | M | |
| 0:HasProperty | Variable | Active_COV_Subscriptions | BACnetCOV Subscription[] | 0:PropertyType | O | |
| 0:HasComponent | Method | CreateObject | O | |||
| 0:HasComponent | Method | DeleteObject | O | |||
| 0:HasComponent | Method | ReinitializeDevice | O | |||
| 0:HasComponent | Method | DeviceCommunicationControl | O | |||
| 0:HasComponent | Method | TextMessage | O | |||
| 0:HasComponent | Method | AddDeviceAddressBindings | O | |||
| 0:HasComponent | Method | RemoveDeviceAddressBindings | O | |||
| 0:GeneratesEvent | ObjectType | BACnetNotificationType | ||||
The BACnetDeviceType ObjectType is a concrete type and can be used directly.
The components of the BACnetDeviceType have additional subcomponents which are defined in Table 11.
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| Object_List | 0:HasProperty | Variable | Object_List | BACnetObjectIdentifier [] | 0:PropertyType | M |
| Object_List | 0:HasComponent | Object | <BACnetObjectName> | BACnetObjectType | OP | |
| Structured_Object_List | 0:HasProperty | Variable | Structured_Object_List | BACnetObjectIdentifier [] | 0:PropertyType | M |
| Structured_Object_List | 0:HasComponent | Object | <BACnetStructuredView Name> | BACnetStructuredViewType | OP |
7.3.3 ObjectType Description
7.3.3.1 EventNotifier Attribute
If the BACnet device object contains BACnet notification class objects, the SubscribeToEvents flag is set in the EventNotifier OPC UA Attribute.
7.3.3.2 Object Object_List
Object_List gathers the references to BACnet objects of the BACnet device provided through the BACnet property Object_List.
The OPC UA Property Object_List on the Object_List object, of DataType BACnetObjectIdentifier[], represents the BACnet property Object_List. The BACnetObjectIdentifier DataType is defined in 10.2.1. It contains a list of BACnet objects within the device.
The list of BACnetObjectTypes on the Object_List object contains the list of BACnet objects within the device. The list may be limited through configuration of the BACnetUaMapper.
7.3.3.3 Object Structured_Object_List
Structured_Object_List gathers the references to all BACnet structured view objects of the BACnet device provided through the BACnet property Structured_Object_List.
The OPC UA Property Structured_Object_List on the Structured_Object_List object, of DataType BACnetObjectIdentifier[], represents the BACnet property Structured_Object_List. The BACnetObjectIdentifier DataType is defined in 10.2.1. It contains a list of BACnet structured view objects within the device.
The list of BACnetStructuredViewTypes on the Structured_Object_List object contains the list of BACnet structured view objects within the device. The list may be limited through configuration of the BACnetUaMapper.
7.3.3.4 Object TimeManagement
This optional OPC UA Object, of type BACnetTimeManagementType, provides localized time and date information to consumers of the device object.
If an automatic time synchronization master is available, the special subtype BACnetAutomaticTimeSynchronizationMasterType is used.
7.3.3.5 Object BackupRestore
This optional OPC UA Object, of type BACnetBackupRestoreType, provides backup and restore status to consumers of the device object. This status provides information about the last restore time, backup failures, preparation and completion times, and so on.
7.3.3.6 Object MstpMaster
This optional OPC UA Object, of type BACnetMstpMasterType, describes paramters that are relevant if the device objects functions as a master on an MS/TP network.
7.3.3.7 Object DeviceRestart
This optional OPC UA Object, of type BACnetDeviceRestartType, provides information related to restarting the device. The last restart time and the set of devices that are notified when the device is restarted are provided by this object.
7.3.3.8 Notifier Objects
OPC UA Objects that have the EventNotifier Attribute set to SubscribeToEvents are so called event notifiers. They can be used by OPC UA Clients to subscribe for Events from the OPC UA Server. The OPC UA ReferenceType HasNotifier is used to build an event notifier tree starting from the Server Object.
BACnetNotifierType Objects like instances of BACnetNotificationClassTypes are used together with instances of the BACnetDeviceType to represent the OPC UA event notifier hierarchy starting from the Server object.
Figure 12 shows an example of BACnet objects referencing each other with BACnetObjectIdentifiers and the representation with OPC UA Objects and References. The example contains a BACnet Device object, one Analog Input object that creates alarms and therefore references a Notification Class object.

7.3.3.9 Variable System_Status
This OPC UA Property, of DataType BACnetDeviceStatus, represents the BACnet property System_Status. The BACnetDeviceStatus DataType is defined in 10.4.9.
The property is an enumeration that describes the current operating state of the device. Some example states are “operational”, “non-operational”, “backup in progress”, and so forth.
7.3.3.10 Variable Vendor_Name
This OPC UA Property, of DataType String, represents the BACnet property Vendor_Name.
This property identifies the manufacturer of the BACnet device.
7.3.3.11 Variable Vendor_Identifier
This OPC UA Property, of DataType UInt16, represents the BACnet property Vendor_Identifier.
This property represents a unique identification code, assigned by ASHRAE. The code is used to identify proprietary extensions to the protocol.
7.3.3.12 Variable Model_Name
This OPC UA Property, of DataType String, represents the BACnet property Model_Name.
This property identifies the model name of the BACnet device.
7.3.3.13 Variable Serial_Number
This OPC UA Property, of DataType String, represents the BACnet property Serial_Number.
This property identifies the serial number of the BACnet device.
7.3.3.14 Variable Firmware_Revision
This OPC UA Property, of DataType String, represents the BACnet property Firmware_Revision.
This property identifies the firmware installed in the BACnet device.
7.3.3.15 Variable Application_Software_Version
This OPC UA Property, of DataType String, represents the BACnet property Application_Software_Version.
This property identifies the application software version installed in the BACnet device.
7.3.3.16 Variable Location
This optional OPC UA Property, of DataType String, represents the BACnet property Location.
This property identifies the physical location of the BACnet device.
7.3.3.17 Variable Protocol_Version
This OPC UA Property, of DataType UInteger, represents the BACnet property Protocol_Version.
This property identifies the major version of the BACnet protocol supported by this device.
7.3.3.18 Variable Protocol_Revision
This OPC UA Property, of DataType UInteger, represents the BACnet property Protocol_Revision.
7.3.3.19 Variable Protocol_Services_Supported
This OPC UA Property, of DataType BACnetServicesSupportedBits, represents the BACnet property Protocol_Services_Supported. The BACnetServicesSupportedBits DataType is defined in 10.3.6.
The BACnetServicesSupportedBits identifies the standardized protocol services that are executed by the implementation of the protocol on this device. See the BACnet specification for minimum supported service requirements.
7.3.3.20 Variable Protocol_Object_Types_Supported
This OPC UA Property, of DataType BACnetObjectTypeSupportedBits, represents the BACnet property Protocol_Object_Types_Supported. The BACnetObjectTypeSupportedBits DataType is defined in 10.3.5.
This property identifies the standardized BACnet object types (like analog inputs, binary outputs, calendars, and so on) that can be represented by this device’s implementation of the BACnet protocol. The minimum set of supported objects shall be at least Analog Input, Analog Output, Analog Value, Binary Input, Binary Output, and Binary Value.
7.3.3.21 Variable Max_APDU_Length_Accepted
This OPC UA Property, of DataType UInteger, represents the BACnet property Max_APDU_Length_Accepted.
This property describes the maxium number of octets that may be packaged into a single application layer protocol data unit. The data type of this variable is an unsigned integer and its value shall be greater than or equal to 50.
7.3.3.22 Variable Segmentation_Supported
This OPC UA Property, of DataType BACnetSegmentation, represents the BACnet property Segmentation_Supported. The BACnetSegmentation DataType is defined in 10.4.30.
The BACnetSegmentation is an enumeration that indicates whether the BACnet device supports message segmentation and, if so, whether it supports segmented transmission, reception, or both.
7.3.3.23 Variable Max_Segments_Accepted
This optional OPC UA Property, of DataType UInteger, represents the BACnet property Max_Segments_Accepted.
The Max_Segments_Accepted property indicates the maximum number of segments of an APDU that the device will accept.
7.3.3.24 Variable APDU_Segment_Timeout
This optional OPC UA Property, of DataType UInteger, represents the BACnet property APDU_Segment_Timeout.
The APDU_Segment_Timeout property indicates the amount of time (in milliseconds) between retransmission of an APDU segment. See the BACnet specification for recommended default values and best practices.
7.3.3.25 Variable APDU_Timeout
This OPC UA Property, of DataType UInteger, represents the BACnet property APDU_Timeout.
The APDU_Timeout property indicates the amount of time (in milliseconds) between retransmissions of an APDU that requires acknowledgement, but for which no acknowledgement has been received. See the BACnet specification for recommended default values and best practices.
7.3.3.26 Variable Number_Of_APDU_Retries
This OPC UA Property, of DataType UInteger, represents the BACnet property Number_Of_APDU_Retries.
The Number_Of_APDU_Retries property indicates the maximum number of times that an ADPU is retransmitted. See the BACnet specification for recommended default values and best practices.
7.3.3.27 Variable Device_Address_Binding
This OPC UA Property, containing an array of DataType BACnetAddressBinding, represents the BACnet property Device_Address_Binding. The BACnetAddressBinding DataType is defined in 10.5.3.
The BACnetAddressBinding data type identify the actual device address that will be used when the remote device must be accessed using a BACnet service request. See the BACnet specification for rules related to zero network-number addresses and empty lists.
7.3.3.28 Variable Database_Revision
This OPC UA Property, of DataType UInteger, represents the BACnet property Database_Revision.
The Database_Revision property describes a logical revision number for the device database. The revision is incremented when an object is created, an object is deleted, an object’s name is changed, an object’s Object_Identifier property is changed, or a restore is performed. See the BACnet specification for exceptions.
7.3.3.29 Variable Active_COV_Subscriptions
This OPC UA Property, containing an array of DataType BACnetCOVSubscription, represents the BACnet property Active_COV_Subscriptions. The BACnetCOVSubscription DataType is defined in 10.5.4.
The BACnetCOVSubscription value provides a network-visible indication of those COV subscriptions that are active at any given time. When a COV subscription is created using the BACnet COV subscription services, a ew entry is added to the Active_COV_Subscriptions list. The entry is removed when the subscription is terminated.
7.3.3.30 Method CreateObject
This method represents the BACnet service CreateObject. It is used to create a new instance of an object. The BACnet properties of standard objects created with this Method may be initialized in two ways: initial values may be provided as part of the CreateObject Method call or values may be written to the newly created object using OPC UA Write.
Signature
CreateObject (
[in] BACnetObjectIdentifier ObjectSpecifier
[in] 0:KeyValuePair[] ListOfInitialValues
);
| Argument | Description |
| ObjectSpecifier | Provides the information about the BACnet object type to be created or the BACnet object identifier if the object to be created. The instance information shall be undefined if only the object type is passed in. The BACnetObjectIdentifier DataType is defined in 10.2.1. |
| ListOfInitialValues | A list of initial values that shall be used to initialize the values of the specified properties of the newly created object. |
Method Result Codes
| ResultCode | Description |
| BadOutOfMemory | This status is returned for the BACnet error code NO_SPACE_FOR_OBJECT |
| BadNotSupported | This status is returned for the BACnet error code DYNAMIC_CREATION_NOT_SUPPORTED |
| BadTypeDefinitionInvalid | This status is returned for the BACnet error code UNSUPPORTED_OBJECT_TYPE |
| BadNodeIdInvalid | This status is returned for the BACnet error code OBJECT_IDENTIFIER_ALREADY_EXISTS |
| BadTypeMismatch | This status is returned for the BACnet error code INVALID_DATATYPE |
| BadOutOfRange | This status is returned for the BACnet error code VALUE_OUT_OF_RANGE |
| BadNodeIdInvalid | This status is returned for the BACnet error code UNKNOWN_PROPERTY |
| BadTypeMismatch | This status is returned for the BACnet error code CHARACTER_SET_NOT_SUPPORTED |
| BadNotWritable | This status is returned for the BACnet error code WRITE_ACCESS_DENIED |
| BadTypeMismatch | This status is returned for the BACnet error code DATATYPE_NOT_SUPPORTED |
7.3.3.31 Method DeleteObject
This method represents the BACnet service DeleteObject. It can be used to delete objects that may be created and deleted dynamically.
Signature
DeleteObject (
[in] BACnetObjectIdentifier ObjectIdentifier
);
| Argument | Description |
| ObjectIdentifier | Specifies the BACnet object to be deleted. The BACnetObjectIdentifier DataType is defined in 10.2.1. |
Method Result Codes
| ResultCode | Description |
| BadNodeIdUnknown | This status is returned for the BACnet error code UNKNOWN_OBJECT |
| BadUserAccessDenied | This status is returned for the BACnet error code OBJECT_DELETION_NOT_PERMITTED |
7.3.3.32 Method ReinitializeDevice
This method represents the BACnet service ReinitializeDevice. It is used to instruct a remote device to reboot itself (cold start), reset itself to some predefined initial state (warm start), or to control the backup or restore procedure. Resetting or rebooting a device is primarily initiated by a human operator for diagnostic purposes.
Remark: Since the method contains the Password, this method should only be available if the connection is encrypted.
Signature
ReinitializeDevice (
[in] BACnetReinitializedStateofDevice ReinitializedStateofDevice
[in] 0:String Password
);
| Argument | Description |
| ReinitializedStateofDevice | This parameter allows the caller to specify the desired state of the device after its reinitialization. The BACnetReinitializedStateofDevice DataType is defined in 10.4.27. |
| Password | password parameter. |
Method Result Codes
| ResultCode | Description |
| BadInvalidState | This status is returned for the BACnet error code CONFIGURATION_IN_PROGRESS |
| BadUserAccessDenied | This status is returned for the BACnet error code PASSWORD_FAILURE |
| BadNoCommunication | This status is returned for the BACnet error code COMMUNICATION_DISABLED |
7.3.3.33 Method DeviceCommunicationControl
This method represents the BACnet service DeviceCommunicationControl. It is used to instruct a remote device to stop initiating communication and optionally stop responding to communication for a specified duration of time.
Remark: Since the method contains the Password, this method should only be available if the connection is encrypted.
Signature
DeviceCommunicationControl (
[in] 0:UInt16 TimeDurationInMinutes
[in] BACnetDeviceCommunicationEnabled EnableDisable
[in] 0:String Password
);
| Argument | Description |
| TimeDurationInMinutes | This optional parameter of DataType 0:UInt16 indicates the number of minutes that the remote device shall stop communication. If the parameter is not specified, 0 shall be passed in as value. |
| EnableDisable | This parameter is an enumeration that may take on the values ENABLE, DISABLE, or DISABLE_INITIATION. It is used to indicate whether the device should enable all, disable initiation, or disable all communications on the network interface. The BACnetDeviceCommunicationEnabled DataType is defined in 10.4.8. |
| Password | password parameter. |
Method Result Codes
| ResultCode | Description |
| BadUserAccessDenied | This status is returned for the BACnet error code PASSWORD_FAILURE |
| BadNotSupported | This status is returned for the BACnet error code O_FUNCTIONALITY_NOT_SUPPORTED |
7.3.3.34 Method TextMessage
This method represents the BACnet services ConfirmedTextMessage and UnconfirmedTextMessage.
The UnconfirmedTextMessage service is used by a client BACnet-user to send a text message to one or more BACnet devices. This service may be broadcast, multicast, or addressed to a single recipient. This service may be used in cases where confirmation that the text message was received is not required. Messages may be prioritized into normal or urgent categories. In addition, a given text message may optionally be classified by a numeric class code or class identification string. This classification may be used by receiving BACnet devices to determine how to handle the text message. For example, the message class might indicate a particular output device on which to print text or a set of actions to take when the text message is received. In any case, the interpretation of the class is a local matter.
The ConfirmedTextMessage service is used by a client BACnet-user to send a text message to another BACnet device. This service is not a broadcast or multicast service. This service may be used in cases when confirmation that the text message was received is required. The confirmation does not guarantee that a human operator has seen the message. Messages may be prioritized into normal or urgent categories. In addition, a given text message may be optionally classified by a numeric class code or class identification string. This classification may be used by the receiving BACnet device to determine how to handle the text message. For example, the message class might indicate a particular output device on which to print text or a set of actions to take when the text is received. In any case, the interpretation of the class is a local matter.
Signature
TextMessage (
[in] 0:Boolean SendUnconfirmed
[in] BACnetObjectIdentifier TextMessageSourceDevice
[in] BACnetMessageClass MessageClass
[in] BACnetMessagePriority MessagePriority
[in] 0:String Message
);
| Argument | Description |
| SendUnconfirmed | Flag indicating if the BACnet service UnconfirmedTextMessage (TRUE) or ConfirmedTextMessage (FALSE) is used. |
| TextMessageSourceDevice | This parameter, of type BACnetObjectIdentifier, shall convey the value of the Object_Identifier property of the Device object of the device that initiated this text message. |
| MessageClass | This parameter, if present, shall indicate the classification of the received message. The datatype of this parameter shall be a choice of Unsigned or CharacterString. The interpretation of the meaning of any particular value for this parameter shall be a local matter. |
| MessagePriority | This parameter, of type ENUMERATED, shall indicate the priority for message handling: {NORMAL, URGENT} |
| Message | This parameter, of type CharacterString, shall be used to convey the text message. |
Method Result Codes
| ResultCode | Description |
| BadUserAccessDenied | This status is returned for the BACnet error code PASSWORD_FAILURE |
| BadNotSupported | This status is returned for the BACnet error code O_FUNCTIONALITY_NOT_SUPPORTED |
7.3.3.35 Method AddDeviceAddressBindings
This Method adds entries to the BACnet property Device_Address_Binding.
Signature
AddDeviceAddressBindings (
[in] BACnetAddressBinding [] AddressBindings
[out] 0:UInt32 FirstFailedElementNumber
);
| Argument | Description |
| AddressBindings | Array of address bindings to add to the entries in the BACnet property Device_Address_Binding. The BACnetAddressBinding DataType is defined in 10.5.3. |
| FirstFailedElementNumber | The numerical position, starting at 1, of the failed element in the AddressBindings. If the call succeeds or fails for other reasons, the returned value shall be 0. |
Method Result Codes
| ResultCode | Description |
| BadNodeIdUnknown | This status is returned for the BACnet error codes UNKNOWN_OBJECT and UNKNOWN_PROPERTY |
| BadTypeMismatch | This status is returned for the BACnet error codes INVALID_DATATYPE and DATATYPE_NOT_SUPPORTED |
| BadOutOfRange | This status is returned for the BACnet error code VALUE_OUT_OF_RANGE |
| BadNotWritable | This status is returned for the BACnet error code WRITE_ACCESS_DENIED |
| BadOutOfMemory | This status is returned for the BACnet error code NO_SPACE_TO_ADD_LIST_ELEMENT |
7.3.3.36 Method RemoveDeviceAddressBindings
This Method removes entries from the BACnet property Device_Address_Binding.
Signature
RemoveDeviceAddressBindings (
[in] BACnetAddressBinding[] AddressBindings
[out] 0:UInt32 FirstFailedElementNumber
);
| Argument | Description |
| AddressBindings | Array of address bindings to remove from the entries in the BACnet property Device_Address_Binding. The BACnetAddressBinding DataType is defined in 10.5.3. |
| FirstFailedElementNumber | The numerical position, starting at 1, of the failed element in the AddressBindings. If the call succeeds or fails for other reasons, the returned value shall be 0. |
Method Result Codes
| ResultCode | Description |
| BadNodeIdUnknown | This status is returned for the BACnet error codes UNKNOWN_OBJECT and UNKNOWN_PROPERTY |
| BadTypeMismatch | This status is returned for the BACnet error codes INVALID_DATATYPE |
| BadOutOfRange | This status is returned for the BACnet error code VALUE_OUT_OF_RANGE |
| BadNotWritable | This status is returned for the BACnet error code WRITE_ACCESS_DENIED |
| BadNotFound | This status is returned for the BACnet error code LIST_ELEMENT_NOT_FOUND |
7.4 BACnetAnalogType
7.4.1 General
This OPC UA ObjectType defines the super type for all OPC UA ObjectTypes that represent BACnet Analog object types in an OPC UA Address Space.
Figure 13 shows an overview for the BACnetAnalogType with its Properties and related ObjectTypes. It is formally defined in Table 12.

7.4.2 ObjectType definition
The BACnetAnalogType is formally defined in Table 12.
| Attribute | Value | |||||
| BrowseName | BACnetAnalogType | |||||
| IsAbstract | True | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetObjectType defined in 7.1 | ||||||
| 0:HasComponent | Variable | Present_Value | 0:Float | 0:AnalogUnitType | M | |
| 0:HasProperty | Variable | Out_Of_Service | 0:Boolean | 0:PropertyType | M | |
| 0:HasProperty | Variable | Status_Flags | BACnetStatusFlags | 0:PropertyType | M | |
| 0:HasProperty | Variable | Resolution | 0:Float | 0:PropertyType | O | |
| 0:HasProperty | Variable | COV_Increment | 0:Float | 0:PropertyType | O | |
| 0:HasComponent | Object | EventReporting | BACnetEventReportingType | O | ||
| 0:HasComponent | Object | FaultEvaluation | BACnetFaultEvaluationType | O | ||
The BACnetAnalogType is an abstract type and cannot be used directly.
The components of the BACnetAnalogType have additional subcomponents which are defined in Table 13.
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| EventReporting | 0:HasComponent | Object | EventAlgorithm | BACnetOutOfRangeAlgorithmType | M |
7.4.3 ObjectType Description
7.4.3.1 Variable Present_Value
This OPC UA Variable, of DataType Float, indicates the current value, in engineering units, of the input being measured. The Present_Value Variable shall be writable when Out_Of_Service is true.
This OPC UA AnalogItemType Variable represents the BACnet properties Present_Value, Min_Pres_Value, Max_Pres_Value, Units and Update_Interval. The OPC UA VariableType AnalogItemType is defined in OPC 10000-8. It defines the OPC UA Properties EURange, EngineeringUnits and InstrumentRange.
The following list provides the BACnet property and the mapping to the corresponding data member in the OPC UA AnalogItem.
Present_Value represented by Value Attribute of the Variable.
Min_Pres_Value represented by Low part of EURange Property of the Variable. If the optional BACnet property Min_Pres_Value is not present, the EURange Property should not be provided.
Max_Pres_Value represented by the High part of EURange Property of the Variable. If the optional BACnet property Max_Pres_Value is not present, the EURange Property should not be provided.
Units represented by the EngineeringUnits Property of the Variable. The mapping of BACnet units to OPC UA units is defined in 11.
Update_Interval represented by MinSamplingInterval Attribute of the Variable.
7.4.3.2 Variable Out_Of_Service
This OPC UA Property, of DataType Boolean, represents the BACnet property Out_Of_Service.
It is an indication of whether or not the physical input that the object represents is not in service. While Out_Of_Service is True, Present_Value and Reliability may be changed to any value as a means of simulation and/or testing.
7.4.3.3 Variable Status_Flags
This OPC UA Property, of DataType BACnetStatusFlags, represents the BACnet property Status_Flags. The BACnetStatusFlags DataType is defined in 10.3.7.
It represents four Boolean flags that represent the general health of a BACnetAnalogType. The flags are IN_ALARM, FAULT, OVERRIDDEN, and OUT_OF_SERVICE.
7.4.3.4 Variable COV_Increment
This OPC UA Property, of type Float, represents the BACnet property COV_Increment.
It shall specify the minimum change in the BACnet property Present_Value that will cause a Change of Value notification to be issued to BACnet clients that have subscribed to Change of Value events.
7.4.3.5 Variable Resolution
This OPC UA Property, of DataType Float, represents the BACnet property Resolution.
It indicates the smallest recognizable change in Present_Value in engineering units.
7.4.3.6 Object EventReporting
The EventReporting Object contains status and configuration information for the event reporting of BACnetAnalogTypes and their subtypes. The BACnetEventReportingType is defined in 8.8. The Object is optional and is not present if event generation is not activated for the BACnet object.
The instance declaration Object EventReporting overrides definitions of the BACnetEventReportingType.
The EventAlgorithm component is changed to TypeDefinition BACnetOutOfRangeAlgorithmType and ModellingRule Mandatory if used in the BACnetAnalogType or one of its subtypes. The BACnetOutOfRangeAlgorithmType is defined in 8.9.3.
On the EventAlgorithm instance of the BACnetOutOfRangeAlgorithmType the BACnet property High_Limit is mapped to pHighLimit, the BACnet property Low_Limit is mapped to LowLimit, the BACnet property Deadband is mapped to pDeadband and the BACnet property Limit_Enable is mapped to LimitEnable.
7.4.3.7 Object FaultEvaluation
The FaultEvaluation Object contains status and configuration information for the fault evaluation of the BACnetAnalogType. The BACnetFaultEvaluationType is defined in 8.23. The Object is optional and is not present if fault evaluation is not activated for the BACnet object.
7.5 BACnetAnalogInputType
7.5.1 General
This OPC UA ObjectType represents the BACnet object type Analog Input. An analog input converts a continuously variable input signal into a discrete value that can be processed by a computer system.
Figure 14 shows an overview for the BACnetAnalogInputType with its Properties and related ObjectTypes. It is formally defined in Table 14.

7.5.2 ObjectType definition
The BACnetAnalogInputType ObjectType is formally defined in Table 14.
| Attribute | Value | |||||
| BrowseName | BACnetAnalogInputType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetAnalogType | ||||||
| 0:HasProperty | Variable | Device_Type | 0:String | 0:PropertyType | O | |
The BACnetAnalogInputType ObjectType is a concrete type and can be used directly.
7.5.3 ObjectType Description
7.5.3.1 Variable Device_Type
This OPC UA Property, of DataType String, represents the BACnet property Device_Type.
It is a text description of the physical device connected to the analog input.
7.6 BACnetAnalogOutputType
7.6.1 General
This OPC UA ObjectType represents the BACnet object type Analog Output. An analog output converts a discrete value into a continuously variable output signal.
Figure 15 shows an overview for the BACnetAnalogOutput with its Properties and related ObjectTypes. It is formally defined in Table 15.

7.6.2 ObjectType definition
The BACnetAnalogOutput ObjectType is formally defined in Table 15.
| Attribute | Value | |||||
| BrowseName | BACnetAnalogOutputType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetAnalogType | ||||||
| 0:HasProperty | Variable | Device_Type | 0:String | 0:PropertyType | O | |
| 0:HasProperty | Variable | Priority_Array | BACnetPriorityValue [16] | 0:PropertyType | M | |
| 0:HasProperty | Variable | Relinquish_Default | 0:Float | 0:PropertyType | M | |
The BACnetAnalogOutput ObjectType is a concrete type and can be used directly.
7.6.3 ObjectType Description
7.6.3.1 Variable Device_Type
This OPC UA Property, of DataType String, represents the BACnet property Device_Type.
It is a text description of the physical device connected to the analog output.
7.6.3.2 Variable Priority_Array
This OPC UA Property, of DataType BACnetPriorityValue [16], represents the BACnet property Priority_Array. The BACnetPriorityValue DataType is defined in 10.6.4.
It is an array that contains prioritized values that are in effect for this object. See 3.2.1 for details on command prioritization.
7.6.3.3 Variable Relinquish_Default
This OPC UA Property, of DataType Float, represents the BACnet property Relinquish_Default.
It is the default value to be used for the Present_Value when all command priority values in the Priority_Array have a NULL value. See 3.2.1 for details on command prioritization.
7.7 BACnetAnalogValueType
7.7.1 General
This OPC UA ObjectType represents the BACnet object type Analog Value. This is a control system parameter that resides in the memory of the BACnet Device.
Figure 16 shows an overview for the BACnetAnalogValueType with its Properties and related ObjectTypes. It is formally defined in Table 16.

7.7.2 ObjectType definition
The BACnetAnalogValueType ObjectType is formally defined in Table 16.
| Attribute | Value | |||||
| BrowseName | BACnetAnalogValueType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetAnalogType | ||||||
| 0:HasProperty | Variable | Priority_Array | BACnetPriorityValue [16] | 0:PropertyType | O | |
| 0:HasProperty | Variable | Relinquish_Default | 0:Float | 0:PropertyType | O | |
The BACnetAnalogValueType ObjectType is a concrete type and can be used directly.
7.7.3 ObjectType Description
7.7.3.1 Variable Priority_Array
This OPC UA Property, of DataType BACnetPriorityValue [16], represents the BACnet property Priority_Array. The BACnetPriorityValue DataType is defined in 10.6.4.
It is an array that contains prioritized commands that are in effect for this object. See 3.2.1 for details on command prioritization.
7.7.3.2 Variable Relinquish_Default
This OPC UA Property, of DataType 0:Float, represents the BACnet property Relinquish_Default.
It is the default value to be used for the Present_Value when all command priority values in the Priority_Array have a NULL value. See 3.2.1 for details on command prioritization.
7.8 BACnetBinaryType
7.8.1 General
This OPC UA ObjectType defines the super type for all OPC UA ObjectTypes that represent BACnet Binary object types in an OPC UA Address Space.
Figure 17 shows an overview for the BACnetBinaryType with its Properties and related ObjectTypes. It is formally defined in Table 17.

7.8.2 ObjectType definition
The BACnetBinaryType ObjectType is formally defined in Table 17.
| Attribute | Value | |||||
| BrowseName | BACnetBinaryType | |||||
| IsAbstract | True | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetObjectType defined in 7.1. | ||||||
| 0:HasComponent | Variable | Present_Value | 0:Boolean | TwoStateDiscreteType | M | |
| 0:HasProperty | Variable | Out_Of_Service | 0:Boolean | 0:PropertyType | M | |
| 0:HasProperty | Variable | Status_Flags | BACnetStatusFlags | 0:PropertyType | M | |
| 0:HasComponent | Object | ChangeOfState | BACnetChangeOfStateCountType | O | ||
| 0:HasComponent | Object | ElapsedActive Time | BACnetElapsedActiveTimeType | O | ||
| 0:HasComponent | Object | EventReporting | BACnetEventReportingType | O | ||
| 0:HasComponent | Object | FaultEvaluation | BACnetFaultEvaluationType | O | ||
The BACnetBinaryType ObjectType is an abstract type and cannot be used directly.
7.8.3 ObjectType Description
7.8.3.1 Variable Present_Value
This OPC UA Variable, of DataType 0:Boolean, represents the logical state of the BACnet Binary Input object. The logical state of the Input shall be either Inactive or Active.
This OPC UA TwoStateDiscreteType Variable represents the BACnet properties Present_Value, Inactive_Text and Active_Text. The OPC UA VariableType TwoStateDiscreteType is defined in OPC 10000-8. It defines the OPC UA Properties TrueState and FalseState.
The following list provides the BACnet property and the mapping to the corresponding data member in the OPC UA TwoStateDiscrete item.
Present_Value represented by Value Attribute of the Variable.
Active_Text represented by the TrueState Property of the Variable.
Inactive_Text represented by the FalseState Property of the Variable.
7.8.3.2 Variable Out_Of_Service
This OPC UA Property, of DataType 0:Boolean, represents the BACnet property Out_Of_Service.
It is an indication of whether or not the physical input that the object represents is not in service. While the Out_Of_Service property is True, the Present_Value and Reliability properties may be changed to any value as a means of simulation and/or testing.
7.8.3.3 Variable Status_Flags
This OPC UA Property, of DataType BACnetStatusFlags, represents the BACnet property Status_Flags. The BACnetStatusFlags DataType is defined in 10.3.7.
It represents four 0:Boolean flags that represent the general health of an analog input. The flags are IN_ALARM, FAULT, OVERRIDDEN, and OUT_OF_SERVICE.
7.8.3.4 Object ChangeOfState
The ChangeOfState Object contains BACnet properties related to counting the change of state of BACnetBinaryType Objects. The BACnetChangeOfStateCountType is defined in 8.1. The Object is optional and is not present if change of state counting is not activated for the BACnet object.
7.8.3.5 Object ElapsedActiveTime
The ElapsedActiveTime Object contains BACnet properties related to the elapsed active time of BACnetBinaryType Objects. The BACnetElapsedActiveTimeType is defined in 8.7. The Object is optional and is not present if this feature is not available for the BACnet object.
7.8.3.6 Object EventReporting
The EventReporting Object contains status and configuration information for the event reporting of BACnetBinaryType Objects. The BACnetEventReportingType is defined in 8.8. The Object is optional and is not present if event generation is not activated for the BACnet object.
7.8.3.7 Object FaultEvaluation
The FaultEvaluation Object contains status and configuration information for the fault evaluation of the BACnetBinaryType. The BACnetFaultEvaluationType is defined in 8.23. The Object is optional and is not present if fault evaluation is not activated for the BACnet object.
7.9 BACnetBinaryInputType
7.9.1 General
This OPC UA ObjectType represents the BACnet object type Binary Input. A binary input converts one or more discrete input signals into a value that can be processed by a computer system.
Figure 18 shows an overview for the BACnetBinaryInputType with its Properties and related ObjectTypes. It is formally defined in Table 18.

7.9.2 ObjectType definition
The BACnetBinaryInputType ObjectType is formally defined in Table 18.
| Attribute | Value | |||||
| BrowseName | BACnetBinaryInputType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetBinaryType defined in 7.8. | ||||||
| 0:HasComponent | Object | EventReporting | BACnetEventReportingType | O | ||
| 0:HasProperty | Variable | Device_Type | 0:String | 0:PropertyType | O | |
| 0:HasProperty | Variable | Polarity | BACnetPolarity | 0:PropertyType | M | |
The BACnetBinaryInputType ObjectType is a concrete type and can be used directly.
The components of the BACnetBinaryInputType have additional subcomponents which are defined in Table 19.
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| EventReporting | 0:HasComponent | Object | EventAlgorithm | BACnetChangeOfStateAlgorithmType | M | |
| 0:HasProperty | Variable | AlarmValues | 0:Boolean | 0:PropertyType | M |
7.9.3 ObjectType Description
7.9.3.1 EventReporting Object override
The instance declaration Object EventReporting overrides definitions of the BACnetEventReportingType.
The EventAlgorithm component is changed to TypeDefinition BACnetChangeOfStateAlgorithmType and ModellingRule Mandatory if used in the BACnetBinaryInputType. The BACnetChangeOfStateAlgorithmType is defined in 8.10.
On the EventAlgorithm instance of the BACnetChangeOfStateAlgorithmType, the DataType of the Alarm_Values Property is changed to 0:Boolean.
The BACnet property Alarm_Value of the BACnet object type Binary Input is mapped to the AlarmValues Property of the BACnetChangeOfStateAlgorithmType.
7.9.3.2 Variable Device_Type
This OPC UA Property, of DataType String, represents the BACnet property Device_Type.
It is a text description of the physical device connected to the binary input.
7.9.3.3 Variable Polarity
This OPC UA Property, of DataType BACnetPolarity, represents the BACnet property Polarity. The BACnetPolarity DataType is defined in 10.4.22.
It indicates the relationship between the physical state of the Input and the logical state represented by the Present_Value property.
7.10 BACnetBinaryOutputType
7.10.1 General
This OPC UA ObjectType represents the BACnet object type Binary Output. A binary output converts a value into one or more discrete output signals.
Figure 19 shows an overview for the BACnetBinaryOutputType with its Properties and related ObjectTypes. It is formally defined in Table 20.

7.10.2 ObjectType definition
The BACnetBinaryOutputType ObjectType is formally defined in Table 20.
| Attribute | Value | |||||
| BrowseName | BACnetBinaryOutputType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetBinaryType defined in 7.8. | ||||||
| 0:HasComponent | Object | EventReporting | BACnetEvent ReportingType | O | ||
| 0:HasProperty | Variable | Device_Type | 0:String | 0:PropertyType | O | |
| 0:HasProperty | Variable | Polarity | BACnetPolarity | 0:PropertyType | M | |
| 0:HasProperty | Variable | Priority_Array | BACnetPriorityValue [16] | 0:PropertyType | M | |
| 0:HasProperty | Variable | Relinquish_Default | 0:Boolean | 0:PropertyType | M | |
| 0:HasProperty | Variable | Minimum_Off_Time | 0:UInt32 | 0:PropertyType | O | |
| 0:HasProperty | Variable | Minimum_On_Time | 0:UInt32 | 0:PropertyType | O | |
| 0:HasProperty | Variable | Feedback_Value | 0:Boolean | 0:PropertyType | O | |
The BACnetBinaryOutputType ObjectType is a concrete type and can be used directly.
The components of the BACnetBinaryOutputType have additional subcomponents which are defined in Table 21.
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| EventReporting | 0:HasComponent | Object | EventAlgorithm | BACnetCommandFailureAlgorithmType | M |
7.10.3 ObjectType Description
7.10.3.1 EventReporting Object override
The instance declaration Object EventReporting overrides definitions of the BACnetEventReportingType.
The EventAlgorithm component is changed to TypeDefinition BACnetCommandFailureAlgorithmType and ModellingRule Mandatory if used in the BACnetBinaryOutputType. The BACnetCommandFailureAlgorithmType is defined in 8.10.
7.10.3.2 Variable Device_Type
This OPC UA Property, of DataType String, represents the BACnet property Device_Type.
It is a text description of the physical device connected to the binary output.
7.10.3.3 Variable Polarity
This OPC UA Property, of DataType BACnetPolarity, represents the BACnet property Polarity. The BACnetPolarity DataType is defined in 10.4.22.
It indicates the relationship between the physical state of the Ouput and the logical state represented by the Present_Value property.
7.10.3.4 Variable Priority_Array
This OPC UA Property, of DataType BACnetPriorityValue [16], represents the BACnet property Priority_Array. The BACnetPriorityValue DataType is defined in 10.6.4.
It is an array that contains prioritized commands that are in effect for this object. See 3.2.1 for details on command prioritization.
7.10.3.5 Variable Relinquish_Default
This OPC UA Property, of DataType 0:Boolean, represents the BACnet property Relinquish_Default.
It is the default value to be used for the Present_Value when all command priority values in the Priority_Array have a NULL value. See 3.2.1 for details on command prioritization.
7.10.3.6 Variable Minimum_Off_Time
This OPC UA Property, of DataType UInt32, represents the BACnet property Minimum_Off_Time.
It represents the minimum number of seconds that the Present_Value shall remain in the Inactive state after a write to the Present_Value property causes that property to assume the Inactive state.
7.10.3.7 Variable Minimum_On_Time
This OPC UA Property, of DataType UInt32, represents the BACnet property Minimum_On_Time.
It represents the minimum number of seconds that the Present_Value shall remain in the Active state after a write to the Present_Value property causes the property to assume the Active state.
7.10.3.8 Variable Feedback_Value
This OPC UA Property, of type 0:Boolean, is an indication of the actual value of the entity controlled by Present_Value.
7.11 BACnetBinaryValueType
7.11.1 General
This OPC UA ObjectType represents a BACnet Binary Value object type. A binary value is a control system parameter that resides in the memory of the BACnet Device and may be one of only two states.
Figure 20 shows an overview for the BACnetBinaryValueType with its Properties and related ObjectTypes. It is formally defined in Table 22.

7.11.2 ObjectType definition
The BACnetBinaryValueType ObjectType is formally defined in Table 22.
| Attribute | Value | |||||
| BrowseName | BACnetBinaryValueType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetBinaryType defined in 7.8. | ||||||
| 0:HasComponent | Object | EventReporting | BACnetEvent ReportingType | O | ||
| 0:HasProperty | Variable | Priority_Array | BACnetPriorityValue [16] | 0:PropertyType | O | |
| 0:HasProperty | Variable | Relinquish_Default | 0:Boolean | 0:PropertyType | O | |
| 0:HasProperty | Variable | Minimum_Off_Time | 0:UInt32 | 0:PropertyType | O | |
| 0:HasProperty | Variable | Minimum_On_Time | 0:UInt32 | 0:PropertyType | O | |
The BACnetBinaryValueType ObjectType is a concrete type and can be used directly.
The components of the BACnetBinaryValueType have additional subcomponents which are defined in Table 23.
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| EventReporting | 0:HasComponent | Object | EventAlgorithm | BACnetChangeOfStateAlgorithmType | M | |
| 0:HasProperty | Variable | AlarmValues | 0:Boolean | 0:PropertyType | M |
7.11.3 ObjectType Description
7.11.3.1 EventReporting Object override
The instance declaration Object EventReporting overrides definitions of the BACnetEventReportingType.
The EventAlgorithm component is changed to TypeDefinition BACnetChangeOfStateAlgorithmType and ModellingRule Mandatory if used in the BACnetBinaryValueType. The BACnetChangeOfStateAlgorithmType is defined in 8.10.
On the EventAlgorithm instance of the BACnetChangeOfStateAlgorithmType, the DataType of the Alarm_Values Property is changed to 0:Boolean.
The BACnet property Alarm_Value of the BACnet object type Binary Value is mapped to the AlarmValues Property of the BACnetChangeOfStateAlgorithmType.
7.11.3.2 Variable Priority_Array
This OPC UA Property, of DataType BACnetPriorityValue [16], represents the BACnet property Priority_Array. The BACnetPriorityValue DataType is defined in 10.6.4.
It is an array that contains prioritized commands that are in effect for this object. See 3.2.1 for details on command prioritization.
7.11.3.3 Variable Relinquish_Default
This OPC UA Property, of DataType 0:Boolean, represents the BACnet property Relinquish_Default.
It is the default value to be used for the Present_Value when all command priority values in the Priority_Array have a NULL value. See 3.2.1 for details on command prioritization.
7.11.3.4 Variable Minimum_Off_Time
This OPC UA Property, of DataType UInt32, represents the BACnet property Minimum_Off_Time.
It represents the minimum number of seconds that the Present_Value shall remain in the Inactive state after a write to the Present_Value property causes that property to assume the Inactive state.
7.11.3.5 Variable Minimum_On_Time
This OPC UA Property, of DataType UInt32, represents the BACnet property Minimum_On_Time.
It represents the minimum number of seconds that the Present_Value shall remain in the Active state after a write to the Present_Value property causes the property to assume the Active state.
7.12 BACnetMultiStateType
7.12.1 General
This OPC UA ObjectType defines the super type for all OPC UA ObjectTypes that represent BACnet MultiState object types in an OPC UA Address Space.
Figure 21 shows an overview for the BACnetMultiStateType with its Properties and related ObjectTypes. It is formally defined in Table 24.

7.12.2 ObjectType definition
The BACnetMultiStateType ObjectType is formally defined in Table 24.
| Attribute | Value | |||||
| BrowseName | BACnetMultiStateType | |||||
| IsAbstract | True | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetObjectType defined in 7.1. | ||||||
| 0:HasComponent | Variable | Present_Value | 0:UInteger | MultiStateDiscreteType | M | |
| 0:HasProperty | Variable | Out_Of_Service | 0:Boolean | 0:PropertyType | M | |
| 0:HasProperty | Variable | Status_Flags | BACnetStatusFlags | 0:PropertyType | M | |
| 0:HasComponent | Object | EventReporting | BACnetEventReportingType | O | ||
| 0:HasComponent | Object | FaultEvaluation | BACnetFaultEvaluationType | O | ||
The BACnetMultiStateType ObjectType is an abstract type and cannot be used directly.
7.12.3 ObjectType Description
7.12.3.1 Variable Present_Value
This OPC UA Property, of DataType 0:UInteger, reflects the logical state of the input.
This OPC UA MultiStateDiscreteType Variable represents the BACnet properties Present_Value, State_Text and Number_Of_States. The OPC UA VariableType MultiStateDiscreteType is defined in OPC 10000-8. It defines the OPC UA Property EnumStrings.
The following list provides the BACnet property and the mapping to the corresponding data member in the OPC UA multistate discrete item.
Present_Value represented by Value Attribute of the Variable.
State_Text and Number_Of_States represented by the EnumStrings Property of the Variable. If the optional BACnet property State_Text is not present, the EnumStrings property is filled with State_1 to State_N strings where the N and the number of strings are defined by Number_Of_States.
7.12.3.2 Variable Out_Of_Service
This OPC UA Property, of DataType 0:Boolean, represents the BACnet property Out_Of_Service.
It is an indication of whether or not the physical input that the object represents is not in service. While the Out_Of_Service property is True, the Present_Value and Reliability properties may be changed to any value as a means of simulation and/or testing.
7.12.3.3 Variable Status_Flags
This OPC UA Property, of DataType BACnetStatusFlags, represents the BACnet property Status_Flags. The BACnetStatusFlags DataType is defined in 10.3.7.
It represents four 0:Boolean flags that represent the general health of a BACnetMultiStateType. The flags are IN_ALARM, FAULT, OVERRIDDEN, and OUT_OF_SERVICE.
7.12.3.4 Object EventReporting
The EventReporting Object contains status and configuration information for the event reporting of BACnetMultiStateType Objects. The BACnetEventReportingType is defined in 0. The Object is optional and is not present if event generation is not activated for the BACnet object.
7.12.3.5 Object FaultEvaluation
The FaultEvaluation Object contains status and configuration information for the fault evaluation of the BACnetMultiStateType. The BACnetFaultEvaluationType is defined in 8.23. The Object is optional and is not present if fault evaluation is not activated for the BACnet object.
7.13 BACnetMultiStateInputType
7.13.1 General
This OPC UA ObjectType represents the BACnet object type MultiState Input. A multi-state input includes a Present_Value variable whose value represents a state set by a locally defined algorithm.
Figure 22 shows an overview for the BACnetMultiStateInputType with its Properties and related ObjectTypes. It is formally defined in Table 25.

7.13.2 ObjectType definition
The BACnetMultiStateInputType ObjectType is formally defined in Table 25.
| Attribute | Value | |||||
| BrowseName | BACnetMultiStateInputType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetMultiStateType defined in 7.12. | ||||||
| 0:HasComponent | Object | EventReporting | BACnetEventReportingType | O | ||
| 0:HasComponent | Object | FaultEvaluation | BACnetFaultEvaluationType | O | ||
| 0:HasProperty | Variable | Device_Type | 0:String | 0:PropertyType | O | |
The BACnetMultiStateInputType ObjectType is a concrete type and can be used directly.
The components of the BACnetMultiStateInputType have additional subcomponents which are defined in Table 26.
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| EventReporting | 0:HasComponent | Object | EventAlgorithm | BACnetChangeOfStateAlgorithmType | M | |
| 0:HasProperty | Variable | AlarmValues | 0:UInteger [ ] | 0:PropertyType | M | |
| FaultEvaluation | 0:HasComponent | Object | FaultAlgorithm | BACnetFaultStateAlgorithmType | O | |
| 0:HasProperty | Variable | FaultValues | 0:UInteger [ ] | 0:PropertyType | M |
7.13.3 ObjectType Description
7.13.3.1 EventReporting Object override
The instance declaration Object EventReporting overrides definitions of the BACnetEventReportingType.
The EventAlgorithm component is changed to TypeDefinition BACnetChangeOfStateAlgorithmType and ModellingRule Mandatory if used in the BACnetMultiStateInputType. The BACnetChangeOfStateAlgorithmType is defined in 8.10.
On the EventAlgorithm instance of the BACnetChangeOfStateAlgorithmType, the DataType of the Alarm_Values Property is changed to 0:UInteger array.
The BACnet property Alarm_Values of the BACnet object type Multi State Input is mapped to the AlarmValues Property of the BACnetChangeOfStateAlgorithmType.
7.13.3.2 FaultEvaluation Object override
The instance declaration Object FaultEvaluation overrides definitions of the BACnetFaultEvaluationType.
The FaultAlgorithm component is changed to TypeDefinition BACnetFaultStateAlgorithmType if used in the BACnetMultiStateInputType. The BACnetFaultStateAlgorithmType is defined in 8.25.
On the FaultAlgorithm instance of the BACnetFaultStateAlgorithmType, DataType of the Fault_Values Property is changed to 0:UInteger array.
7.13.3.3 Variable Device_Type
This OPC UA Property, of DataType String, represents the BACnet property Device_Type.
It provides a text description of the physical device connected to the multi-state input.
7.14 BACnetMultiStateOutputType
7.14.1 General
This OPC UA ObjectType represents the BACnet object type MultiState Output. A multi-state output includes a Present_Value variable whose value represents the desired state of a physical output. The states and algorithms used to generate them are locally defined.
Figure 23 shows an overview for the BACnetMultiStateOutputType with its Properties and related ObjectTypes. It is formally defined in Table 27.

7.14.2 ObjectType definition
The BACnetMultiStateOutputType ObjectType is formally defined in Table 27.
| Attribute | Value | |||||
| BrowseName | BACnetMultiStateOutputType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetMultiStateType defined in 7.12. | ||||||
| 0:HasComponent | Object | EventReporting | BACnetEvent ReportingType | O | ||
| 0:HasProperty | Variable | Device_Type | String | 0:PropertyType | O | |
| 0:HasProperty | Variable | Priority_Array | BACnetPriorityValue [16] | 0:PropertyType | M | |
| 0:HasProperty | Variable | Relinquish_Default | 0:UInteger | 0:PropertyType | M | |
| 0:HasProperty | Variable | Feedback_Value | 0:UInteger | 0:PropertyType | O | |
The BACnetMultiStateOutputType ObjectType is a concrete type and can be used directly.
The components of the BACnetMultiStateOutputType have additional subcomponents which are defined in Table 28.
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| EventReporting | 0:HasComponent | Object | EventAlgorithm | BACnetCommandFailureAlgorithmType | M |
7.14.3 ObjectType Description
7.14.3.1 EventReporting Object override
The instance declaration Object EventReporting overrides definitions of the BACnetEventReportingType.
The EventAlgorithm component is changed to TypeDefinition BACnetCommandFailureAlgorithmType and ModellingRule Mandatory if used in the BACnetMultiStateOutputType. The BACnetCommandFailureAlgorithmType is defined in 8.10.
7.14.3.2 Variable Device_Type
This OPC UA Property, of DataType String, represents the BACnet property Device_Type.
It is a text description of the physical device connected to the multi-state output.
7.14.3.3 Variable Priority_Array
This OPC UA Property, of DataType BACnetPriorityValue [16], represents the BACnet property Priority_Array. The BACnetPriorityValue DataType is defined in 10.6.4.
It is an array that contains prioritized commands that are in effect for this object. See 3.2.1 for details on command prioritization.
7.14.3.4 Variable Relinquish_Default
This OPC UA Property, of DataType 0:UInteger, represents the BACnet property Relinquish_Default.
It is the default value to be used for the Present_Value when all command priority values in the Priority_Array have a NULL value. See 3.2.1 for details on command prioritization.
7.14.3.5 Variable Feedback_Value
This OPC UA Property, of type 0:UInteger, is an indication of the actual value of the entity controlled by Present_Value.
7.15 BACnetMultiStateValueType
7.15.1 General
This OPC UA ObjectType represents a BACnet Multi-state Value object type. A multi-state value is a control system parameter that resides in the memory of the BACnet Device and includes a Present_Value variable whose value represents the object state. The states and algorithms used to generate them are locally defined.
Figure 24 shows an overview for the BACnetMultiStateValueType with its Properties and related ObjectTypes. It is formally defined in Table 29.

7.15.2 ObjectType definition
The BACnetMultiStateValueType ObjectType is formally defined in Table 29.
| Attribute | Value | |||||
| BrowseName | BACnetMultiStateValueType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetMultiStateType defined in 7.12. | ||||||
| 0:HasComponent | Object | EventReporting | BACnetEvent ReportingType | O | ||
| 0:HasComponent | Object | FaultEvaluation | BACnetFaultEvaluationType | O | ||
| 0:HasProperty | Variable | Priority_Array | BACnetPriorityValue [16] | 0:PropertyType | O | |
| 0:HasProperty | Variable | Relinquish_Default | 0:UInteger | 0:PropertyType | O | |
The BACnetMultiStateValueType ObjectType is a concrete type and can be used directly.
The components of the BACnetMultiStateValueType have additional subcomponents which are defined in Table 30.
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| EventReporting | 0:HasComponent | Object | EventAlgorithm | BACnetChangeOfStateAlgorithmType | M | |
| 0:HasProperty | Variable | AlarmValues | 0:UInteger [ ] | 0:PropertyType | M | |
| FaultEvaluation | 0:HasComponent | Object | FaultAlgorithm | BACnetFaultStateAlgorithmType | O | |
| 0:HasProperty | Variable | FaultValues | 0:UInteger [ ] | 0:PropertyType | M |
7.15.3 ObjectType Description
7.15.3.1 EventReporting Object override
The instance declaration Object EventReporting overrides definitions of the BACnetEventReportingType.
The EventAlgorithm component is changed to TypeDefinition BACnetChangeOfStateAlgorithmType and ModellingRule Mandatory if used in the BACnetMultiStateValueType. The BACnetChangeOfStateAlgorithmType is defined in 8.10.
On the EventAlgorithm instance of the BACnetChangeOfStateAlgorithmType, the DataType of the Alarm_Values Property is changed to 0:UInteger array.
The BACnet property Alarm_Values of the BACnet object type Multi State Value is mapped to the AlarmValues Property of the BACnetChangeOfStateAlgorithmType.
7.15.3.2 FaultEvaluation Object override
The instance declaration Object FaultEvaluation overrides definitions of the BACnetFaultEvaluationType.
The FaultAlgorithm component is changed to TypeDefinition BACnetFaultStateAlgorithmType if used in the BACnetMultiStateValueType. The BACnetFaultStateAlgorithmType is defined in 8.25.
On the FaultAlgorithm instance of the BACnetFaultStateAlgorithmType, DataType of the Fault_Values Property is changed to 0:UInteger array.
7.15.3.3 Variable Priority_Array
This OPC UA Property, of DataType BACnetPriorityValue [16], represents the BACnet property Priority_Array. The BACnetPriorityValue DataType is defined in 10.6.4.
It is an array that contains prioritized commands that are in effect for this object. See 3.2.1 for details on command prioritization.
7.15.3.4 Variable Relinquish_Default
This OPC UA Property, of DataType UInteger, represents the BACnet property Relinquish_Default.
It is the default value to be used for the Present_Value when all command priority values in the Priority_Array have a NULL value. See 3.2.1 for details on command prioritization.
7.15.3.5 Variable Fault_Values
This OPC UA Property, of DataType UInteger [], represents the BACnet property Fault_Values.
The Fault_Values provide the values used by the fault state algorithm to determine whether the monitored value is in a fault state.
7.16 BACnetCalendarType
7.16.1 General
This OPC UA ObjectType represents a BACnet Calendar object type. A calendar is used to describe a list of calendar dates. Each entry in the list describes a specific date or date pattern, range of dates, or month/week-of-month/day-of-week specification.
Figure 25 shows an overview for the BACnetCalendarType with its Properties and related ObjectTypes. It is formally defined in Table 31.

7.16.2 ObjectType definition
The BACnetCalendarType ObjectType is formally defined in Table 31.
| Attribute | Value | |||||
| BrowseName | BACnetCalendarType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetObjectType defined in 7.1. | ||||||
| 0:HasComponent | Variable | Present_Value | 0:Boolean | 0:BaseDataVariableType | M | |
| 0:HasProperty | Variable | Date_List | BACnetCalendarEntry [ ] | 0:PropertyType | M | |
| 0:HasComponent | Method | AddDateListElements | M | |||
| 0:HasComponent | Method | RemoveDateListElements | M | |||
The BACnetCalendarType ObjectType is a concrete type and can be used directly.
7.16.3 ObjectType Description
7.16.3.1 Variable Present_Value
This OPC UA Variable, of DataType Boolean, represents the BACnet property Present_Value.
It indicates the current value of the calendar: True if the current date is in the Date_List and False if it is not.
7.16.3.2 Variable Date_List
This OPC UA Property, of DataType BACnetCalendarEntry [], represents the BACnet property Date_List. The BACnetCalendarEntry DataType is defined in 10.6.2.
It is an array of elements of which each is either a specific date or date pattern (BACnetDate see 10.5.6), range of dates (BACnetDateRange see 10.5.7), or month/week-of-month/day-of-week specification (BACnetWeekNDay see 10.5.35).
7.16.3.3 Method AddDateListElements
This Method adds entries to the BACnet property Date_List.
Signature
AddDateListElements (
[in] BACnetCalendarEntry[] CalendarEntries
[out] 0:UInt32 FirstFailedElementNumber
);
| Argument | Description |
| CalendarEntries | Array of calendar entries to add to the entries in the BACnet property Date_List. The BACnetCalenderEntry DataType is defined in 10.6.2. |
| FirstFailedElementNumber | The numerical position, starting at 1, of the failed element in the CalendarEntries. If the call succeeds or fails for other reasons, the returned value shall be 0. |
Method Result Codes
| ResultCode | Description |
| BadNodeIdUnknown | This status is returned for the BACnet error codes UNKNOWN_OBJECT and UNKNOWN_PROPERTY |
| BadTypeMismatch | This status is returned for the BACnet error codes INVALID_DATATYPE and DATATYPE_NOT_SUPPORTED |
| BadOutOfRange | This status is returned for the BACnet error code VALUE_OUT_OF_RANGE |
| BadNotWritable | This status is returned for the BACnet error code WRITE_ACCESS_DENIED |
| BadOutOfMemory | This status is returned for the BACnet error code NO_SPACE_TO_ADD_LIST_ELEMENT |
7.16.3.4 Method RemoveDateListElements
This Method removes entries from the BACnet property Date_List.
Signature
RemoveDateListElements (
[in] BACnetCalendarEntry [] CalendarEntries
[out] 0:UInt32 FirstFailedElementNumber
);
| Argument | Description |
| CalendarEntries | Array of calendar entries to remove from the entries in the BACnet property Date_List. The BACnetCalenderEntry DataType is defined in 10.6.2. |
| FirstFailedElementNumber | The numerical position, starting at 1, of the failed element in the CalendarEntries. If the call succeeds or fails for other reasons, the returned value shall be 0. |
Method Result Codes
| ResultCode | Description |
| BadNodeIdUnknown | This status is returned for the BACnet error codes UNKNOWN_OBJECT and UNKNOWN_PROPERTY |
| BadTypeMismatch | This status is returned for the BACnet error codes INVALID_DATATYPE |
| BadOutOfRange | This status is returned for the BACnet error code VALUE_OUT_OF_RANGE |
| BadNotWritable | This status is returned for the BACnet error code WRITE_ACCESS_DENIED |
| BadNotFound | This status is returned for the BACnet error code LIST_ELEMENT_NOT_FOUND |
7.17 BACnetScheduleType
7.17.1 General
This OPC UA ObjectType represents a BACnet Schedule object type. This type defines a periodic schedule that can recur over a range of dates. The schedule may have optional exceptions at arbitrary times or dates. The basic unit of a schedule is days, which are divided into two types: normal days within a week and exception days. A priority mechanism defines which scheduled event is currently valid. The schedule includes a Present_Value variable whose value describes the current state of the schedule, including a default value when no schedules are in effect.
Figure 26 shows an overview for the BACnetScheduleType with its Properties and related ObjectTypes. It is formally defined in Table 32.

7.17.2 ObjectType definition
The BACnetScheduleType ObjectType is formally defined in Table 32.
| Attribute | Value | |||||
| BrowseName | BACnetScheduleType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetObjectType defined in 7.1. | ||||||
| 0:HasComponent | Variable | Present_Value | 0:BaseDataType | 0:BaseDataVariableType | M | |
| 0:HasComponent | Variable | Schedule_Default | 0:BaseDataType | 0:BaseDataVariableType | M | |
| 0:HasProperty | Variable | Exception_Schedule | BACnetSpecialEvent [] | 0:PropertyType | O | |
| 0:HasProperty | Variable | Weekly_Schedule | BACnetDailySchedule[7] | 0:PropertyType | O | |
| 0:HasProperty | Variable | List_Of_Object_Property_References | BACnetDeviceObject PropertyReference[] | 0:PropertyType | M | |
| 0:HasComponent | Method | AddObjectProperty References | M | |||
| 0:HasComponent | Method | RemoveObject PropertyReferences | M | |||
| 0:HasProperty | Variable | Priority_For_Writing | 0:Byte | 0:PropertyType | M | |
| 0:HasComponent | Object | FaultEvaluation | BACnetFaultEvaluation Type | O | ||
| 0:HasProperty | Variable | Out_Of_Service | 0:Boolean | 0:PropertyType | M | |
| 0:HasProperty | Variable | Status_Flags | BACnetStatusFlags | 0:PropertyType | M | |
| 0:HasProperty | Variable | Effective_Period | BACnetDateRange | 0:PropertyType | M | |
| 0:HasComponent | Object | EventReporting | BACnetEvent ReportingType | O | ||
The BACnetScheduleType ObjectType is a concrete type and can be used directly.
7.17.3 ObjectType Description
7.17.3.1 Variable Present_Value
This OPC UA Variable, of DataType BaseDataType, represents the BACnet property Present_Value.
It indicates the current value of the schedule. Most analog, binary, and enumerated values may be scheduled using this abstract DataType.
7.17.3.2 Variable Schedule_Default
This OPC UA Variable, of DataType BaseDataType, represents the BACnet property Schedule_Default.
It represents a default value to be used for the Present_Value property when no other scheduled value is in effect.
7.17.3.3 Variable Exception_Schedule
This OPC UA Property, of DataType BACnetSpecialEvent [], represents the BACnet property Exception_Schedule. The BACnetSpecialEvent DataType is defined in 10.5.31.
Each BACnetSpecialEvent describes a sequence of schedule actions that take precedence over a normal day’s behaviour on a special day or days.
At least one of the two BACnet properties Exception_Schedule and Weekly_Schedule must be present.
7.17.3.4 Variable Weekly_Schedule
This OPC UA Property, of DataType BACnetDailySchedule [7], represents the BACnet property Weekly_Schedule. The BACnetDailySchedule DataType is defined in 10.5.5.
The Weekly_Schedule property contains exactly 7 elements, one for each day of the week. Each element describes a sequence of time/value pairs that provides a sequence of schedule actions on one day of the week when no Exception_Schedule is in effect.
At least one of the two BACnet properties Exception_Schedule and Weekly_Schedule must be present.
7.17.3.5 Variable List_Of_Object_Property_References
This OPC UA Property, of DataType BACnetDeviceObjectPropertyReference, represents the BACnet property List_Of_Object_Property_References.
The BACnetDeviceObjectPropertyReference DataType is defined in 10.5.9.
It specifies the Device_Identifiers, Object_Identifiers, and Property_Identifiers of the properties to be written with specific values at specific times on specific days.
7.17.3.6 Method AddObjectPropertyReferences
This Method adds entries to the BACnet property List_Of_Object_Property_References.
Signature
AddObjectPropertyReferences (
[in] BACnetDeviceObjectPropertyReference []
DeviceObjectPropertyReferences
[out] 0:UInt32 FirstFailedElementNumber
);
| Argument | Description |
| DeviceObjectProperty References | Array of device object references to add to the entries in the BACnet property List_Of_Object_Property_References. The BACnetDeviceObjectPropertyReference DataType is defined in 10.5.9. |
| FirstFailedElementNumber | The numerical position, starting at 1, of the failed element in the CalendarEntries. If the call succeeds or fails for other reasons, the returned value shall be 0. |
Method Result Codes
| ResultCode | Description |
| BadNodeIdUnknown | This status is returned for the BACnet error codes UNKNOWN_OBJECT and UNKNOWN_PROPERTY |
| BadTypeMismatch | This status is returned for the BACnet error codes INVALID_DATATYPE and DATATYPE_NOT_SUPPORTED |
| BadOutOfRange | This status is returned for the BACnet error code VALUE_OUT_OF_RANGE |
| BadNotWritable | This status is returned for the BACnet error code WRITE_ACCESS_DENIED |
| BadOutOfMemory | This status is returned for the BACnet error code NO_SPACE_TO_ADD_LIST_ELEMENT |
7.17.3.7 Method RemoveObjectPropertyReferences
This Method removes entries from the BACnet property List_Of_Object_Property_References.
Signature
RemoveObjectPropertyReferences (
[in] BACnetDeviceObjectPropertyReference []
DeviceObjectPropertyReferences
[out] 0:UInt32 FirstFailedElementNumber
);
| Argument | Description |
| DeviceObjectProperty References | Array of device object references to add to the entries in the BACnet property List_Of_Object_Property_References. The BACnetDeviceObjectPropertyReference DataType is defined in 10.5.9. |
| FirstFailedElementNumber | The numerical position, starting at 1, of the failed element in the CalendarEntries. If the call succeeds or fails for other reasons, the returned value shall be 0. |
Method Result Codes
| ResultCode | Description |
| BadNodeIdUnknown | This status is returned for the BACnet error codes UNKNOWN_OBJECT and UNKNOWN_PROPERTY |
| BadTypeMismatch | This status is returned for the BACnet error codes INVALID_DATATYPE |
| BadOutOfRange | This status is returned for the BACnet error code VALUE_OUT_OF_RANGE |
| BadNotWritable | This status is returned for the BACnet error code WRITE_ACCESS_DENIED |
| BadNotFound | This status is returned for the BACnet error code LIST_ELEMENT_NOT_FOUND |
7.17.3.8 Variable Priority_For_Writing
This OPC UA Property, of DataType Byte, represents the BACnet property Priority_For_Writing.
It defines the priority at which the referenced properties are commanded. Valid values are in the range 1-16, with 1 being considered the highest priority and 16 the lowest. See 3.2.1 for details on command prioritization.
7.17.3.9 Object FaultEvaluation
The FaultEvaluation Object contains status and configuration information for the fault evaluation of the BACnetScheduleType. The BACnetFaultEvaluationType is defined in 8.23. The Object is optional and is not present if fault evaluation is not activated for the BACnet object.
7.17.3.10 Variable Out_Of_Service
This OPC UA Property, of DataType Boolean, represents the BACnet property Out_Of_Service.
It is an indication of whether or not the internal calculations of the schedule object are used to determine the value of the Present_Value property. Other functions that depend on the state of the Present_Value shall respond to changes made to that property while Out_Of_Service is True, as if those changes had occurred by internal calculations.
7.17.3.11 Variable Status_Flags
This OPC UA Property, of DataType BACnetStatusFlags, represents the BACnet property Status_Flags. The BACnetStatusFlags DataType is defined in 10.3.7.
It represents four boolean flags that represent the general health of an analog input. The flags are IN_ALARM, FAULT, OVERRIDDEN, and OUT_OF_SERVICE.
7.17.3.12 Variable Effective_Period
This OPC UA Property, of DataType BACnetDateRange, represents the BACnet property Status_Flags. The BACnetDateRange DataType is defined in 10.5.7.
It specifies the range of dates within which the Schedule object is active. Upon entering its effective period, the object shall calculate its Present_Value.
7.17.3.13 Object EventReporting
BACnet schedule objects may optionally support event reporting to facilitate the reporting of fault conditions. The BACnetEventReportingType is defined in 8.8.
7.18 BACnetLoopType
7.18.1 General
This OPC UA ObjectType represents a BACnet Loop object type. This type defines the externally visible characteristics of a feedback control loop.
Figure 27 shows an overview for the BACnetLoopType with its Properties and related ObjectTypes. It is formally defined in Table 33.

7.18.2 ObjectType definition
The BACnetLoopType ObjectType is formally defined in Table 33.
| Attribute | Value | |||||
| BrowseName | BACnetLoopType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetObjectType defined in 7.1. | ||||||
| 0:HasComponent | Variable | Present_Value | 0:Float | 0:AnalogUnitType | M | |
| 0:HasProperty | Variable | Status_Flags | BACnetStatusFlags | 0:PropertyType | M | |
| 0:HasComponent | Object | FaultEvaluation | BACnetFaultEvaluation Type | O | ||
| 0:HasProperty | Variable | Out_Of_Service | 0:Boolean | 0:PropertyType | M | |
| 0:HasProperty | Variable | Manipulated_Variable_Reference | BACnetDeviceObject PropertyReference | 0:PropertyType | M | |
| 0:HasProperty | Variable | Controlled_Variable_Reference | BACnetDeviceObject PropertyReference | 0:PropertyType | M | |
| 0:HasComponent | Variable | Controlled_Variable_Value | 0:Float | 0:AnalogUnitType | M | |
| 0:HasProperty | Variable | Setpoint_Reference | BACnetDeviceObject PropertyReference | 0:PropertyType | M | |
| 0:HasComponent | Variable | Setpoint | 0:Float | 0:AnalogUnitType | M | |
| 0:HasProperty | Variable | Action | BACnetAction | 0:PropertyType | M | |
| 0:HasComponent | Variable | Proportional_Constant | 0:Float | 0:AnalogUnitType | O | |
| 0:HasComponent | Variable | Integral_Constant | 0:Float | 0:AnalogUnitType | O | |
| 0:HasComponent | Variable | Derivative_Constant | 0:Float | 0:AnalogUnitType | O | |
| 0:HasComponent | Variable | Bias | 0:Float | 0:AnalogUnitType | O | |
| 0:HasProperty | Variable | Priority_For_Writing | 0:Byte | 0:PropertyType | O | |
| 0:HasProperty | Variable | COV_Increment | 0:Float | 0:PropertyType | O | |
| 0:HasComponent | Object | EventReporting | BACnetEventReportingType | O | ||
The BACnetLoopType ObjectType is a concrete type and can be used directly.
The components of the BACnetLoopType have additional subcomponents which are defined in Table 34.
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| EventReporting | 0:HasComponent | Object | EventAlgorithm | BACnetFloatingLimitAlgorithmType | M |
7.18.3 ObjectType Description
7.18.3.1 Variable Present_Value
This OPC UA Variable, of DataType Float, represents the BACnet property Present_Value. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Output_Units.
The Present_Value of the BACnetLoopType indicates the current output value of the loop algorithm and describes the engineering units of the value. If the object supports event reporting, then the Present_Value is the monitored value for the object’s event algorithm. See the BACnet specification for information on the BACnet event enrolment model.
This OPC UA AnalogItemType Variable represents the BACnet properties Present_Value, Minimum_Output, Maximum_Output, Output_Units and Update_Interval. The OPC UA VariableType AnalogItemType is defined in OPC 10000-8. It defines the OPC UA Properties EURange, EngineeringUnits and InstrumentRange.
The following list provides the BACnet property and the mapping to the corresponding data member in the OPC UA AnalogItem.
Present_Value represented by Value Attribute of the Variable.
Minimum_Output represented by Low part of EURange Property of the Variable. If the optional BACnet property Minimum_Output is not present, the EURange Property should not be provided.
Maximum_Output represented by the High part of EURange Property of the Variable. If the optional BACnet property Maximum_Output is not present, the EURange Property should not be provided.
Output_Units represented by the EngineeringUnits Property of the Variable. The mapping of BACnet units to OPC UA units is defined in 11.
Update_Interval represented by MinSamplingInterval Attribute of the Variable.
7.18.3.2 Variable Status_Flags
This OPC UA Property, of DataType BACnetStatusFlags, represents the BACnet property Status_Flags. The BACnetStatusFlags DataType is defined in 10.3.7.
It represents four Boolean flags that represent the general health of a BACnetLoopType. The flags are IN_ALARM, FAULT, OVERRIDDEN, and OUT_OF_SERVICE.
7.18.3.3 Object FaultEvaluation
The FaultEvaluation Object contains status and configuration information for the fault evaluation of the BACnetLoopType. The BACnetFaultEvaluationType is defined in 8.23. The Object is optional and is not present if fault evaluation is not activated for the BACnet object.
7.18.3.4 Variable Out_Of_Service
This OPC UA Property, of DataType Boolean, represents the BACnet property Out_Of_Service.
It is an indication of whether or not the physical input that the object represents is not in service. While Out_Of_Service is True, Present_Value and Reliability may be changed to any value as a means of simulation and/or testing.
7.18.3.5 Variable Manipulated_Variable_Reference
This OPC UA Property, of DataType BACnetDeviceObjectPropertyReference, represents the BACnet property Manipulated_Variable_Reference. The BACnetDeviceObjectProperty Reference DataType is defined in 10.5.9.
This property indicates an object and property that the output (Present_Value) of the control loop is written to. Generally this is a BACnet Analog Output object used to position a device, but it could also be another object or property. See the BACnet specification for additional examples.
7.18.3.6 Variable Controlled_Variable_Reference
This OPC UA Property, of DataType BACnetDeviceObjectPropertyReference, represents the BACnet property Controlled_Variable_Reference. The BACnetDeviceObjectProperty Reference DataType is defined in 10.5.9.
This property identifies the property used to set the Controlled_Variable_Value property of the Loop object. Normally this is the Present_Value of an Analog Input object that is used to measure a process variable (for example, temperature) but it could also be another object. See the BACnet specification for additional examples.
7.18.3.7 Variable Controlled_Variable_Value
This OPC UA Variable, of DataType Float, represents the BACnet property Controlled_Variable_Value. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Controlled_Variable_Units.
This property indicates the value of the property (and its engineering units) of the object that is referenced by the Controlled_Variable_Reference property. The control loop compares this value with the Setpoint to calculate the error.
7.18.3.8 Variable Setpoint_Reference
This OPC UA Property, of DataType BACnetDeviceObjectPropertyReference, represents the BACnet property Setpoint_Reference. The BACnetDeviceObjectProperty Reference DataType is defined in 10.5.9. The value 4194303 is used as objectIdentifier to indicate that the property is not initialized.
This property represents either zero or one reference. If the reference is zero, then the setpoint for this control loop is fixed and is contained in the Setpoint property. The presence of a reference indicates that the property of another object contains the setpoint value used for the Loop object and the reference specifies that property.
7.18.3.9 Variable Setpoint
This OPC UA Variable, of DataType Float, represents the BACnet property Setpoint. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Output_Units.
The Setpoint of the BACnetLoopType is the value of the loop setpoint or the property of the object referenced by the Setpoint_Reference (in engineering units described by the Controlled_Variable_Value property).
7.18.3.10 Variable Action
This OPC UA Property, of DataType BACnetAction, represents the BACnet property Action. The DataType BACnetAction is defined in 10.4.2.
This property indicates whether the loop is “direct” or “reverse”.
7.18.3.11 Variable Proportional_Constant
This OPC UA Variable, of DataType Float, represents the BACnet property Proportional_Constant. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Proportional_Constant_Units.
This property indicates the value and engineering unit of the proportional gain parameter that is used by the loop algorithm. It is used to represent the various forms of gain for the proportional control mode (overall gain, throttling range, or proportional band).
7.18.3.12 Variable Integral_Constant
This OPC UA Variable, of DataType 0:Float, represents the BACnet property Integral_Constant. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Integral_Constant_Units.
This property indicates the value and engineering units of the integral gain parameter that is used by the loop algorithm. It may be used to represent any of the various forms of gain for the integral control mode (reset time or rate).
7.18.3.13 Variable Derivative_Constant
This OPC UA Variable, of DataType 0:Float, represents the BACnet property Derivative_Constant. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Derivative_Constant_Units.
This property indicates the value and engineering units of the derivative gain parameter used by the loop algorithm. It may be used to represent any of the various forms of gain for the derivative control mode (derivative time or rate time).
7.18.3.14 Variable Bias
This OPC UA Variable, of DataType 0:Float, represents the BACnet property Bias. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Output_Units.
This property indicates the bias value that is used by the loop algorithm.
7.18.3.15 Variable Priority_For_Writing
This OPC UA Variable, of DataType Byte, represents the BACnet property Priority_For_Writing.
This property provides a priority to be used by the command prioritization mechanism. This allows loop objects to be used to control the commandable property of an object. In particular, it identifies the particular priority slot in the Priority_Array of the Manipulated_Variable_Reference that is controlled by this loop. See the BACnet specification for the specific range of allowed values.
7.18.3.16 Variable COV_Increment
This OPC UA Variable, of DataType 0:Float, represents the BACnet property COV_Increment.
This property specifies the minimum change in Present_Value that will cause a COV Notification to be issued to COV clients. This property is required if COV reporting is supported by this object.
7.18.3.17 Object EventReporting
The EventReporting Object contains status and configuration information for the event reporting of BACnetLoopType. The BACnetEventReportingType is defined in 8.8. The Object is optional and is not present if event generation is not activated for the BACnet object.
The instance declaration Object EventReporting overrides definitions of the BACnetEventReportingType.
The EventAlgorithm component is changed to TypeDefinition BACnetFloatingLimitAlgorithmType and ModellingRule Mandatory if used in the BACnetLoopType. The BACnetFloatingLimitAlgorithmType is defined in 8.12.
On the EventAlgorithm instance of the BACnetFloatingLimitAlgorithmType the BACnet property Error_Limit is mapped to both LowDiffLimit and HighDiffLimit. The BACnet property Deadband is mapped to pDeadband. The parameter SetpointReference contains the reference to the BACnet property Setpoint of this object.
7.19 BACnetEventEnrollmentType
7.19.1 General
This OPC UA ObjectType represents a status, error, and event reporting configuration for a BACnet device.
Figure 28 shows an overview for the BACnetEventEnrollmentType with its Properties and related ObjectTypes. It is formally defined in Table 35.

7.19.2 ObjectType definition
The BACnetEventEnrollmentType ObjectType is formally defined in Table 35.
| Attribute | Value | |||||
| BrowseName | BACnetEventEnrollmentType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetObjectType defined in 7.1. | ||||||
| 0:HasProperty | Variable | Event_State | BACnetEventState | 0:PropertyType | M | |
| 0:HasProperty | Variable | Status_Flags | BACnetStatusFlags | 0:PropertyType | M | |
| 0:HasProperty | Variable | Event_Type | BACnetEventType | 0:PropertyType | M | |
| 0:HasComponent | Method | SetEventAlgorithm | M | |||
| 0:HasProperty | Variable | Object_Property_Reference | BACnetDeviceObjectPropertyReference | 0:PropertyType | M | |
| 0:HasProperty | Variable | Fault_Type | BACnetFaultType | 0:PropertyType | M | |
| 0:HasComponent | Method | SetFaultAlgorithm | O | |||
| 0:HasComponent | Object | FaultEvaluation | BACnetFaultEvaluation Type | M | ||
| 0:HasComponent | Object | EventReporting | BACnetEventReportingType | M | ||
The BACnetEventEnrollmentType ObjectType is a concrete type and can be used directly.
7.19.3 ObjectType Description
7.19.3.1 Variable Status_Flags
This OPC UA Variable, of DataType BACnetStatusFlags, represents the BACnet property Status_Flags. The BACnetStatusFlags DataType is defined in 10.3.7.
It represents four 0:Boolean flags that represent the general health of an analog input. The flags are IN_ALARM, FAULT, OVERRIDDEN, and OUT_OF_SERVICE.
7.19.3.2 Variable Event_Type
This OPC UA Property, of DataType BACnetEventType, represents the BACnet property Event_Type. The BACnetEventType DataType is defined in 10.4.12.
The value of this Variable is an enumeration that indicates the type of event algorithm that is to be used to detect the occurance of events and the event value notification parameters that are conveyed in event notifications.
7.19.3.3 Method SetEventAlgorithm
This Method sets the event algorithm for the EventReporting Object.
Signature
SetEventAlgorithm (
[in] BACnetEventParameter EventParameters
);
| Argument | Description |
| EventParameters | The new event algorithm. The BACnetEventParameter DataType is defined in 10.6.4. |
Method Result Codes
| ResultCode | Description |
| BadNodeIdUnknown | This status is returned for the BACnet error codes UNKNOWN_OBJECT and UNKNOWN_PROPERTY |
| BadTypeMismatch | This status is returned for the BACnet error codes INVALID_DATATYPE and DATATYPE_NOT_SUPPORTED |
| BadOutOfRange | This status is returned for the BACnet error code VALUE_OUT_OF_RANGE |
| BadNotWritable | This status is returned for the BACnet error code WRITE_ACCESS_DENIED |
7.19.3.4 Variable Object_Property_Reference
This OPC UA Property, of DataType BACnetDeviceObjectPropertyReference, represents the BACnet property Object_Property_Reference. The BACnetDeviceObjectProperty Reference DataType is defined in 10.5.9.
It indicates the object and property that is referenced by the event enrollement object. The event algorithm specified by the Event_Type property is applied to the referenced property in order to determine the Event_State of the event.
7.19.3.5 Variable Fault_Type
This OPC UA Property, of DataType BACnetFaultType, represents the BACnet property Fault_Type. The BACnetFaultType DataType is defined in 10.4.13.
It is an enumeration (NONE, FAULT_CHARACTERSTRING, FAULT_EXTENDED, and so on) that indicates the type of fault algorithm that is applied by the event enrollment object.
7.19.3.6 Method SetFaultAlgorithm
This Method sets the fault algorithm for the FaultEvaluation Object.
Signature
SetFaultAlgorithm (
[in] BACnetFaultParameter FaultParameters
);
| Argument | Description |
| FaultParameters | The new event algorithm. The BACnetFaultParameter DataType is defined in 10.6.4. |
Method Result Codes
| ResultCode | Description |
| BadNodeIdUnknown | This status is returned for the BACnet error codes UNKNOWN_OBJECT and UNKNOWN_PROPERTY |
| BadTypeMismatch | This status is returned for the BACnet error codes INVALID_DATATYPE and DATATYPE_NOT_SUPPORTED |
| BadOutOfRange | This status is returned for the BACnet error code VALUE_OUT_OF_RANGE |
| BadNotWritable | This status is returned for the BACnet error code WRITE_ACCESS_DENIED |
7.19.3.7 Object FaultEvaluation
The FaultEvaluation Object contains status and configuration information for the fault evaluation of the BACnetEventEnrollmentType. The BACnetFaultEvaluationType is defined in 8.23. The Object is optional and is not present if fault evaluation is not activated for the BACnet object.
7.19.3.8 Object EventReporting
The EventReporting Object contains status and configuration information for the event reporting of BACnetEventEnrollmentType Objects. The BACnetEventReportingType is defined in 0. The Object is optional and is not present if event generation is not activated for the BACnet object.
7.20 BACnetLogType
7.20.1 General
This OPC UA ObjectType represents an object which monitors a property of a referenced object and serializes the timestamp as local time and value of the property into an internal buffer when a pre-defined condition is met. The serialization may be invoked on a periodic basis, using a trigger or upon a change of value.
Figure 29 shows an overview for the BACnetLogType with its Properties and related ObjectTypes. It is formally defined in Table 36.

7.20.2 ObjectType definition
The BACnetLogType ObjectType is formally defined in Table 36.
| Attribute | Value | |||||
| BrowseName | BACnetLogType | |||||
| IsAbstract | True | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetObjectType defined in 7.1. | ||||||
| 0:HasProperty | Variable | Status_Flags | BACnetStatusFlags | 0:PropertyType | M | |
| 0:HasProperty | Variable | Enable | 0:Boolean | 0:PropertyType | M | |
| 0:HasProperty | Variable | Start_Time | BACnetDateTime | 0:PropertyType | O | |
| 0:HasProperty | Variable | Stop_Time | BACnetDateTime | 0:PropertyType | O | |
| 0:HasProperty | Variable | Stop_When_Full | 0:Boolean | 0:PropertyType | M | |
| 0:HasProperty | Variable | Buffer_Size | 0:UInt32 | 0:PropertyType | M | |
| 0:HasProperty | Variable | Record_Count | 0:UInt32 | 0:PropertyType | M | |
| 0:HasProperty | Variable | Total_Record_Count | 0:UInt32 | 0:PropertyType | M | |
| 0:HasProperty | Variable | Records_Since_Notification | 0:UInt32 | 0:PropertyType | O | |
| 0:HasComponent | Object | FaultEvaluation | BACnetFault Evaluation Type | M | ||
| 0:HasComponent | Object | EventReporting | BACnetEvent ReportingType | M | ||
The BACnetLogType ObjectType is an abstract type and cannot be used directly.
The components of the BACnetLogType have additional subcomponents which are defined in Table 37.
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| EventReporting | 0:HasComponent | Object | EventAlgorithm | BACnetBufferReadyAlgorithmType | M |
7.20.3 ObjectType Description
7.20.3.1 Variable Status_Flags
This OPC UA Variable, of DataType BACnetStatusFlags, represents the BACnet property Status_Flags. The BACnetStatusFlags DataType is defined in 10.3.7.
It represents four 0:Boolean flags that represent the general health of an analog input. The flags are IN_ALARM, FAULT, OVERRIDDEN, and OUT_OF_SERVICE.
7.20.3.2 Variable Enable
This OPC UA Property, of DataType Boolean, represents the BACnet property Enable.
When the Enable value is true, logging is enabled. When the Enable variable value is false, logging is not enabled. Logging occurs if and only if the Enable variable value is true and the device Local_Time.
7.20.3.3 Variable Start_Time
This OPC UA Property, of DataType BACnetDateTime, represents the BACnet property Start_Time. The BACnetDateTime DataType is defined in 10.5.8.
The Start_Time value indicates the date and time at or after which logging shall be enabled by this variable. The variable is O, and if unspecified is ignored for the purpose of determining whether or not logging is enabled. If Start_Time specifies a time and date that is equal to or later than the Stop_Time then logging shall be disabled.
7.20.3.4 Variable Stop_Time
This OPC UA Property, of DataType BACnetDateTime, represents the BACnet property Stop_Time. The BACnetDateTime DataType is defined in 10.5.8.
The Stop_Time value indicates the date and time at or after which logging shall be disabled by this variable. The variable is O, and if unspecified is ignored for the purpose of determining whether or not logging is disabled. If Stop_Time indicates a date and time that is earlier than the Start_Time, then logging is disabled.
7.20.3.5 Variable Stop_When_Full
This OPC UA Property, of DataType Boolean, represents the BACnet property Stop_When_Full.
When the Stop_When_Full value is true, logging shall cease when the serialization buffer is full. When logging ceases because the next event would fill the buffer, an event indicating that the buffer is full is logged and the Enable variable shall be set false.
7.20.3.6 Variable Buffer_Size
This OPC UA Property, of DataType UInt32, represents the BACnet property Buffer_Size.
The Buffer_Size value indicates the number of records that may be contained by the buffer.
7.20.3.7 Variable Record_Count
This OPC UA Property, of DataType UInt32, represents the BACnet property Record_Count.
The Record_Count value indicates the number of records that are currently present in the buffer. When a value of zero is written to this variable, all records in the buffer shall be deleted and the Records_Since_Notification variable value shall be reset to zero.
7.20.3.8 Variable Total_Record_Count
This OPC UA Property, of DataType UInt32, represents the BACnet property Total_Record_Count.
The Total_Record_Count value indicates the total number of records that have been logged since the object was created. When the count is incremented past the maximum 32-bit integer value, the next value of the variable shall be 1.
7.20.3.9 Variable Records_Since_Notification
This OPC UA Property, of DataType UInt32, represents the BACnet property Records_Since_Notification.
The Records_Since_Notification indicates the number of records that have been logged since the buffer was last cleared (notification), or since the beginning of the logging process if no notification has been delivered.
7.20.3.10 Object FaultEvaluation
The FaultEvaluation Object contains status and configuration information for the fault evaluation of the BACnetLoopType. The BACnetFaultEvaluationType is defined in 8.23. The Object is optional and is not present if fault evaluation is not activated for the BACnet object.
7.20.3.11 Object EventReporting
The EventReporting Object contains status and configuration information for the event reporting of BACnetTrendLogType. The BACnetEventReportingType is defined in 8.8. The Object is optional and is not present if event generation is not activated for the BACnet object.
The instance declaration Object EventReporting overrides definitions of the BACnetEventReportingType.
The EventAlgorithm component is changed to TypeDefinition BACnetFloatingLimitAlgorithmType and ModellingRule Mandatory if used in the BACnetLoopType. The BACnetBufferReadyAlgorithmType is defined in 8.14.
The Properties TimeDelay and TimeDelayNormal are set to 0 and shall be read only since they do not exist on a BACnet Trend Log object.
On the EventAlgorithm instance of the BACnetBufferReadyAlgorithmType the BACnet property Notification_Threshold is mapped to Threshold. The BACnet property Last_Notify_Record is mapped to PreviousCount.
7.21 BACnetTrendLogBaseType
7.21.1 General
This OPC UA ObjectType represents the intrinsic configuration paremeters of a trend log. This primarily represents the basis upon which logging is performed: periodic, “triggered”, or based upon a change of value.
Figure 30 shows an overview for the BACnetTrendLogBaseType with its Properties and related ObjectTypes. It is formally defined in Table 38.

7.21.2 ObjectType definition
The BACnetTrendLogBaseType ObjectType is formally defined in Table 38.
| Attribute | Value | |||||
| BrowseName | BACnetTrendLogBaseType | |||||
| IsAbstract | True | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetLogType defined in 7.20. | ||||||
| 0:HasProperty | Variable | Logging_Type | BACnetLoggingType | 0:PropertyType | O | |
| 0:HasProperty | Variable | Log_Interval | 0:UInteger | 0:PropertyType | O | |
| 0:HasProperty | Variable | Align_Intervals | 0:Boolean | 0:PropertyType | O | |
| 0:HasProperty | Variable | Interval_Offset | 0:UInteger | 0:PropertyType | O | |
| 0:HasProperty | Variable | Trigger | 0:Boolean | 0:PropertyType | O | |
The BACnetTrendLogBaseType ObjectType is an abstract type and cannot be used directly.
7.21.3 ObjectType Description
7.21.3.1 Variable Logging_Type
This OPC UA Property, of DataType BACnetLoggingType, represents the BACnet property Logging_Type. The BACnetLoggingType DataType is defined in 10.4.16.
The Logging_Type value specifies whether the trend log collects record periodically, by change of value, or via “triggered” acquisition.
7.21.3.2 Variable Log_Interval
This OPC UA Property, of DataType UInteger, represents the BACnet property Log_Interval.
The Log_Interval value specifies a periodic value, in hundredths of a second, that the referenced property is logged when the Logging_Type variable value is POLLED. The variable value shall be zero and ignored when the Logging_Type variable value is anything other than POLLED.
7.21.3.3 Variable Align_Intervals
This OPC UA Property, of DataType Boolean, represents the BACnet property Align_Intervals.
The Align_Intervals indicates whether clock-aligned periodic logging shall be enabled. When clock-aligned periodic logging is enabled, and the Log_Interval is a factor of a second, minute, hour, or day, then the beginning of the priod shall coincide with the next clock second, minute, hour, or day.
7.21.3.4 Variable Interval_Offset
This OPC UA Property, of DataType UInteger, represents the BACnet property Interval_Offset.
The Interval_Offset value indicates an offset in hundredths of seconds from the beginning of the specified logging period until logging shall actually begin. The offset shall be interpreted as the Interval_Offset modulo the Log_Interval. For example, if the Log_Interval is 30 and the Interval_Offset is 31, then the offset shall be 1.
7.21.3.5 Variable Trigger
This OPC UA Property, of DataType Boolean, represents the BACnet property Trigger.
When the Trigger variable value transitions from true to false and the Logging_Type is TRIGGERED then the trend log shall serialize the referenced property. The Trigger variable value is reset to false when data acquisition is completed.
7.22 BACnetTrendLogType
7.22.1 General
This OPC UA ObjectType represents an object that monitors a single property of a referenced object and logs its value and timestamp into an internal buffer when a set of pre-defined conditions are met.
Figure 31 shows an overview for the BACnetTrendLogType with its Properties and related ObjectTypes. It is formally defined in Table 39.

7.22.2 ObjectType definition
The BACnetTrendLogType ObjectType is formally defined in Table 39.
| Attribute | Value | |||||
| BrowseName | BACnetTrendLogType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetTrendLogBaseType defined in 7.20.3.10. | ||||||
| 0:HasProperty | Variable | COV_Resubscription_Interval | 0:UInteger | 0:PropertyType | O | |
| 0:HasProperty | Variable | Client_COV_Increment | BACnetClientCOV | 0:PropertyType | O | |
| 0:HasProperty | Variable | Log_DeviceObjectProperty | BACnetDeviceObject PropertyReference | 0:PropertyType | O | |
| 0:HasComponent | Variable | Log_Buffer | BaseDataType | 0:BaseData VariableType | M | |
The BACnetTrendLogType ObjectType is a concrete type and can be used directly.
7.22.3 ObjectType Description
7.22.3.1 Variable COV_Resubscription_Interval
This OPC UA Property, of DataType UInteger, represents the BACnet property COV_Resubscription_Interval.
The COV_Resubscription_Interval specifies the time in seconds between COV resubscriptions. The first COV subscription is issued when the trend log begins operations or when the Enable variable value becomes true.
7.22.3.2 Variable Client_COV_Increment
This OPC UA Property, of DataType BACnetClientCOV, represents the BACnet property Client_COV_Increment. The BACnetClientCOV DataType is defined in 10.6.3.
The Client_COV_Increment value indicates the increment that is used to determine whether a change of value has occurred.
7.22.3.3 Variable Log_DeviceObjectProperty
This OPC UA Property, of DataType BACnetDeviceObjectPropertyReference [], represents the BACnet property Log_DeviceObjectProperty. The BACnetDeviceObjectPropertyReference DataType is defined in 10.5.9.
The Log_DeviceObjectProperty variable specifies the Device Identifier, Object Identifier, and Property Identifier of the property to be trend logged.
7.22.3.4 Variable Log_Buffer
This OPC UA Variable represents the BACnet property Log_Buffer. It represents a list of logged values and can only be accessed with with the BACnet service ReadRange. Therefore, the OPC UA representation requires the AccessLevel HistoryReadable to allow access of the logged values through OPC UA Service HistoryRead (see Table 40).
The current value is not readable since it is not provided through BACnet directly. The BACnetUaMapper may provide the current value by reading the referenced BACnet property that is logged by the BACnet Trend Log object. In this case the AccessLevel can also have the Readable flag set.
| OPC UA Attribute | Value |
| BrowseName | Log_Buffer |
| AccessLevel | HistoryReadable |
| Historizing | True if BACnet property Enable is True and the current time is between the BACnet property values Start_Time and Stop_Time |
7.23 BACnetTrendLogMultipleType
7.23.1 General
This OPC UA ObjectType represents an object that monitors one or more properties of one or more referenced objects and logs the values and timestamps into an internal buffer when a set of pre-defined conditions are met.
Figure 32 shows an overview for the BACnetTrendLogMultipleType with its Properties and related ObjectTypes. It is formally defined in Table 41.

7.23.2 ObjectType definition
The BACnetTrendLogMultipleType ObjectType is formally defined in Table 41.
| Attribute | Value | |||||
| BrowseName | BACnetTrendLogMultipleType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetTrendLogBaseType defined in 7.20.3.10. | ||||||
| 0:HasProperty | Variable | Log_DeviceObjectProperty | BACnetDeviceObjectPropertyReference [ ] | 0:PropertyType | O | |
| 0:HasComponent | Variable | Log_Buffer | BaseDataType[] | 0:BaseDataVariableType | M | |
The BACnetTrendLogMultipleType ObjectType is a concrete type and can be used directly.
7.23.3 ObjectType Description
7.23.3.1 Variable Log_DeviceObjectProperty
This OPC UA Property, of DataType BACnetDeviceObjectPropertyReference [], represents the BACnet property Log_DeviceObjectProperty. The BACnetDeviceObjectPropertyReference DataType is defined in 10.5.9.
The Log_DeviceObjectProperty array houses the set of properties that will be monitored and subsequently logged. When an element of the array has an object or device instance number equal to 4194303, this indicates that the element is uninitialized. For uninitialized elements, an indication that no property was specified shall be written to the corresponding entry in each log record.
7.23.3.2 Variable Log_Buffer
This OPC UA Property, of DataType BACnetLogMultipleRecord, represents the BACnet property Log_Buffer.
7.24 BACnetEventLogType
7.24.1 General
This OPC UA ObjectType represents an object that records event notifications with timestamps and other pertinent data into an internal buffer for subsequent retrieval.
Figure 33 shows an overview for the BACnetEventLogType with its Properties and related ObjectTypes. It is formally defined in Table 42.

7.24.2 ObjectType definition
The BACnetEventLogType ObjectType is formally defined in Table 42.
| Attribute | Value | |||||
| BrowseName | BACnetEventLogType | |||||
| IsAbstract | False | |||||
| EventNotifier | HistoryRead | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetLogType defined in 7.20. | ||||||
The BACnetEventLogType ObjectType is a concrete type and can be used directly.
7.25 BACnetStructuredViewType
7.25.1 General
This OPC UA ObjectType represents an object that provides a hierarchical view to the BACnet objects contained in a BACnet device. It is formally defined in Table 43.
7.25.2 ObjectType definition
The BACnetStructuredViewType ObjectType is formally defined in Table 43.
| Attribute | Value | |||||
| BrowseName | BACnetStructuredViewType | |||||
| IsAbstract | True | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetObjectType defined in 7.1. | ||||||
| 0:HasComponent | Object | <BACnetStructuredView> | BACnetStructuredViewType | OP | ||
| 0:HasComponent | Object | <BACnetObject> | BACnetObjectType | OP | ||
| 0:HasProperty | Variable | Node_Type | BACnetNodeType | 0:PropertyType | M | |
| 0:HasProperty | Variable | Node_Subtype | 0:String | 0:PropertyType | O | |
| 0:HasProperty | Variable | Subordinate_List | BACnetDeviceObjectPropertyReference[] | 0:PropertyType | M | |
| 0:HasProperty | Variable | Subordinate_Annotations | 0:String[] | 0:PropertyType | O | |
The BACnetStructuredViewType ObjectType is an abstract type and cannot be used directly.
7.25.3 ObjectType Description
7.25.3.1 <BACnetStructuredViewName>
All BACnetStructureViews of the Subordinate_List shall be referenced with a 0:HasComponent Reference.
7.25.3.2 <BACnetObjectType>
All BACnetObjects of the Subordinate_List shall be referenced with a 0:HasComponent Reference.
7.25.3.3 Node_Type
This Property represents the type of BACnet node.
7.25.3.4 Variable Node_Subtype
This Property is a string of printable characters whose content is not restricted. It provides a more specific classification of the object in the hierarchy of objects, providing a short description of the item represented by the node.
7.25.3.5 Variable Subordinate_List
This property is an array of BACnetDeviceObjectPropertyReference that defines the members of the current Structured View.
By including references to 'child' Structured View objects, multilevel hierarchies may be created.
If the optional device identifier is not present for a particular Subordinate_List member, then that object must reside in the same device that maintains the Structured View object. To avoid recursion, it is suggested that a single Structured View object should be referenced only once in the hierarchy. If the size of the Subordinate_List array is changed, the size of the Subordinate_Annotations array, if present, shall also be changed to the same size.
7.25.3.6 Variable Subordinate_Annotations
This property, an array of String, shall be used to define a text string description for each member of the Subordinate_List. The content of these strings is not restricted. If the size of this array is changed, the size of the Subordinate_List array shall also be changed to the same size.
7.26 BACnetNotifierType
7.26.1 ObjectType definition
The BACnetNotifierType is formally defined in Table 44.
| Attribute | Value | |||||
| BrowseName | BACnetNotifierType | |||||
| IsAbstract | True | |||||
| EventNotifier | SubscribeToEvents | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetObjectType defined in 7.1. | ||||||
| 0:HasProperty | Variable | Recipient_List | BACnetDestination | 0:PropertyType | M | |
The BACnetNotifierType ObjectType is an abstract type and cannot be used directly.
7.26.2 ObjectType Description
7.26.2.1 Variable Recipient_List
This OPC UA Property, of DataType BACnetDestination, represents the BACnet property Recipient_List. The BACnetDestination DataType is defined in 10.5.9.
7.27 BACnetNotificationClassType
7.27.1 ObjectType definition
The BACnetNotificationClass is formally defined in Table 45.
| Attribute | Value | |||||
| BrowseName | BACnetNotificationClassType | |||||
| IsAbstract | False | |||||
| EventNotifier | SubscribeToEvents | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BACnetNotifierType defined in 7.26. | ||||||
| 0:HasProperty | Variable | Notification_Class | 0:UInt32 | 0:PropertyType | M | |
| 0:HasProperty | Variable | Priority | 0:Byte[3] | 0:PropertyType | M | |
| 0:HasProperty | Variable | Ack_Required | BACnetEventTransitionBits | 0:PropertyType | M | |
The BACnetNotificationClass ObjectType is a concrete type and can be used directly.
Instances of this ObjectType are used as event notifiers and have the EventNotifier attribute always set to SubscribeToEvents.
7.27.2 ObjectType Description
7.27.2.1 Variable NotificationClass
This OPC UA Property, of type UInt32, indicates the numeric value of the BACnet Notification Class object used in event initiating objects to refere to the BACnet Notification Class object.
7.27.2.2 Priority
This Property, of type Byte[3], shall convey the priority to be used for event notifications for TO_OFFNORMAL, TO_FAULT, and TO_NORMAL events, respectively. Priorities shall range from 0 - 255 inclusive. A lower number indicates a higher priority.
7.27.2.3 Ack_Required
This OPC UA Property, of DataType BACnetEventTransitionBits, represents the BACnet property Ack_Required. The BACnetEventTransitionBits DataType is defined in 10.3.3.