How to de-bounce a noisy sensor signal.

Issue

Some sensors such as the SCR110-H CO2 produce a noisy signal even when wired according to the documented instructions.

The following is a trend chart of the unfiltered raw signal from the sensor.

Product Line

TAC Vista, Andover Continuum, SmartStruxure Solution

Environment

Automation Server

Continuum controllers

TAC Xenta

Cause

Noisy signal is typically caused by common ground wiring of AC power.

Resolution

SOLUTION #1

  • Signal noise can usually be eliminated by using an isolated transformer to power the sensor separately as opposed to using a common transformer that powers up several pieces of equipment.

SOLUTION #2

  • For sensors that support  AC and DC input voltage, signal noise can usually be eliminated by using DC instead of AC power source to power the sensor.

SOLUTION #3

  • Implement a Slew Rate to filter out the noise. As of version 1.7.1, StruxureWare Building Operation does not have a built-in slew rate functionality. Nevertheless, a custom slew rate can be implemented using Script programming.
  • See HowToDebounceANoisySensorSignal.pdf

SOLUTION #4

  • Add a filter (FILT) in a Function Block program after the signal input

Description: The function block is a discrete time first order software filter. The filter time constant is specified in seconds with the Time Const parameter. The initial block output value is zero.

The filter algorithm is

y(k) = y(k-1) +1/1+T/h(u(k)-y(k-1))

where y(k) and u(k) are the filtered and unfiltered values at time k, respectively,h is the sampling interval (i.e. the application program cycle time), and T is the filter time constant. If the time constant is less than or equal to zero, no filtering is done. To obtain a good filter function, the time constant should be set significantly greater than the application program cycle time. This filter algorithm is based on a straightforward backward difference approximation of the continuous time derivative operator.