Campbell Scientific CR1000 Measurement and Control System User Manual
Page 179

Section 7. Installation
179
Table 26. SDI12Recorder() Commands
SDIRecorder() Instruction
SDICommand Entry
Actions Internal to
CR1000 and Sensor
2
Use variable replacement in program to use same instance of SDI12Recorder() as issued aCV!
(see the CRBasic example Using SDI12Recorder() C Command
).
Alternate Start Measurement Command (Cv)
The SDIRecorder() aCv (not C!) command facilitates using the SDI-12 standard
Start Concurrent command (aCv!) without the back-to-back measurement
sequence normal to the CR1000 implementation of aCv!.
Consider an application wherein four SDI-12 temperature sensors need to be near-
simultaneously measured at a 5 minute interval within a program that scans every
5 seconds. The sensors requires 95 seconds to respond with data after a
measurement request. Complicating the application is the need for minimum
power usage, so the sensors must power down after each measurement.
This application provides a focal point for considering several measurement
strategies. The simplest measurement is to issue a M! measurement command to
each sensor as follows:
Public
BatteryVolt
Public
Temp1, Temp2, Temp3, Temp4
BeginProg
Scan
(5,Sec,0,0)
'Non-SDI-12 measurements here
SDI12Recorder
(Temp1,1,0,"M!",1.0,0)
SDI12Recorder
(Temp2,1,1,"M!",1.0,0)
SDI12Recorder
(Temp3,1,2,"M!",1.0,0)
SDI12Recorder
(Temp4,1,3,"M!",1.0,0)
NextScan
EndProg
However, the code sequence has three problems:
1. It does not allow measurement of non-SDI-12 sensors at the required
frequency.
2. It does not achieve required 5-minute sample rate because each
SDI12Recorder() instruction will take about 95 s to complete before the next
SDI12Recorder() instruction begins, resulting is a real scan rate of about 6.5
minutes.
3. There is a 95-second time skew between each sensor measurements.
Problem 1 can be remedied by putting the SDI-12 measurements in a
SlowSequence scan. Doing so allows the SDI-12 routine to run its course
without affecting measurement of other sensors, as follows:
Public
BatteryVolt
Public
Temp(4)
BeginProg