From AutomationWiki
Jump to: navigation, search


BACnet is a building automation and control networking protocol developed by ASHRAE. It was designed exclusively to meet the communication needs of building automation and control systems. Typical application areas include:

  1. Heating
  2. Ventilating
  3. Air-conditioning control
  4. Lighting control
  5. Access control
  6. Fire detection systems

BACnet Options[edit]

Five different options for BACnet are given below:

  1. IP: BACnet IP is one among the two forms of BACnet for Ethernet. It is a BACnet for TCP and can run on a non-dedicated Ethernet line. Application includes the IP protocol Use, Controller to controller, Controller to HMI and Some field devices.
  2. Ethernet 802.3: BACnet Ethernet is for dedicated BACnet lines. It is the fastest amongst all and used for Raw Ethernet Packets. It is intended to run at 10 Mbps (millions of bits per second) with 100 Mbps also recently available. It is also likely to be the most expensive in terms of cost per device.
  3. Point to Point: BACnet also defines a dial-up or "point-to-point" protocol called BACnet PTP for use over modems, phone lines or hardwired RS-232 connections.
  4. MS/TP: For devices with lower requirements in terms of speed, BACnet defines the BACnet MS/TP (master-slave/token-passing) network. It is designed to run at speeds of 1 Mbps or less over twisted pair wiring (RS-485). All of these networks are examples of local area networks or LANs.
  5. ARCnet: BACnet ARCNET runs at 2.5 Mbps and used for Controller to controller. Both Ethernet and ARCNET can use a variety of physical media including coaxial cable, twisted pairs and even fiber optic cable.

Each one of the above options occupies a particular place in terms of the price/performance tradeoff. Principally, BACnet messages can be transported by any network technology, in case it becomes cost-effective to do so as FieldServer Technologies has the drivers available for all forms of BACnet. BACnet messages that don’t fit in a single packet use segmentation.

BACnet Objects and Properties[edit]

Data inside a BACnet device is organized as a series of objects. Each object has a type and a set of properties. There will be always at least one object in a device which is used to represent the device itself. The other objects are used for representing the device’s data. Nearly all objects have some commonly used properties. Few of them are mentioned below:

  1. Object Type: Popular Object Types include analog input, analog output, binary input, and binary output.
  2. Instance Number: It is a number that must not be repeated for any other object of the same type.
  3. Name: Speaks for itself.
  4. Present Value: The current value of the object. BACnet has ways of telling us if the present value is valid – it uses a property called ‘Reliability’.

Device object is the first object read after a device is discovered because it has plenty of remarkable information for the client. For instance, the device object has properties which determine whether the device supports COV, whether more than one property can be read in a single message.

BACnet Services[edit]

A service can be considered as a task or action. Reading and Writing data uses some of the BACnet services known collectively as Data Access Service. BAS systems interact with BACnet devices and objects using these services. Mainly the actual service used is hidden from the engineer building or using the BAS.

In Modbus a data sheet is required to identify the data inside a field device whereas in BACnet no datasheet is needed. One can go-online, find out the devices on a network and then interrogate the devices so they report what data objects they contain and what properties each object supports and what the current state of each property is. To match requirements of a project to the capabilities of the devices being installed in BACnet BIBBS is employed. A BIBB is a BACnet Interoperability Building Block.

Changing the Present Value[edit]

All BACnet devices are effectively peers which mean that any device i.e. any BACnet capable entity (device or software application) can write to the writable properties of another device’s objects and this can result in conflicting commands. However, BACnet has a mechanism to resolve the conflict. It differentiates between writable and commandable properties and the conflict resolution is applied only to commandable properties. There is no conflict resolution for writable and non-commandable properties since in this case the last write wins and overwrites any previous writes.


Object instance range: 0-4194303 or 22bits or 0x3FFFFF
Network address range: 0-65535 or 16bits or 0xFFFF