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

Appendix A. Advanced Programming Techniques
Public CH200_M0(6)
'Array to hold data coming from the PS200/CH200
'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 PanelTempC
'Datalogger panel temperature: Celsius
Public ExtBatTempC
'Battery temperature from an external source.
'SDI-12 formatted external battery temperature value.
Public SDI12Command As String
'Response from PS/CH200. Returns the address of the unit and "OK" if
'all went well.
Public SDI12Result As String
'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
BeginProg
'Set SetBattTemp to TRUE to have ExtBatTempC overwrite internal
'CH200 temperature.
SetBattTemp = True
Scan (5,Sec,0,0)
PanelTemp (PanelTempC,250)
'Measure battery temp with TC attached to external battery
TCDiff (ExtBatTempC,1,mV2_5C,1,TypeT,PanelTempC,True ,0,_60Hz,1.0,0)
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)
SDI12Recorder(CH200_M0(),3,0,"MC!",1.0,0)
If SetBattTemp = True Then
'Overwrite CH200 internal temperature
SDI12Command = "XT" & FormatFloat (ExtBatTempC,"%4.2f") & "!"
Else
'Set the CH200 back to using its internal temperature.
SDI12Command = "XTR!"
EndIf
SDI12Recorder (SDI12Result,3,0,SDI12Command,1.0,0)
NextScan
EndProg
A-2