Campbell HFP01SC Instruction Manual - page 14
Model HFP01SC Self-Calibrating Soil Heat Flux Plate
Example 1. Sample CR5000 Program Using a Differential Measurement Instruction
'CR5000 Series Datalogger
Const OUTPUT_INTERVAL = 30
'Online mean output interval in minutes.
Const CAL_INTERVAL = 1440
'HFP01SC insitu calibration interval (minutes).
Const END_CAL = OUTPUT_INTERVAL-1 'End HFP01SC insitu calibration one minute before the next Output.
Const HFP01SC_CAL_1 = 15
'Unique multiplier for HFP01SC #1 (1000/sensitivity).
Const HFP01SC_CAL_2 = 15
'Unique multiplier for HFP01SC #2 (1000/sensitivity).
Const HFP01SC_CAL_3 = 15
'Unique multiplier for HFP01SC #3 (1000/sensitivity).
Const HFP01SC_CAL_4 = 15
'Unique multiplier for HFP01SC #4 (1000/sensitivity).
'*** Variables ***
Public shf(4)
Alias shf(1) = hfp01sc_1
Alias shf(2) = hfp01sc_2
Alias shf(3) = hfp01sc_3
Alias shf(4) = hfp01sc_4
Units shf = W/m^2
Public shf_cal(4)
Units shf_cal = W/(m^2 mV)
'HFP01SC calibration variables.
Dim shf_mV(4)
Dim shf_mV_run(4)
Dim shf_mV_0(4)
Dim shf_mV_180(4)
Dim shf_mV_end(4)
Dim V_Rf(4)
Dim V_Rf_run(4)
Dim V_Rf_180(4)
Dim shf_cal_on As Boolean
Dim sw12_state As Boolean
'State of the switched 12Vdc port.
Dim j
DataTable (mean,TRUE,100)
DataInterval (0,OUTPUT_INTERVAL,Min,10)
Average (4,hfp01sc_1,IEEE4,shf_cal_on)
Sample (4,shf_cal(1),IEEE4)
EndTable
Sub hfp01sc_cal
'Begin HFP01SC calibration on a fixed interval.
If ( IfTime (1,CAL_INTERVAL,Min) ) Then
shf_cal_on = TRUE
Move (shf_mV_0(1),4,shf_mV_run(1),4)
sw12_state = TRUE
EndIf
If ( IfTime (4,CAL_INTERVAL,Min) ) Then
Move (shf_mV_180(1),4,shf_mV_run(1),4)
Move (V_Rf_180(1),4,V_Rf_run(1),4)
sw12_state = FALSE
EndIf
If ( IfTime (END_CAL,CAL_INTERVAL,Min) ) Then
Move (shf_mV_end(1),4,shf_mV_run(1),4)
'Compute new HFP01SC calibration factors.
For j = 1 to 4
shf_cal(j)
=
(V_Rf_180(j)*V_Rf_180(j)*128.7)/ABS
(((shf_mV_0(j)+shf_mV_end(j))/2)-shf_mV_180(j))
Next j
shf_cal_on = FALSE
EndIf
EndSub
8