CR200/CR200X Series Dataloggers - Campbell Scientific
CR200/CR200X Series Dataloggers - Campbell Scientific
CR200/CR200X Series Dataloggers - Campbell Scientific
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Section 11. Programming Resource Library<br />
CRBASIC EXAMPLE 17.<br />
Examples<br />
‘Pin Enabled Radio Program Example Program for CR1000<br />
'Pakbus Address = 2<br />
CRBASIC EXAMPLE. Radio Power Minimization Program<br />
Public Rx(6), Tx, Result<br />
Alias Rx(1)=VWC_1: Alias Rx(2)=VWC_2 ‘Alias used to give meaningful names to<br />
Alias Rx(3)=VWC_3: Alias Rx(4)=VWC_4 ‘data received from remote datalogger<br />
Alias Rx(5)=Tsoil_C: Alias Rx(6)=Batt_206_V<br />
Alias Tx=Batt_CR1K_V<br />
DataTable (Test,1,-1)<br />
DataInterval (0,60,Min,10)<br />
Average (6,Rx(),FP2,False)<br />
Minimum (1,Batt_CR1K_V,FP2,False,False)<br />
EndTable<br />
BeginProg<br />
Scan (15,Sec,0,0)<br />
Battery (Batt_CR1K_V)<br />
CallTable Test<br />
NextScan<br />
'Send Network command every 5 minutes<br />
SlowSequence<br />
Scan (5,Min,0,0)<br />
Network (Result,1,3,15,60,0,6,Rx(),1,Tx)<br />
NextScan<br />
EndProg<br />
------------------------------------------------------------------------------------------<br />
'Pin Enabled Radio Example for CR206X<br />
'Pakbus address 3<br />
Public Time, TxData(6)<br />
Public Period_uS(4), Response, Rx<br />
Alias TxData(1)=VWC_1: Alias TxData(2)=VWC_2: Alias TxData(3)=VWC_3<br />
Alias TxData(4)=VWC_4: Alias TxData(5)=T109_C: Alias TxData(6)=Batt_Volt<br />
Alias Rx = CR1K_Batt_Volt<br />
Dim LoopCnt<br />
Units Batt_Volt=Volts<br />
Units Period_uS()=uSec<br />
Units T109_C=Deg C<br />
DataTable(VWC_pin,True,-1)<br />
DataInterval(0,60,Min)<br />
Average(5,TxData(),False)<br />
Minimum (1,Batt_Volt,False,0)<br />
EndTable<br />
BeginProg<br />
SetStatus (RfPwrMode,RFpinEn) 'Configure <strong>CR200</strong>(X) power mode to pin enabled<br />
Scan(1,sec)<br />
If IfTime (0,15,Min) Then 'Take readings every 15 minutes<br />
Battery(Batt_Volt)<br />
Therm109(T109_C,1,5,1,1.0,0.0)<br />
SWBatt (1 ) 'Power CS625 sensors up<br />
PeriodAvg(Period_uS(1),1,0,100,10,1,1,0)<br />
PeriodAvg(Period_uS(2),2,0,100,10,1,1,0)<br />
PeriodAvg(Period_uS(3),3,0,100,10,2,1,0)<br />
PeriodAvg(Period_uS(4),4,0,100,10,2,1,0)<br />
SWBatt (0) 'Power CS625 sensors down<br />
For LoopCnt = 1 To 4 'convert raw values to volumetric water content<br />
TxData(LoopCnt)=-0.0663-0.0063*Period_uS(LoopCnt)+0.0007*Period_uS(<br />
Next LoopCnt<br />
EndIf<br />
Time = TimeUntilTransmit(1) 'copy countdown time to public variable<br />
If Time = 0 Then 'when countdown reaches zero power radio and transmit<br />
SendGetData (Response,Rx,TxData(),1,2,2,00000)<br />
EndIf<br />
CallTable(VWC_Pin)<br />
NextScan<br />
EndProg<br />
111