1 scan() / nextscan – Campbell Scientific CR3000 Micrologger User Manual
Page 141

Section 7. Installation
141
Table 19. Program Timing Instructions
Instructions General
Guidelines Syntax
Form
SubScan / NextSubScan
Use when measurements or
processing must run at faster
frequencies than that of the
main program.
BeginProg
Scan()
'.
'.
'.
SubScan()
'.
'.
'.
NextSubScan
NextScan
EndProg
7.7.3.7.1 Scan() / NextScan
Simple CR3000 programs are often built entirely within a single Scan() /
NextScan structure, with only variable and data-table declarations outside the
Scan() / NextScan structure. In these simple programs, Scan() / NextScan creates
an infinite loop, each periodic pass through the loop being synchronized to the
CR3000 clock. Scan() parameters allow modification of the period in 10- ms
increments. As shown in CRBasic example BeginProg / Scan() / NextScan /
EndProg Syntax (p. 141), aside from declarations, the CRBasic program may be
relatively short.
CRBasic Example 15. BeginProg / Scan() / NextScan / EndProg Syntax
BeginProg
Scan
(1,Sec,3,0)
PanelTemp
(RefTemp, 250)
TCDiff
(TC(),6,mV20C,1,...)
CallTable
Temp
NextScan
EndProg
Scan() determines how frequently instructions in the program are executed, as
shown in CRBasic example Scan Syntax
(p. 141):
CRBasic Example 16. Scan Syntax
'Scan(Interval, Units, BufferSize, Count)
Scan
(1,Sec,3,0)
·
·
·
ExitScan
Scan() has four parameters:
•
Interval
— the interval between scans.
•
Units
— the time unit for the interval. Interval is 10 ms <= Interval <= 1 day.
•
BufferSize
— the size (number of scans) of a buffer in RAM that holds the
raw results of measurements. When running in Pipeline mode, using a buffer