BACnet Driver Addressing

The general format for addressing BACnet objects and properties is as follows (Brackets [ ] are used for array items. Braces { } are shown to mark optional components, but must not be used in the actual address string):

ObjectType{:}#{.Property}{[I]}{(P)}

where:

  • ObjectType is the BACnet object Default Address, Acronym, or Object Type code, according to the following table. A colon is required to separate the type code from the instance number, but this is optional when using an address or acronym. Vendor-specific objects are only supported through codes (127-1023).
  • # is the object instance number
  • Property is either the name of the property or its numeric identifier, as defined in ANSI/ASHRAE Standard 135-2012, clauses 12 and 21. If omitted, it is assumed as Present_Value (85), which usually contains the current value assigned to the object. Vendor-specific properties are only supported through identifiers (512-4194303).
  • I is the array index, required for properties encoded as such.
  • P is the write priority, used to write to commandable properties. Values from 1 to 16 are accepted. If not specified, devices assume it as 16 (the lowest).

(Examples follow the table.)

Object Name Default Address Accepted Acronyms Type Code
Analog Input AnalogInput AI 0
Analog Output AnalogOutput AO 1
Analog Value AnalogValue AV 2
Binary Input BinaryInput BI 3
Binary Output BinaryOutput BO 4
Binary Value BinaryValue BV 5
Calendar Calendar CAL 6
Command Command COM, CMD 7
Device Device DEV 8
Event Enrollment EventEnrollment EE 9
File File F 10
Group Group G 11
Loop Loop LP 12
Multi-state Input MultiStateInput MSI, MI 13
Multi-state Output MultiStateOutput MSO, MO 14
Notification Class NotificationClass NC 15
Program Program PROG 16
Schedule Schedule SCH 17
Averaging Averaging AVG 18
Multi-state Value MultiStateValue MSV, MV 19
Trend Log TrendLog TL 20
Life Safety Point LifeSafetyPoint LSP 21
Life Safety Zone LifeSafetyZone LSZ 22
Accumulator Accumulator ACM 23
Pulse Converter PulseConverter PC 24
Event Log EventLog EL 25
Global Group GlobalGroup GG 26
Trend Log Multiple TrendLogMultiple TLM 27
Load Control LoadControl LC 28
Structured View StructuredView SV 29
Access Door AccessDoor ACD 30
Access Credential AccessCredential ACC 32
Access Point AccessPoint ACP 33
Access Rights AccessRights ACR 34
Access User AccessUser ACU 35
Access Zone AccessZone ACZ 36
Credential Data Input CredentialDataInput CDI 37
Network Security NetworkSecurity NS 38
BitString Value BitStringValue BSV, BS 39
CharacterString Value CharacterStringValue CSV, CS 40
Date Pattern Value DatePatternValue DPV, DP 41
Date Value DateValue DV 42
DateTime Pattern Value DateTimePatternValue DTPV, DTP 43
DateTime Value DateTimeValue DTV 44
Integer Value IntegerValue IV 45
Large Analog Value LargeAnalogValue LAV 46
OctetString Value OctetStringValue OSV, OS 47
Positive Integer Value PositiveIntegerValue UV, PIV 48
Time Pattern Value TimePatternValue TPV, TP 49
Time Value TimeValue TV 50
Notification Forwarder NotificationForwarder NF 51
Alert Enrollment AlertEnrollment AE 52
Channel Channel CH 53
Lighting Output LightingOutput LO 54

For example, to read or write the value of Analog Input 1, any of the following is accepted:

AnalogInput1
AnalogInput:1
AI1
AI1.85
0:1
AnalogInput1.Present_Value
AI1.Present_Value

To retrieve the engineering units of the Accumulator object #3, both of the following can be used:

Accumulator3.Units
ACM3.Units
23:3.117

To write the present value of Analog Value 2 under priority 3:

AnalogValue3.Present_Value(3)
AV2(3)
2:2(3)

If non-null values are currently stored under higher priorities (1 or 2), reading the previous address will return the highest priority value instead. Under such circumstances, a VTScada output widget will not report success in the writing procedure, unless the Read Address of the tag is set to:

AnalogValue3.Priority_Array[3]

The BACnet Driver provides an address selection module to help you write addresses in the correct format:

Object Type

Select the object type from this drop list. All standard BACnet object names are shown, regardless of being supported or present in the connected device.

Instance Number

Any number between 0 and the maximum object identifier (default: 4194303) can be selected, regardless of the range supported by the device.

Property

The property to read or write can be selected from this drop list. By selecting the first option in the list, the address will not specify a property, thus Present_Value will be assumed, even if the object doesn't support it. Properties supported by the selected object (per the BACnet standard) are listed on top, but any existing property can be selected. The support of specific properties, even those defined in the standard, depends on the device.

Array Index

The index of the array item being addressed, for properties encoded as such. BACnet array indexes are 1-based, with index 0 used to access the size of the array.

The driver will not prevent an array index from being specified, regardless of the type of the selected property. If it is not an array, the device will return an error when attempting to read or write it.

Write Priority

Select the priority used to write to commandable properties (typically, the Present_Value property of output and value-storing objects). The BACnet prioritization system uses priority values from 1 (highest) to 16 (lowest) to arbitrate between multiple devices attempting to write to the same property.

The non-null value with the highest priority assigned to it will be returned when attempting to read the property. Therefore, this setting has no effect on the value being read. Items of the read-only property Priority_Array contain the values currently assigned to each priority level. If all priorities are assigned a null value, Present_Value will return the value of the property Relinquish_Default instead. If the first option (Default) is selected, no priority will be specified when attempting to write to the device, which is effectively the same as priority 16. Devices will ignore this setting if the property does not support write priorities.