Campbell Scientific CR1000 Measurement and Control System User Manual

Page 179

Advertising
background image

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

Advertising