×
Skip to main content Link Search Menu Expand Document (external link) Right Arrow

Contents

BACnet

Building Automation and Control Networks (“BACnet”) an open data communication protocol developed and maintained by the BACnet Committee. It is an vendor-independent solution used in a variety of industrial applications, with a primary focus on building automation networks. BACnet has an extensive library of documentation and is supported via a range of open-source libraries. The Cloud supports this protocol and the majority of its standard object types listed in Table 1 here.

Device Parameters

For device parameters not covered herein, see Device-Based Tags.

Setting of BACnet network

  • Local address
    TCP/IP address of the target BACnet device; can be used alternatively to Remote device address. Defaults to 0, which is equivalent to 0.0.0.0 and requires a remote address.
  • UDP port
    BACnet devices communicate over the UDP protocol; the Edge server must listen on a specific port reserved for BACnet devices in order to detect them. The default UDP port for many BACnet configurations is 47808.
  • Subnet address
    Subnet mask for the target device’s subnet.
  • TCP timeout (ms)
    Time limit for establishing a client-server connection; defaults to 5000 if not specified. Connection attempt will terminate and issue a server alert if timed out.
  • Enable BBMD
    Check to enable a BACnet Broadcast Management Device (“BBMD”), which is used if the target BACnet device is on a different subnet. In this case, a BBMD must be on the same subnet as the device to serve as a point of communication between it and the Edge server. BBDM is addressed similarly to other devices on the TCP/IP stack:
    • TCP-IP address or host name of the BBMD; defaults to 127.0.0.1 or localhost if the BBMD and the Edge server are the same unit of hardware.
    • TCP port of the BBMD; defaults to 47808.

Remote device address

Eight-digit sequence that uniquely identifies the target device on the network, also known as BACnet Device ID. Usually configured during device or network setup and can be used in lieu of the . If both are supplied, remote address takes preference for device identification.

Tag Parameters

In a BACnet device, different data endpoints are referred to as objects. Each object is uniquely identifiable by its Type and Number. A tag can retrieve data from a single BACnet object.

Type

Type of the BACnet object to source data from. The type determines the tag’s writability as well as the available data types; the following object types are supported:

Object type and abbreviation Writable? Supported data types Common use case
Analog input (AI) × int16, int32, int64, uint16, uint32, float, double (all listed data types are supported as both scalars and arrays) Sensor readings
Analog output (AO) Control signals
Analog value (AV) Setpoints and other configuration parameters
Binary input (BI) × bool (both scalars and arrays) Switch state signals
Binary output (BO) Relay signals
Binary value (BV) Binary control signals
Integer value (IV) int16, int32, int64 (all integer types are supported as both scalars and arrays)
Positive integer value (PIV) uint16, uint32 (all unsigned integer types are supported as both scalars and arrays)
Multi state input (MSI) × int16, int32, int64, uint16, uint32 (all listed data types are supported as both scalars and arrays) Multistate process status signals (for objects that have additional states other than on/off)
Multi state output (MSO) Multistate process control signals (for objects that have additional states other than on/off)
Multi state value (MSV) Multistate process control signals (for objects that have additional states other than on/off)
Notes: object types in italics are not standard BACnet objects. Analog-to-digital data conversion is performed on the device but may require additional transforms, see Configuration Example.

The BACnet implementation in a given device might lack some of the standard object types; however, a BACnet device always contains at least one object of a standard type. Some devices may feature non-standard objects, which the Cloud may not support.

Number

Number of the instance of a given object type to source data from; the type and number combination is what uniquely identifies each object existing in a BACnet device, see Configuration Example below.

Change of Value

Subscribes the tag to notifications on changes in the observed object’s value, if supported by the device. If activated, the Cloud will rely on the device’s internal monitoring of its objects instead of polling the device at a predetermined interval. Thus, tag updates will only be triggered by notifications from the device.

CoV increment

Specifies the minimum threshold of change in monitored object’s value; the BACnet device will not notify the Cloud of changes lesser than the threshold. Thus, changes smaller than the increment will not trigger tag updates. Supported increment value range is object-specific.

Change of value is optional per BACnet specification; thus, a BACnet device might support it for a limited range of its objects or for none at all. Consult the device’s specification and datasheet to clarify whether and which of its objects are CoV-enabled and what the supported increment range is.

Configuration Example

Consider the following device: BASstat, a multi-stage thermostat from Contemporary Controls®; see user manual. The task is to read telemetry data from the remote temperature sensor.

The specification contains a list of the available BACnet objects; the desired object is found on p. 26 and has the following parameters:

Object name Type & Instance Readable/Writable Description Range and Definition
Remote Temperature Sensor AI 3 R Remote Temperature Sensor Reading -999~9999:-99.9~999.9ºC/ºF

The solution is as follows:

  1. Set Type to analog input since the desired object's type is "AI".
  2. Set Data type to any of int16, int32, int64.
  3. Set Number to 3 since this is the desired object's instance.
  4. The object feeds values in the range [-999; 9999], corresponding to actual values of [-99.9; 999.9] degrees. Thus, its output integer value is temperature times 10. To apply the necessary corrections, go to GENERAL, select Multiply numeric transformation as Converter type, then specify a Factor of 0.1.
  5. Set the External data type to Float since the transformation will likely produce fractional numbers; or leave it as Integer if the displayed value needs to be rounded to a whole number.