beautypg.com

Campbell Scientific CR800 and CR850 Measurement and Control Systems User Manual

Page 304

background image

Section 8. Operation

304 

 

 

R  = Timing resolution of the TimerIO() measurement =  

P  = Period of input signal (seconds).  For example, P = 1 / 1000 Hz = 
0.001 s 

E = Number of rising edges per scan or 1, whichever is greater. 

Table 65. Example. E for a 10 Hz input signal

Scan

Rising Edge / Scan

E

5.0 50 50

0.5 5 5

0.05 0.5 1

TimerIO() instruction measures frequencies of ≤ 1 kHz with higher frequency
resolution over short (sub-second) intervals. In contrast, sub-second frequency
measurement with PulseCount() produce measurements of lower resolution.
Consider a 1-kHz input. Table Frequency Resolution Comparison

(p. 304)

lists

frequency resolution to be expected for a 1-kHz signal measured by TimerIO()
and PulseCount() at 0.5-s and 5.0-s scan intervals.

Increasing a measurement interval from 1 second to 10 seconds, either by
increasing the scan interval (when using PulseCount()) or by averaging (when
using PulseCount() or TimerIO()), improves the resulting frequency resolution
from 1 Hz to 0.1 Hz. Averaging can be accomplished by the Average(),
AvgRun(), and AvgSpa() instructions. Also, PulseCount() has the option of
entering a number greater than 1 in the

POption

parameter. Doing so enters an

averaging interval in milliseconds for a direct running average computation.
However, use caution when averaging, Averaging of any measurement reduces
the certainty that the result truly represents a real aspect of the phenomenon being
measured.

Table 66. Frequency Resolution Comparison

0.5 s Scan

5.0 s Scan

PulseCount(),

POption

=

1

FR = 2 Hz

FR = 0.2 Hz

TimerIO(),

Function

=

2

FR = 0.0011 Hz

FR = 0.00011 Hz

 

Q — When more than one pulse is in a scan interval, what does TimerIO() return
when configured to return a frequency? Does it average the measured periods and
compute the frequency from that (f = 1/T)? For example:

Scan

(50,mSec,10,0)

TimerIO

(WindSpd(),11111111,00022000,60,Sec)

A — In the background, a 32-bit timer counter is saved each time the signal
transitions as programmed (rising or falling). This counter is running at a fixed
high frequency. A count is also incremented for each transition. When the
TimerIO() instruction executes, it uses the difference of time between the edge
prior to the last execution and the edge prior to this execution as the time
difference. The number of transitions that occur between these two times divided
by the time difference gives the calculated frequency. For multiple edges
occurring between execution intervals, this calculation does assume that the