SECTION 8. PROCESSING AND PROGRAM CONTROL EXAMPLES

The following examples are intended to illustrate the use of Processing and Program Control Instructions, flags, dual Final Storage, and the capability to direct the results of Output Processing Instructions to Input Storage.

The specific examples may not be as important as some of the techniques employed, for example:

Directing Output Processing to Input Storage is used in the Running Average and Rainfall Intensity examples (8.1 and 8.2).

Flag tests are used in the Running Average, Interrupt Subroutine, Converting Wind Direction, and Saving Data Prior to Event examples (8.1, 8.5, 8.7 and 8.8).

Control ports and the Loop are illustrated in the AM32 example (8.3).

An algorithm for a down counter is used in the Saving Data Prior to Event example (8.8).

As in Section 7 these examples are not complete programs to be taken verbatim. They need to be altered to fit specific needs.

8.1COMPUTATION OF RUNNING AVERAGE

It is sometimes necessary to compute a running average (i.e., the average covers a fixed number of samples and is continuously updated as new samples are taken). Because the output interval is shorter than the averaging period, Instruction 71 cannot be used; the

Input Location Labels:

1:Panl Temp 2:10smpl av 11:Temp i-9 12:Temp i-8 13:Temp i-7 14:Temp i-6

15:Temp i-5 16:Temp i-4 17:Temp i-3 18:Temp i-2 19:Temp i-1 20:Temp i

algorithm for computing this average must be programmed by the user. The following example demonstrates a program for computing a running average.

In this example, each time a new measurement is made (in this case a thermocouple temperature) an average is computed for the 10 most recent samples. This is done by saving all 10 temperatures in contiguous input locations and using the Spatial Average Instruction (51) to compute the average. The temperatures are stored in locations 11 through

20.Each time the table is executed, the new measurement is stored in location 20 and the average is stored in location 2. The Block Move Instruction (54) is then used to move the temperatures from locations 12 through 20 down by 1 location; the oldest measurement (in location 11) is lost when the temperature from location 12 is written over it.

Where i is current reading, i-1 is previous reading, etc.

*1 Table 1 Programs

01:

10

Sec. Execution Interval

01:

P17

Panel Temperature

01:1 Loc [:Panl Temp]

02:P14 Thermocouple Temp (DIFF)

01:

1

Rep

02:1 2.5 mV slow Range

03:

1

IN Chan

04:1 Type T (Copper-Constantan)

05:1 Ref Temp Loc Panl Temp

06:20 Loc [:Temp i ]

07:

1

Mult

08:

0

Offset

03:

P51

Spatial Average

01:

10

Swath

02:11 First Loc Temp i-9

03:2 Avg Loc [:10smpl av]

8-1