beautypg.com

Campbell Scientific CR800 and CR850 Measurement and Control Systems User Manual

Page 180

background image

Section 7. Installation

180 

 

 

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


Scan

(5,Sec,0,0)

'Non-SDI-12 measurements here

NextScan


SlowSequence

Scan

(5,Min,0,0)

SDI12Recorder

(Temp(1),1,0,"M!",1.0,0)

SDI12Recorder

(Temp(2),1,1,"M!",1.0,0)