• data processed into averages, maxima, minima, and so forth are composites
of several measurements. Associated time stamps only reflect the time the
last measurement was made and processing calculations were completed, so
the significance of the exact time a specific sample was measured diminishes.
Applications measuring and storing sample data wherein exact time stamps are
required can be adversely affected by time-stamp skew. Skew can be avoided by
• Making measurements in the scan before time-consuming code.
• Programming the CR1000 such that the time stamp reflects the system time
rather than the scan time. When CallTable() is executed from within the
Scan() / NextScan construct, as is normally done, the time stamp reflects
scan time. By executing the CallTable() instruction outside the Scan() /
NextScan construct, the time stamp will reflect system time instead of scan
time. CRBasic example Time Stamping with System Time
(p. 304) shows the
basic code requirements. The DataTime() instruction is a more recent
introduction that facilitates time stamping with system time. See Data Table
Declarations
(p. 540) and CRBasic Editor Help for more information.
CRBasic Example 63. Time Stamping with System Time
'This program example demonstrates the time stamping of data with system time instead of
'the default use of scan time (time at which a scan started).
'
'Declare Variables
Public value
'Declare data table
DataTable(Test,True,1000)
Sample(1,Value,FP2)
EndTable
SequentialMode
BeginProg
Scan(1,Sec,10,0)
'Delay -- in an operational program, delay may be caused by other code
Delay(1,500,mSec)
'Measure Value -- can be any analog measurement
PanelTemp(Value,0)
'Immediately call SlowSequence to execute CallTable()
TriggerSequence(1,0)
NextScan
'Allow data to be stored 510 ms into the Scan with a s.51 time stamp
SlowSequence
Do
WaitTriggerSequence
CallTable(Test)
Loop
304