BACnet Pulse Converter Object

The Pulse Converter object is defined by the BACnet standard as a process monitor that represents activity as pulses or counts. It is commonly used for utility and consumption-style measurements where a physical meter produces pulses (or where another object produces an accumulating count).

Typical applications include:

  • Power usage (kWh pulses)
  • Water usage (flow/volume pulses)
  • Natural gas usage (volume pulses)

A Pulse Converter object may represent a physical input. It may also reference the Present_Value of an Accumulator object within the same device (or data model), and convert that accumulating value into a rate or engineering unit representation.

Pulse Converter Object Properties

The table below summarizes the Pulse Converter object properties and their BACnet datatypes. (Note: this is the Pulse Converter object, not the Group object.)

Property Datatype
Object_Identifier BACnet Object Identifier
Object_Name Character String
Object_Type BACnet Object Type
Description Character String
Present_Value Real
Input_Reference BACnet Object Property Reference
Status_Flags BACnet Status Flags
Event_State BACnet Event State
Reliability BACnet Reliability
Out_of_Service Boolean
Units BACnet Engineering Units
Scale_Factor Real
Adjust_Value Real
Count Unsigned
Update_Time BACnet Date Time
Count_Change_Time BACnet Date Time
Count_Before_Change Unsigned
COV_Increment Real
COV_Period Unsigned
Notification_Class Unsigned
Time_Delay Unsigned
High_Limit Real
Low_ Limit Real
Deadband Real
Limit_Enable BACnet Limit Enable
Event_Enable BACnet Event Transition Bits
Acked_Transitions BACnet Event Transition Bits
Notify_Type BACnet Notify Type
Event_Time_Stamps BACnet Array (3) of BACnet Time Stamp
Profile_Name Character String

Key Behavior: Adjust_Value and Count

One property that matters in real projects is Adjust_Value. If a device implements this correctly, writing to Adjust_Value changes the reported Present_Value. It also updates the internal Count tracking so the object stays consistent after a correction.

Integrators typically use this when a meter is replaced, when a known offset must be applied, or when historical counts must be reconciled after commissioning.

Example: Utility Meter Pulse Converter

The following example shows a Pulse Converter object instance that references an Accumulator and reports a consumption-related value with engineering units. The formatting below is simplified for readability.

Object_Identifier     = (Pulse Converter, Instance 1)
Object_Name           = "Meter 5"
Object_Type           = PULSE_CONVERTER
Description           = ""
Present_Value         = 125.0
Input_Reference       = ((Accumulator, Instance 1), Present_Value)
Status_Flags          = {FALSE, FALSE, FALSE, FALSE}
Event_State           = NORMAL
Out_Of_Service        = FALSE
Units                 = LITERS_PER_HOUR
Scale_Factor          = 0.5
Adjust_Value          = 500.0
Count                 = 250
Update_Time           = (10-JUL-01, 11:40:21.0)
Count_Change_Time     = (10-JUL-01, 11:30:01.0)
Count_Before_Change   = 523
COV_Increment         = 10.0
COV_Period            = 3600
Notification_Class    = 5
Time_Delay            = 0
High_Limit            = 1000.0
Low_Limit             = 0.0
Deadband              = 0.0
Limit_Enable          = {FALSE, TRUE}
Event_Enable          = {TRUE, FALSE, TRUE}
Acked_Transitions     = {TRUE, TRUE, TRUE}
Notify_Type           = ALARM
Event_Time_Stamps     = ((12-JUL-01, 18:50:21.2), (*-*-*,*:*:*.*), (12-JUL-01, 19:01:34.0))
    

FAQ: BACnet Pulse Converter Object

What is the purpose of a BACnet Pulse Converter object?

The Pulse Converter object represents pulse- or count-based measurements and converts them into engineering values. It is commonly used for utility metering such as water, gas, or energy usage.

What is the difference between a Pulse Converter and an Accumulator object?

An Accumulator object stores a continuously increasing count value, while a Pulse Converter can reference an Accumulator and apply scaling, adjustment, and unit conversion to produce a meaningful Present_Value.

What does the Adjust_Value property do?

Writing to the Adjust_Value property adjusts the Present_Value and also updates the internal Count. This is typically used for calibration, rollover correct

Contact Us

Contact us via phone (+1 866-383-1657) or leave a detailed message below for sales, support, or any other needs

*Required Field
*Required Field
I'd like to receive the newsletter. *Check email for confirmation.
*Required Field
8:00am - 12:00pm 12:00pm - 5:00pm
Message Sent Successfully