beautypg.com

Campbell Scientific PS200/CH200 12 V Charging Regulators User Manual

Page 100

background image

Appendix A. Advanced Programming Techniques

Alias CH200_M0(6)=Chg_TmpC
'Charging state: Cycle, Float, Current Limited, or None

Alias CH200_M0(7)=Chg_State
'Charging source: None, AC, or Solar
Alias CH200_M0(8)=Chg_Source

'Check battery error: 0=normal, 1=check battery
Alias CH200_M0(9)=Ck_Batt

'Arrays to hold the associated words for the charge state, charge source,
'and check battery values.
Dim ChargeStateArr(6) As String

Dim ChargeSourceArr(3) As String
Dim CheckBatteryArr(2) As String


'Variables to hold the words for charge state, charge source, and check
'battery.

Public ChargeState As String
Public ChargeSource As String
Public CheckBattery 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

'Main Program

BeginProg
'Load arrays with words to associate with the charge state, charge source
'and check battery values from the PS/CH200.

ChargeStateArr(1) = "Regulator Fault"
ChargeStateArr(2) = "No Charge"
ChargeStateArr(3) = "Current Limited"

ChargeStateArr(4) = "Cycle Charging"
ChargeStateArr(5) = "Float Charging"
ChargeStateArr(6) = "Battery Test"


ChargeSourceArr(1) = "None"

ChargeSourceArr(2) = "Solar"
ChargeSourceArr(3) = "Continuous"

CheckBatteryArr(1) = "Normal"
CheckBatteryArr(2) = "Check Battery"

new_sdi12_address = "3"

'Set this to your desired SDI-12 address. For this

'example use a 3.

'Get current SDI-12 address.
SDI12Recorder (sdi12_address,3,sdi12_address,"?!",1.0,0)


Scan (5,Sec,0,0)
PanelTemp(PanelTempC,_60Hz) 'Measure datalogger panel temperature.

CallTable Hour
NextScan

'Test the PS200/CH200 at the new SDI-12 address.
SlowSequence
Scan (10,Sec,0,0)

If new_sdi12_address <> sdi12_address Then
SDI_Addr_Chng = "A" + new_sdi12_address + "!"
SDI12Recorder (sdi12_address,3,sdi12_address,SDI_Addr_Chng,1.0,0)

EndIf

A-38