beautypg.com

Campbell Scientific PS200/CH200 12 V Charging Regulators User Manual

Page 89

background image

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