What is the best way to use a pulse meter with Niagara?

If you are here, you probably have an electricity, gas, or water meter that gives you a pulse output and you are wondering how to use that effectively. This quick guide should give you what we believe to be the easier and most effective solution.

I need to read my meter pulse first...

Your meter doesn't give you a counter, just a contact pulsing open and closed every "x" amount of kW/h, m3/h, l/h etc.

So the first thing to do is to get a device reading such signal so that your Niagara station can use it.

You will need a digital input for that. A normal digital input can read when the contact is opened or closed and the pulse can be used into a "Counter" block (palette "kitContol - util") to count the amount of times the contact is opened and closed.


There are 2 possible issues with this solution:

  • The IO module could temporary go offline while the input is changing and your Niagara device might be losing pulses to count
  • The pulse might be faster than the digital input or the rate at which the input arrives to the Niagara device over the network, losing pulses or not being able to read properly at all

For this reason, some IO devices have digital inputs that can count pulses internally at high frequency, so they are not affected by the speed of the pulse signal and they store temporarily the count locally so the counted value instead of each individual pulse can be transferred across to the Niagara device without missing any pulse in between communication events, even in case of short time offline instances.


Check your IO device against such capability and how fast the pulse can be read.


Ok, I have my pulse counting value. How do I best manage that.

Your Niagara Workbench comes by default also with a module and palette called "VykonPro".

This contains a lot of useful components, including the one we are going to use for this guide.

If you are using a Niagara enabled controller like a Jace, MAC36NL or EDGE10, make sure you install the "VykonPro" module using the "Platform - Software Manager" section.

The module we are going to use is called "BlockDemandCalc" and you can find it within the "Energy" folder of the palette


This is how we added it to our wire sheet, connecting also 2 boolean points to the monthly and total counter resets


This is what you are going to see when double clicking the component and viewing its property sheet


The counter is very useful as it takes the "Current Pulse Count", converts it appropriately and adds to a local counting value all the pulses counted by your strategy or directly by your IO module. If the counter input resets to "0", the local counter will be maintaining its counters healthy and will keep counting all the new data without losing your valuable Energy / Volumetric Flow values.

I am going to take you through the configuration so any doubt should be cleared out


Change Unit of Measure

As with any other Niagara component, you can use the Facets to change your U.M.


You can select for example m3/h or l/h from the "volumetric flow" menu


Tune your pulse


First, configure the scaling (in this example, "Kwh Per Pulse"). For example, with a meter providing 1000 pulses for every kW/h, you would configure this value to 0.001.

"Check Frequency" and "Max Pulse Frequency" are used in case you want to bypass large jumps in the counter readings. You can leave this function disabled. If enabled, it will disregard counting if the input changes faster than "Max Pulse Frequency". This could be useful in case you get false "zeroes" and back to high count numbers instantaneously when there is an offline or similar situations for example. The sudden large increase would be determined as a high frequency count and disregarded by this function.

"Meter Rollover" should be configured as per specs of the actual counter. If you are using a digital input counter in 16 bits, 65535 is most likely your value, for 32 bits long you can set it 2147483647, 32 bit float even higher... After trying it out, I noticed that even exceeding this number doesn't cause any change on the block behavior really and it keeps counting.


Peak or off peak?

The block allows to get a total and separate counters for "Peak" and "Off Peak" times.

The counter will allocate the right counting based on the value assigned to the boolean input "Peak Mode"


Energy / Volumetric flow readings

The block gives a few information on this. Let's stick with the example in Energy (kW/h).

The block returns mainly 3 sections of Energy data:

  • The total kW/h (with Off Peak and Peak totals). This can only be reset using the full Reset command (we will see later on the "Actions" section)
  • The total kW/h of the month (with Off Peak and Peak totals). This is simply another sub counter that has got its own reset command called "Monthly Reset" (also this will be discussed later on the "Actions" section)
  • The last 5, 15 and 30 minutes kW/h figures. These are automatically provided and counted according to the current time


Power / Volume readings

Maybe this part is not as useful, but you can determine the instantaneous power based on the frequency of the counter increment.

This will give essentially 2 main information (I will use the power in kW as per example):

  • Starting from the bottom, you can see the last 5, 15 and 30 minutes peak power consumption in kW
  • Based on the setting of "Peak Kw Interval", you can see in detail the maximum power in kW and the timestamp of such peak, with also the same information separated between Peak and Off Peak times


Block actions

The block allows the use of some actions by right clicking on it and select the menu "Actions"


  • Preset Kwh. This allows to set each individual total and monthly total counter manually, so any additional counting input will be added to this new pre-set value
  • Preset kW. This allows to pre-set the peak kW figures (less important)
  • Monthly Reset. This resets the cumulative counters of Energy / Volumetric Flow of only the secondary monthly figures. Usually this will be connected to a strategy giving an automated pulse each first day of the month
  • Reset. This resets ALL the cumulative counters of Energy / Volumetric Flow, both the total and the monthly figures. Usually this is only triggered by a voluntary action using a button on the graphic or by manual action call by the engineer


Remember actions can be displayed on a graphic page

I know this might sound repetitive, but the actions available for this component can be displayed directly on a graphical page.

For example, the preset of the kWh cannot be connected to a Numeric/Enumeric/String/Boolean point, so the only way to access such functionality is to either right click on the component, or trigger the action on the graphic.

Drag the component on a PX graphical page, and on the "Make Widget" wizard select "Actions" and then the "Preset Kwh" action


This creates a button that opens the preset pop up when pressed on the PX page