BACnet: Averaging Object

The Averaging object is described by the BACnet standard as a recording medium of visible value characteristics over a specific time interval.These specific sampled values may take the following forms in the object:

  • Boolean
  • Integer
  • Unsigned
  • Enumerated
  • Real

The following table will present the actual properties and associated datatypes of the Averaging object from the BACnet standard:

Property Datatype
Object_Identifier BACnet Object Identifier
Object_Name Character String
Object_Type BACnet Object Type
Minimum_Value Real
Minimum_Value_Timestamp BACnet Date Time
Average_Value Real
Variance_Value Real
Maximum_Value Real
Maximum_Value_Timestamp BACnet Date Time
Description Character String
Attempted_Samples Unsigned
Valid_Samples Unsigned
Object_Property_Reference BACnet Device Object Property Reference
Window_Interval Unsigned
Window_Samples Unsigned
Profile_Name Character String

The developer should pay particular attention to the following properties of this object:

  • Window_Interval property
  • Window_Samples property
  • Object_Property_Reference property

The Window_Interval property indicates the period of time, usually in seconds which the minimum, maximum, and average values are calculated.

The Window_Samples property represents the number of samples to be taken during the timeperiod within the Window_Interval property. In addition, the Window_Samples must be greater than zero and all implementations should support at least 15 samples. The sample may represent an instant or continuously calculated sample, which will be considered a matter for the developer.

The Object_Property_Reference property identifies the object and property whose value will be sample during the Window_Interval. The referenced object may reside in the device that contains the Averaging object or within other supported devices.

The Averaging object uses a specialized technique referred by the standard as a “sliding window” that maintains a buffer of samples distributed over the specified time interval. At every time interval a new sample is replaces the oldest sample from the buffer.

The buffer maintains an indication for each sample that permits the average calculation and minimum/maximum algorithm to determine the number of valid samples in the buffer.

The following example from the BACnet standard will present the Averaging object structure from an actual automation application. Specifically, this example focuses on the average and maximum electrical usage in kilowatts (KW) on a specific floor of a building:

Property: Object_Identifier = (Averaging, Instance 1)
Property: Object_Name = “FLR 12 DEMAND”
Property: Object_Type = AVERAGING
Property: Minimum_Value = 2.4
Property: Minimum_Value_Timestamp = (16-DEC-1999,13:15:07.32)
Property: Average_Value = 12.7
Property: Maximum_Value = 18.8
Property: Maximum_Value_Timestamp = (16-DEC-1999,13:06:12.19)
Property: Description = “Floor 12 Electrical Demand”
Property: Attempted_Samples = 15
Property: Valid_Samples = 14
Property: Object_Property_Reference = (Analog Input, Instance 12)
Property: Window_Interval = 900
Property: Window_Samples = 15

Written by: Scott Cosby

© Chipkin Automation Systems 2007