Glossary
BACnet terms are explained here in plain words for an integrator. BACnet in ten minutes puts the most important ones together.
BACnet terms
Section titled “BACnet terms”APDU, NPDU, BVLL. The layers of a BACnet message, outermost last. The APDU (application layer) carries the service, such as a ReadProperty request. The NPDU (network layer) carries the routing information between BACnet networks. The BVLL (BACnet virtual link layer) wraps the message for BACnet/IP, BACnet/IPv6 and BACnet/SC.
Alarm and event. A transition of an object into or out of an abnormal state, such as a temperature above its high limit or a fault. The device sends an event notification to the recipients in a Notification Class object, which also says which transitions an operator must acknowledge.
BACnet/IP. The data link that carries BACnet in UDP datagrams on an IP network, normally on UDP port 47808 (0xBAC0).
BACnet/SC (Secure Connect). The data link that carries BACnet over TLS 1.3 WebSocket connections. Nodes connect to a hub, and may also connect to each other directly. See BACnet/SC.
BBMD (BACnet/IP Broadcast Management Device). A BACnet/IP device that forwards broadcasts, such as Who-Is, to the BBMDs on other IP subnets, which IP routers would otherwise block. Its list of peer BBMDs is the broadcast distribution table (BDT). See BBMD and foreign devices.
BIBB (BACnet Interoperability Building Block). A named piece of functionality, such as DS-RP-B (answering ReadProperty). A device profile is a set of BIBBs.
BTL (BACnet Testing Laboratories). The organisation that tests BACnet products and lists the ones that pass.
Changes_Pending. A Network Port property that reads TRUE while a value written to the port is held, not
yet in use. A ReinitializeDevice, or BACnetStack_ActivateNetworkPortPendingChanges() from your code, activates
it. See Network Port objects.
Commandable object, priority array. An output or value object that several clients can write at different priorities, from 1 (highest) to 16. The priority array holds one value per priority, and the object uses the highest-priority value that is set; with none set it uses Relinquish_Default.
Confirmed and unconfirmed services. A confirmed service, such as ReadProperty, expects an answer, and the sender retries it if none comes. An unconfirmed service, such as Who-Is, does not.
COV (change of value). A subscription a client makes so that the device tells it when a property changes, instead of the client polling. See COV, alarms and events, and trend logs.
Data link. The transport that carries BACnet messages between neighbouring devices: BACnet/IP, BACnet/IPv6, MS/TP or BACnet/SC with this stack.
Device. One BACnet product on the network. Every device has exactly one Device object.
Device instance. The number that identifies a device on the whole site, 0 to 4194302. It is the instance of the device’s Device object.
Device profile. A standard description of a kind of device, such as B-ASC (application specific controller) or B-SS (smart sensor), defined as the BIBBs it must support.
DeviceCommunicationControl. A service that tells a device to stop, or limit, its communication for a time. See DeviceCommunicationControl.
Foreign device. A BACnet/IP device on a subnet with no BBMD of its own, which registers with a BBMD elsewhere to receive the site’s broadcasts. The registration lasts for a time-to-live and must be renewed.
Hub, node (BACnet/SC). A BACnet/SC network has a hub that relays messages between the nodes connected to it, and optionally a failover hub. Every device is a node; a device can also provide the hub function.
I-Am, Who-Is. Who-Is asks devices to identify themselves, usually by broadcast. Each device that matches answers with I-Am, giving its device instance and how to reach it.
I-Have, Who-Has. Who-Has asks which device has an object with a given name or identifier. A device that has it answers with I-Have.
Instance. The number that identifies an object among the objects of its type in a device, 0 to 4194302.
Invoke ID. A number from 0 to 255 that a device puts on each confirmed request, so it can match the answer to the request.
MAC address. A device’s address on its data link: six bytes on BACnet/IP (IP address and UDP port), a three-byte virtual MAC (VMAC) on BACnet/IPv6, one byte on MS/TP, and a six-byte VMAC on BACnet/SC.
MS/TP (multidrop serial bus/token passing). The data link that carries BACnet on an RS-485 serial bus. Devices take turns to send by passing a token. Addresses 0 to 127 can hold the token.
Network number. The number that identifies one BACnet network on a site, 1 to 65534. Routers use it to forward messages between networks.
Network Port object. The object that describes one data-link connection of a device: its network type, network number and the settings of that data link. See Network Port objects.
Notification Class. An object that lists who receives the event notifications of the objects that refer to it, and when.
Object. One modelled thing in a device, such as an analog input, a binary output, a schedule or the device itself. It has a type and an instance. Objects and properties has a page for each type.
Object identifier. An object’s type and instance together, such as Analog Input 1.
PICS (protocol implementation conformance statement). A document a vendor publishes that lists the objects, properties, services and BIBBs a product supports.
Present_Value. The property that holds an object’s current value: the temperature of an analog input, the state of a binary output.
Property. One named value of an object, such as Object_Name, Present_Value or Units. Each property has a number, its property identifier.
Protocol revision. The edition of BACnet a device implements, reported in its Protocol_Revision property.
ReadProperty, ReadPropertyMultiple. The services that read one property, or many properties of many objects in one request.
ReinitializeDevice. A service that asks a device to restart, or to activate pending changes. See ReinitializeDevice.
Router. A device that joins two or more BACnet networks and forwards messages between them by network number. A virtual router joins a device’s virtual networks to its real one.
Segmentation. Splitting a message too large for one frame into several segments.
Service. A request or reply that BACnet defines, such as ReadProperty or Who-Is.
Trend log. An object that records the values of a property over time.
Vendor identifier. The number ASHRAE assigns to each BACnet vendor, which its devices report in Vendor_Identifier.
Virtual network, virtual device. A network that exists only inside a gateway, holding devices that the gateway presents on behalf of equipment behind it. See Virtual devices and gateways.
WriteProperty, WritePropertyMultiple. The services that write one property, or many.
BACnet/SC terms
Section titled “BACnet/SC terms”These terms are used in the BACnet/SC chapter.
Annex AB. The annex of ANSI/ASHRAE 135 that defines BACnet/SC.
BVLC (BACnet virtual link control). The messages of the BACnet virtual link layer. On BACnet/SC they frame every message on a connection, and include Connect-Request, Heartbeat-Request and the encapsulated NPDU.
CSR (certificate signing request). A PKCS#10 request that a device generates with a new key pair and sends to a certificate authority, which returns a signed operational certificate.
Device UUID. A 16-byte identifier (RFC 4122) that a BACnet/SC device keeps for its lifetime. It identifies the device in Connect-Request messages.
Direct connect. An optional BACnet/SC connection from one node straight to another, without the hub.
Hub connector, hub function. The hub connector is the client role in a node that connects out to the primary or failover hub. The hub function is the server role that accepts node connections and relays messages between them.
Issuer certificate. A certificate authority’s certificate in the device’s chain of trust. A BACnet/SC Network Port references two of them.
mTLS (mutual TLS). A TLS connection in which both ends present a certificate and check the other’s. BACnet/SC requires it.
Operational certificate. The device’s own X.509 certificate, which it presents when it makes or accepts a BACnet/SC connection. Its private key never leaves the device.
VMAC (virtual MAC address). The six-byte address of a node on a BACnet/SC network. It plays the part a MAC address plays on other data links.
CAS BACnet Stack terms
Section titled “CAS BACnet Stack terms”Callback. A function in your application that the stack calls, such as the one that returns a property’s
value. You register each one with a BACnetStack_RegisterCallback* function.
Connection string. The bytes that address a peer on a data link in the message callbacks: six bytes for BACnet/IP, 18 for BACnet/IPv6 (IPv6 address and UDP port), one for MS/TP, the WebSocket URI for BACnet/SC. See Data links overview.
Customer interface. The BACnetStack_* functions in CASBACnetStackDLL.h, documented in the API
Reference.
Debug message callback. The callback that receives the stack’s explanations of failures, in a build with
STACK_OPTION_API_DEBUG_LOGGING. See Debug logging.
Hook. A callback the stack calls when a message arrives that your application asked about, such as the answer to a request it sent.
networkPortInstance. The instance of the Network Port object a message belongs to, passed in the send and receive callbacks.
Prebuilt library. The DLL, shared library or static library in a release package, built with
STACK_OPTION_TARGET_FULL (every object type, service and data link; the NoSC package leaves out BACnet/SC).
STACK_OPTION_*. The compile-time options that choose which objects, services and data links a build contains. See Configuration presets.
Tick. BACnetStack_Tick(), the function your main loop calls repeatedly. The stack processes incoming
messages, timers and retries only inside it.