beautypg.com

Campbell Scientific CR3000 Micrologger User Manual

Page 184

background image

Section 7. Installation

184 

 

 

Table 28. SDI12Recorder() Commands

SDIRecorder() Instruction

SDICommand Entry

Actions Internal to

CR3000 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 CR3000 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