Our full technical support staff does not monitor this forum. If you need assistance from a member of our staff, please submit your question from the Ask a Question page.


Log in or register to post/reply in the forum.

What is reset automatically < every 90 seconds in PS/CH200


Terrapin Sep 17, 2015 06:38 PM

I'm working with numerous CH200 charge controllers and have encountered a comment in the SDI-12 programming example that says "Battery test command will be sent every 30 second. Must send it at least every 90 seconds or the PS/CH200 will automatically reset". I can't find anywhere in the manual what is reset automatically. I ask because I wonder why I can't execute my CH200 code at a scan rate slower than 90 seconds.


My SDI-12 code is doing the following:

Main program scan rate = 5 minutes

SlowSequence(60,sec,3,0)
Test battery 1st day of every month @ 1001 hours
Get CH200 Values
Get CH200 extended status values
Measure and record system current usage
Set battery capacity to user specified value


JDavis Sep 17, 2015 10:44 PM

The battery test command will set to target charge voltage to 11.5 Volts for 90 seconds. If you send the test command again before then, the 90 second timer resets.

The battery test command is used for cases when a station is always connected to an AC power source and you want to do a drawdown test on the battery.


Skipper Sep 17, 2015 11:36 PM

Take a look at section 6.2.3.4 (p 38) in the manual. This section notes that the battery test command sets the charging voltage low, which forces the CH200 to stop charging the battery. This only lasts for 90 seconds, after which the charging voltage goes back to its normal level. Testing a battery takes longer than 90 seconds, though, so you need to keep reissuing the command at a rate faster than 90 seconds in order to keep the charging voltage low during your test.

You can see in the example programs that the test goes on for a set length of time or until the voltage drops below 11.7 V. This test is to see how the battery performs over a number of hours while it is not being charged, which tells you if your battery is still doing well or not.


Skipper Sep 17, 2015 11:37 PM

Looks like I should have refreshed the page before posting!


Terrapin Sep 21, 2015 03:31 PM

Thanks JDavis and Skipper,

That was very helpful information. I wonder what best practice you would recommend for conducting a drawdown test of a deep cycle battery that is charged by solar panel? It strikes me that I get a drawdown test each night when the system isn't being charged by the solar panel. Is a battery test even needed in my situation given this?


Skipper Sep 21, 2015 07:50 PM

You are correct. You will be testing your battery every night. For solar-powered systems, I don't see a need for such a battery test. As long as you pay attention to your minimum daily battery voltage, you will have a good idea of the health of your battery.


Terrapin Sep 21, 2015 08:38 PM

Thanks Skipper,

So, if I'm not running a Discharge test can I execute the Amp_hr and Amp_day code every 5-minutes as part of my main program or does this code still need to be run on a SlowSequence < 90-seconds in order to calculate correct values?


Skipper Sep 21, 2015 08:50 PM

I don't know what is included in your Amp_hr or Amp_day code, but if you are using the MC! command, then your scan rate must be 2 seconds or longer.

We recommend issuing SDI-12 requests in slow sequences. If the sensor or device for whatever reason takes longer than the time you have allocated in the scan, it will hold up the rest of your measurements and result in skipped scans and possibly skipped records. Moving it to a slow sequence moves it to a lower priority than your main scan, so your main measurements would not be affected in that case.


Terrapin Sep 21, 2015 09:00 PM

I included the Amp_hr, Amp_day, and Bat_Hour code below in case that helps. I'm using SDI-12 requests and wonder if my slow sequence scan rate can be 5-minutes, just like my main program scan rate? This would adhere to your recommendation of putting the battery code in a SlowSequence while also reducing the frequency the battery code is run.

'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ START PS200 Battery Section /////////////////////////////////'

'Faster Scan rate to ensure that SDI-12 commands are sent at
'least every 90 seconds or the PS/CH200 will automatically reset!
SlowSequence
Scan (60,Sec,3,0)

'######## PS200 BATTERY CHARGER - GET PS200/CH200 VALUES ########
SDI12Recorder (CH200_M0(),3,0,"MC!",1.0,0)

'Array values start with one. Values for charge state start with -1.
'Have to shift the value by two to line it up with the correct words
'in the array.
ChargeState = ChargeStateArr(Chg_State + 2)
'Values for charge source start with zero. Have to shift the value
'by one to line it up with the correct words in the array.
ChargeSource = ChargeSourceArr(Chg_Source + 1)
'Values for check battery start with zero. Have to shift the value
'by one to line it up with the correct words in the array.
CheckBattery = CheckBatteryArr(Ck_Batt + 1)

'######## PS200 BATTERY CHARGER - GET EXTENDED STATUS VALUES ########
SDI12Recorder (CH200_MX(),3,0,"M6!",1.0,0)


'######## MEASURE AND RECORD CURRENT USAGE BY STATION IN AMP-HOURS ########
'Add up the current being consumed by the system. Include battery current in
'the calculation ONLY when it's positive - going into the battery.
'Current values coming from the PS/CH200 are in amps. Have to convert that to
'amp-hours based on the slow scan rate.
Sys_Amp_hr = Sys_Amp_hr + ILoad
If IBatt > 0 Then
Sys_Amp_hr = Sys_Amp_hr + IBatt
Batt_Amp_hr = IBatt
EndIf
Load_Amp_hr = ILoad

For n = 1 To 3
Amp_Hour(n) = Amp_Hour(n) * SlowScan/3600
Next n

'Must call these tables from the slow scan or the values will be wrong!
CallTable Amp_Hr
CallTable Amp_Day

'######## CLEAR QLOSS VALUE IF NOT ZERO ########
'If Clear_QLoss is set to true then set QLoss in the CH200 to zero.
If Clear_QLoss = On Then
Clear_QLoss = Off
SDI12Recorder (SDI12Result,3,0,"XRQ!",1.0,0)
EndIf


'######## SET BATTERY CAPACITY TO USER SPECIFIED VALUE ########
'If the present battery capacity isn't the same as the new battery capacity then send the new one to the charger.
If BattCap <> NewBattCap Then
SDI12command = "XC" & FormatFloat (NewBattCap,"%4.1f") & "!"
SDI12Recorder (SDI12Result,3,0,SDI12command,1.0,0)
EndIf

NextScan

'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ END PS200 Battery Section /////////////////////////////////'


Skipper Sep 22, 2015 05:03 PM

You can certainly run the slow sequence slower than 90 seconds. You can run it at any rate that you wish, as long as you leave enough response time (2 seconds) for each of the SDI-12 commands. 5 minutes is certainly adequate.


Terrapin Sep 22, 2015 07:34 PM

Thanks Skipper for your expert input. I figured I could run the Amp_hr, Amp_day, and Bat_Hour code at a much slower interval than 90-seconds, but it was great to hear you confirm it. Also, I always wondered what the ideal response time was for a given SDI-12 command so thanks for sharing that tidbit as well.


Skipper Sep 22, 2015 07:38 PM

The ideal response time for SDI-12 commands depends on the sensor/device. The CH200/PS200 has a 2 second response time (Section 6.2.2 "...this M! command should only be used in a slow sequence with a scan rate of 2 seconds or longer"). The CS215, for example, has a 0.7 s response time. Ideally, the response time is listed in the specifications of the sensor or device, but sometimes it is hidden within the text of the manual.

Best wishes!

Log in or register to post/reply in the forum.