Campbell Scientific PS200/CH200 12 V Charging Regulators User Manual
Page 89

Appendix A. Advanced Programming Techniques
'Array to hold data coming from the PS200/CH200
Public CH200_M0(6)
'Alias names for array elements.
Alias CH200_M0(1)=VBatt
'Battery voltage: VDC
Alias CH200_M0(2)=IBatt
'Current going into, or out of, the battery: Amps
Alias CH200_M0(3)=ILoad
'Current going to the load: Amps
Alias CH200_M0(4)=V_in_chg
'Voltage coming into the charger: VDC
Alias CH200_M0(5)=I_in_chg
'Current coming into the charger: Amps
Alias CH200_M0(6)=Chg_TmpC
'Charger temperature: Celsius
Public CH200_MX(4)
'Array to hold extended data from the PS200/CH200
'Alias names for array elements.
Alias CH200_MX(1) = BattTargV 'Battery charging target voltage.
Alias CH200_MX(2) = DgtlPotSet 'Digital potentiometer setting.
Alias CH200_MX(3) = BattCap
'Present battery capacity.
Alias CH200_MX(4) = Qloss
'Battery charge deficit.
Public PanelTempC
'Datalogger panel temperature: Celsius
Dim SDI12Result As String
'Have to have a variable for the SDI12
'instruction but nothing will be written to it, so hide it.
'Define Data Tables
'Stored hourly data.
DataTable (Hour,1,-1)
DataInterval (0,1,Hr,10)
Minimum (6,CH200_M0(),FP2,0,False)
Maximum (6,CH200_M0(),FP2,False,False)
Minimum (1,PanelTempC(),FP2,0,False)
Maximum (1,PanelTempC(),FP2,False,False)
EndTable
'Save the old QLoss value and a time when the value was cleared.
DataTable (ClearQLoss,True,48)
Sample (1,Qloss,FP2)
EndTable
BeginProg
Clear_QLoss = False
Scan (5,Sec,0,0)
PanelTemp (PanelTempC,250)
CallTable Hour
NextScan
'Put SDI-12 measurements in a SlowSequence to avoid any missed main
'scans if there are any sensor problems
SlowSequence
Scan (30,Sec,0,0)
'Get PS200/CH200 values.
SDI12Recorder(CH200_M0(),3,0,"M3!",1.0,0)
'Get present battery capacity settings.
SDI12Recorder (CH200_MX(),3,0,"M6!",1.0,0)
'If Clear_QLoss is set to true then set QLoss in the CH200 to zero.
If Clear_QLoss = True Then
CallTable ClearQLoss
Clear_QLoss = False
SDI12Recorder (SDI12Result,3,0,"XRQ!",1.0,0)
EndIf
NextScan
EndProg
A-27