Skip to content

BACnet

BACnet is the standard protocol of building automation: air handling units, fan coils, heat pumps, lighting and fire panels. inSCADA supports BACnet/IP natively — no separate gateway application is involved.

Protocol valueRole
BACnetClient — reads and writes field devices
BACnet/IP ServerServer — publishes inSCADA’s own values as a BACnet device

A BACnet device is made of objects. Each has a type (analog input, binary output, multi-state value, …) and an instance number; together those address the object uniquely within that device.

An object has several properties. The one read and written is almost always Present_Value — property identifier 85.

Both device and object instance numbers are 22-bit: 0 – 4194303. On the device side 4194303 means “unassigned”, so a device instance goes up to 4194302.

The object type is a 10-bit number (0 – 1023). Values above 127 are vendor-specific and legitimate, which is why it is entered as a number rather than picked from a fixed list.

Rather than polling a value, BACnet can notify when it changes: COV (Change of Value). On a point that rarely moves, that cuts both network traffic and device load noticeably.

A BACnet output is written at a priority from 1 to 16, and the highest-priority write wins. 1 is the highest, 16 the lowest.

A BACnet address is not a byte offset, so start address is not used.

The BACnet data model Connection is the local socket; Device the device address and instance; Frame a group of objects; Variable an object identifier and property. Connection the server's own local socket Device the device's address and instance number Frame a group of objects Variable an object identifier and the property to read

inSCADA can browse the BACnet devices and objects on the network, so while defining a variable you pick the object type and instance from a list instead of typing them.