In my last post on this subject, I tried to give you a general understanding of what BACnet is. Now, I’m going to continue on this subject and see if I can provide a little more information to help you understand how this all works.
Believe it or not, there are different types of BACnet. I’ll try to explain the differences.
The first one we’ll discuss is Native BACnet. In the building automation world the term “native” means that the device supports that functionality / protocol without the addition of a gateway, translator, or other modules. In other words, the controls in the unit “speak” BACnet as their “native language”. This is pretty straight forward and self explanatory.
The most commonly used version of BACnet is known as MSTP. This is the version that affects most non-native products. It is the most common form of BACnet used to connect field devices to controller, routers, or control applications.
What does MSTP stand for? M= MASTER, S = Slave, TP = Token Passing (not toilet paper). BACnet is a token passing protocol. Each device on the link is considered the “master” when it has the token. If it does not have immediate need to use the token, it is required to pass the token along to the next device. This is the “token passing” part. All devices on the link which do not currently have the token are regarded as slaves, and are expected to listen to any messages the current master may have for it. Because all devices take turns being master, the link is effectively peer to peer. Only master devices can receive the token, and only the device holding the token is allowed to originate a message on the bus. The token is passed from master device to master device using a small message. The token is passed in consecutive order starting with the lowest address. Slave devices on the bus only communicate on the bus when responding to a data request from a master device. Every Master on the network has the job of periodically polling for a new Master. Simply stated, a master is an initiator of a service request and a slave is a device that can only send a response. Based on this behavior, it is easy to see the difference between a Master and a Slave.
Many vendors do not provide a choice between Master and Slave configuration of their field devices. They are all Masters. Slaves cannot discover new devices and hand them a token. Slaves can be discovered in the polling. The advantage of slaves is they conserve bandwidth where as Masters “burn” bandwidth. Manufacturers weigh this one time engineering cost against the huge bandwidth burden using many Masters on a network imposes.
As mentioned earlier, all devices on a BACnet network are essentially peers. This means that any device or software application can write to the writable properties of another device’s objects. This can result in conflicting commands.
BACnet has a way to resolve the conflict. It differentiates between writable and commandable properties and the conflict resolution only applies to the commandable properties. For writable properties, the last write wins and overwrites any previous writes – there is no conflict resolution.
So, which properties are commandable and how does conflict resolution work? The Present Value of AO, BO, and MO are always commandable. The Present Value of AV, BV, MV objects are commandable if the manufacturer implemented them that way. A manufacturer may choose to make any proprietary property commandable or not.
For most of us who are not controls contactors or involved in the BAS side of the system, the implementation of BACnet is under-the-hood. It is invisible to most of us users. We don’t know what services are supported and nor do we know when each service is used. All we can do as service people is to provide the controls contractor a list of points and a sequence of operation so they can then integrate the unit(s) control system into their particular BAS system. Manufacturers do occasionally change some of the points, say from AOs to AIs to AVs or BOs to BVs or BIs but a good controls contractor should be able to discover them. The good thing about a points list is that the objects number, ie: A( )1 or A( )30 will be the same point, only the Present Value is changed. This is done to either protect a service or to allow more access to that service. So with a little trial and error, they should be able to establish the communication they want and control the point they need on any particular piece of equipment.
I will say in closing this post, that I am nowhere near an expert on BACnet. I have been doing a lot of reading and research on this subject to write these posts. In the process, I have learned a lot about this control system and I hope it has helped you also.
One source I found that helped very much and I’ll pass this on to all of you readers: The best free tutorial I know of for BACnet is found at www.bacnet.org.