Section 7.  Installation 
 
 
overwriting the oldest data) at about the same time.    Approximately 2 
kB of extra data-table space are allocated to minimize the possibility of 
new data overwriting the oldest data in ring memory when datalogger 
support software 
(p. 86) collects the oldest data at the same time new data 
are written.    These extra records are not reported in the Status table and 
are not reported to the support software and so are not collected. 
 
CRBasic example Declaration and Use of a Data Table (p. 143) creates a data table 
named OneMin, stores data once a minute as defined by DataInterval(), and 
retains the most recent records in SRAM.    DataRecordSize entries in the 
DataTableInformation table report allocated memory in terms of number of 
records the tables hold. 
 
DataInterval() Instruction 
DataInterval() instructs the CR800 to both write data records at the specified 
interval and to recognize when a record has been skipped. The interval is 
independent of the Scan() / NextScan interval; however, it must be a multiple of 
the Scan() / NextScan interval. 
Sometimes, usually because of a timing issue, program logic prevents a record 
from being written. If a record is not written, the CR800 recognizes the omission 
as a "lapse" and increments the SkippedRecord counter in the Status table. 
Lapses waste significant memory in the data table and may cause the data table to 
fill sooner than expected. DataInterval() instruction parameter Lapses controls 
the CR800 response to a lapse. See table DataInterval () Lapse Parameter 
Options 
(p. 146) for more information. 
Note Program logic that results in lapses includes scan intervals 
inadequate to the length of the program (skipped scans), the use of 
DataInterval() in event-driven data tables, and logic that directs program 
execution around the CallTable() instruction. 
A data table consists of successive 1 KB data frames. Each data frame contains a 
time stamp, frame number, and one or more records. By default, a time stamp and 
record number are not stored with each record. Rather, the datalogger support 
software data extraction extraction routine uses the frame time stamp and frame 
number to time stamp and number each record as it is stored to computer memory. 
This technique saves comms bandwidth and 16 bytes of CR800 memory per 
record. However, when a record is skipped, or several records are skipped 
contiguously, a lapse occurs, the SkippedRecords status entry is incremented, 
and a 16-byte sub-header with time stamp and record number is inserted into the 
data frame before the next record is written. Consequently, programs that lapse 
frequently waste significant memory. 
If Lapses is set to an argument of 20, the memory allocated for the data table is 
increased by enough memory to accommodate 20 sub-headers (320 bytes). If 
more than 20 lapses occur, the actual number of records that are written to the 
data table before the oldest is overwritten (ring memory) may be less than what 
was specified in the DataTable().