Campbell Scientific CR23X Micrologger User Manual
Page 191

SECTION 12. PROGRAM CONTROL INSTRUCTIONS
12-3
locations: one for the number of samples and
one for the running total. Each time through the
loop the sample counter is incremented and the
value in the referenced input location is added
to the total. If the input location is indexed, the
values from all input locations are added to the
same total.
Note that if the Output Flag is set prior to
entering the loop in the above example, 10
values will be output. The first will be the
average of all the readings in locations 1-10
since the previous output. Because the
Intermediate locations are zeroed each time an
output occurs, the next nine values will be the
current values (samples at the time of output) of
locations 2-10.
Loops can be nested. Indexed locations within
nested loops are indexed to the inner most loop
that they are within. The maximum nesting
level in the CR23X is 11 deep. This applies to If
Then/Else comparisons and Loops or any
combination thereof. An If Then/Else
comparison which uses the Else Instruction (94)
counts as being nested 2 deep.
PARAM.
DATA
NUMBER
TYPE
DESCRIPTION
01:
4
Delay
02:
4
Iteration count
The following example involves the use of the
Loop Instruction, without a delay, to perform a
block data transformation.
The user wants 1 hour averages of the vapor
pressure calculated from the wet- and dry-bulb
temperatures of 5 psychrometers. One
pressure transducer measurement is also
available for use in the vapor pressure
calculation.
1.
The input locations are assigned as follows:
a) pressure
Location 10
b) dry-bulb temperatures
Location 11-15
c)
wet-bulb temperatures
Location 16-20
d) calculated vapor pressure
Location 21-25
(Vapor pressure is written over the
wet-bulb temperatures.)
2.
The program flow is as follows:
a) Enter the Loop Instruction (#87) with
Delay=0 and iteration count=5.
b) Calculate the vapor pressure with
Instruction 57 using a normal location
entry of 10 for atmospheric pressure
and Indexed locations of 11, 16 and 16
for the dry-bulb, wet-bulb, and
calculated vapor pressure, respectively.
c)
End loop with Instruction 95.
d) Use the If Time Instruction (#92) to set
the Output Flag every hour.
e) Use the Average Instruction (#71) with 5
repetitions starting at input location 21 to
average the vapor pressure over the hour.
The actual keyboard entries for the examples
are shown below with the first example
Instruction location equal to 10. The Input
Instructions to make the pressure and
temperature measurements are assumed.
TABLE 12-3. Loop Example: Block Data
Transform
1: Beginning of Loop (P87)
1:
0
Delay
2:
5
Loop Count
2: Wet/Dry Bulb Temp to VP (P57)
1:
10
Pressure Loc [ Pressure ]
2:
11--
Dry Bulb Loc [ DryBulb1 ]
3:
16--
Wet Bulb Loc [ WetBulb1 ]
4:
21--
Loc [ VP1 ]
3: End (P95)
4: If time is (P92)
1:
0
Minutes (Seconds --) into a
2:
60
Interval (same units as above)
3:
10
Set Output Flag High (Flag 0)
5: Average (P71)
1:
5
Reps
2:
21
Loc [ VP1 ]
The Loop with a delay may be used so that only
those instructions within the Loop are executed
while certain conditions are met. As a simple
example, suppose it is desired to execute one
set of instructions from midnight until 6 AM,
another set between 6 AM and 4 PM, and a
third set between 4 PM and midnight. Between
6 AM and 4 PM, samples are desired every 10