Results 1 to 17 of 17

Thread: ATO Failsafes

  1. #1
    Frequent Contributor zombie's Avatar
    Join Date
    Dec 2013
    Location
    Denver, CO
    Posts
    13,176

    ATO Failsafes

    This Thread explains the different fail-safes that can be used in an automatic top off (ATO) code that can improve reliability and prevent catastrophic failure. It is important to use protective code in order to prevent the ATO pump from sticking in the ON position when a float switch fails. Even If you have top of the line float switches, they will eventually fail in the OPEN or CLOSED position, which will each have their own issues that can be resolved by adding some extra code. Before utilizing the methods below, make sure your ATO is operational using the sample program - simple 2 float ATO sticky.

    This thread will assume that the starting point for your code is this

    Set OFF
    If ATOsw CLOSED Then ON
    If HighSw OPEN Then OFF
    Defer 002:00 Then ON
    Min Time 010:00 Then OFF


    Conductivity Cutoff
    If you own a PM2 with a conductivity probe, the conductivity value can be used as a fail-safe to prevent overfilling. It is ideal to use a conductivity value that is 1 ppt lower than your typical daily range (i.e. if conductivity ranges from 34.5 to 35.0, then 33.5 should be used)

    Ex.

    ATO (physical outlet)
    Set OFF
    If ATOsw CLOSED Then ON
    If HighSw OPEN Then OFF
    If cond < 33.5 Then OFF
    Defer 002:00 Then ON
    Min Time 010:00 Then OFF

    Email Alarm
    (existing code)
    If cond < 33.5 Then ON



    Stuck Switch Detection
    With the use of virtual outlets (please read the sticky on virtual outlets if you are not familiar with them), the apex can detect when a switch is stuck in the open or closed position because your normal level float switch should alternate between open and closed at fairly regular intervals under normal conditions. When it stays in any one position longer than usual, it means that some problem has occurred. When a switch stays CLOSED for longer than normal it can mean that either the switch itself is stuck in the CLOSED position, your reservoir is empty, or the water line has been clogged/disconnected. When a switch stays OPEN for longer than normal it can mean that either the switch itself is stuck in the OPEN position, your water line is siphoning, or the wiring to the breakout box is broken or disconnected.

    The basic form of this code should be like shown below where XXX:XX and YYY:YY are the intervals you want to wait to determine if a switch is stuck. The value you use will be dependent on your particular system and is affected by many variables including: System water volume, size of ATO pump, evaporation rate, type of float switch, etc.

    SwStuckCL (virtual outlet for detecting if switch is stuck in the CLOSED position)
    Set OFF
    If ATOsw CLOSED Then ON
    Defer XXX:XX Then ON

    SwStuckOP (virtual outlet for detecting if switch is stuck in the OPEN position)
    Set OFF
    If ATOsw OPEN Then ON
    Defer YYY:YY Then ON



    What method should I use?
    In the next few posts I will go over different methods that you can use depending on how you want the system to react when a failure is sensed. Please look at the situations below to determine which approach to use.

    1. If the float switch fails closed, I want the ATO pump to stop completely until I manually intervene or the switch shows OPEN. Send me an email if the switch sticks. If you want to use this approach, see stuck switch implementation.

    2. If the pump runs for longer than X time, turn the ATO pump off but allow it to try again after Y minutes. Send me an email every time the pump runs longer than X. See self-resetting latch to use this approach

    3. Regardless of the float switch states, if the pump runs longer than X time, turn off the ATO pump and do not allow it to run again until I manually intervene by changing the state of a virtual outlet after I inspect the switch. See maximum run time latch for this approach

    4. Under normal operation, allow the ATO to "dose" water up to double the daily evaporation rate of my tank. If a switch is stuck, send me an email and reduce the amount "dosed" to half my daily evaporation rate. See OSC based fail safes for this approach



    1. Stuck Switch implementation
    This is the simplest fail safe method for the majority of users. In the example below, XXX:XX represents the maximum amount of time you will allow your pump to run before it stops the ATO sequence completely. A good time to shoot for is double the time it normally takes to fill from the float at its lowest position to its highest position.

    ATO (physical outlet)
    Set OFF
    If ATOsw CLOSED Then ON
    If HighSw OPEN Then OFF
    If Outlet SwStuckCL = ON Then OFF
    Defer 002:00 Then ON
    MinTime 010:00 Then OFF

    SwStuckCL (virtual outlet)
    Set OFF
    If ATOsw CLOSED Then ON
    Defer XXX:XX Then ON



    2. Self-Resetting Latch
    This method will allow the ATO to continue to operate at a much reduced rate in the event that a switch sticks. It is possible to exacerbate the problem and continue overfilling if you select your times improperly. XXX:XX is the maximum time your pump is allowed to run in each attempt. YYY:YY is the amount of time you wish to wait between filling attempts (if the switch is stuck). When in doubt use a YYY:YY value of several hours.

    ATO (physical outlet)
    Set OFF
    If ATOsw CLOSED Then ON
    If HighSw OPEN Then OFF
    If Outlet MaxTime = ON Then OFF
    Defer 002:00 Then ON
    MinTime 010:00 Then OFF

    MaxTime (virtual outlet)
    Set OFF
    If Outlet MaxTime = ON Then ON
    Defer XXX:XX Then ON
    MinTime YYY:YY Then ON



    3. Manually Resetting Latch
    This method will completely lock out your ATO if it runs longer than XXX:XX for any reason. It will not start again until you reset the latch by changing the virtual outlet "Res_Latch" to manual ON and then back to AUTO

    ATO (physical outlet)
    Set OFF
    If ATOsw CLOSED Then ON
    If HighSw OPEN Then OFF
    If Outlet ATO_Latch = ON Then OFF
    Defer 002:00 Then ON
    Min Time 010:00 Then OFF

    Res_Latch (virtual outlet)
    Set OFF

    ATO_Latch (virtual outlet)
    If Outlet ATO = ON Then ON
    If Outlet Res_Latch = ON Then OFF
    If Power Apex OFF 001 Then OFF
    Defer XXX:XX Then ON



    4. OSC based fail safes
    This is the most effective type of failsafe since it both protects against overfilling and also slows conductivity increase in the event when a failure is detected. Unfortunately, this is by far the most complicated and requires you to know the effective gph rate of your pump, the evaporation rate of your tank, and a good understanding of unit cancellation mathematics. My thread https://forum.neptunesystems.com/sho...mize-pH-change explains some of the mathematics required to determine the amount to "dose" once you determine your effective pump flow rate and weekly evaporation.

    Below is the current code that I use in my system with brief explanations of what each VO does. I wouldn't recommend going this complicated with your code unless you can fully understand how every outlet below works.

    ATO_4_8 (pump outlet)
    Fallback OFF
    OSC 000:00/001:00/004:00 Then ON
    If ATOSw OPEN Then OFF
    If Outlet ATO_StuckCL = ON Then OFF
    If Outlet IgLowLev = ON Then ON
    If Outlet IgStuckCL = ON Then ON
    If Outlet HighH2O = ON Then OFF
    If FeedD 000 Then OFF

    HighH2O (detects high water level only if both returns are on)
    Set OFF
    If HighSw OPEN Then ON
    If Outlet RtnL_4_4 = OFF Then OFF
    If Outlet RtnR_5_1 = OFF Then OFF
    Defer 000:10 Then ON

    LowH2O (detects low water level)
    Set OFF
    If LowSw OPEN Then ON
    Defer 000:10 Then ON

    ATO_StuckCL (detects if switch 1 stays closed for 12 consecutive doses.)
    Set OFF
    If ATOSw CLOSED Then ON
    Defer 060:00 Then ON

    ATO_StuckOP (detects if switch 1 is stuck open. Signifies empty reservoir, clogged line, broken wire, etc)
    Set OFF
    If ATOSw OPEN Then ON
    Defer 120:00 Then ON

    IgStuckCL (allows half evap rate if switch 1 is stuck closed)
    OSC 000:00/000:15/004:45 Then ON
    If Outlet ATO_StuckCL = OFF Then OFF

    IgLowLev (allows evap rate if switch 1 is stuck closed AND there is low water level)
    OSC 000:00/000:30/004:30 Then ON
    If Outlet ATO_StuckCL = OFF Then OFF
    If Outlet LowH2O = OFF Then OFF

    Email alarms added
    If Outlet HighH2O = ON Then ON
    If Outlet LowH2O = ON Then ON
    If Outlet ATO_StuckCL = ON Then ON

  2. #2
    Regular Vistor
    Join Date
    Mar 2015
    Location
    United States
    Posts
    15
    Wow.. this is awesome. Someone please sticky it!

  3. #3
    KerryF
    Join Date
    Jun 2015
    Location
    Mission Viejo, CA
    Posts
    8
    Thanks Zombie! Very timely...I'm just setting up a new build, and at the "figuring out my ATO" program.

  4. #4
    Frequent Visitor
    Join Date
    Mar 2014
    Location
    United States
    Posts
    111
    Isn't ATO_StuckOP kind of redundant since if your reservoir was empty you would get a sump low alarm?

  5. #5
    Frequent Contributor zombie's Avatar
    Join Date
    Dec 2013
    Location
    Denver, CO
    Posts
    13,176
    Quote Originally Posted by Perforator View Post
    Isn't ATO_StuckOP kind of redundant since if your reservoir was empty you would get a sump low alarm?
    At the time I only had 3 floats and all of them were in my sump, so I was killing two birds with one stone. the stuck open could signify empty reservoir, clogged water line, or a disconnected float. So basically when I would get the email I would fill up the reservoir and if it wasn't empty, troubleshoot the other possibilities.

  6. #6
    Frequent Contributor zombie's Avatar
    Join Date
    Dec 2013
    Location
    Denver, CO
    Posts
    13,176
    Note: The manually resetting latch section is now superseded by the When command. See this post for its use. I am unable to edit my original post or I would put it in there.

    https://forum.neptunesystems.com/sho...-Firmware-4-52

    Sent from my SM-G935V using Tapatalk

  7. #7
    Regular Vistor
    Join Date
    Mar 2016
    Location
    New York
    Posts
    26

    Little lost

    So this is my programming

    Fallback OFF
    Set OFF
    If Sw6 CLOSED Then ON
    If Sw4 CLOSED Then OFF
    Defer 002:00 Then ON

    Its doinf everything i need except i would like to turn off the pump after say 20 seconds and maybe run after 1minutw after running in order not to over fill

  8. #8
    Frequent Contributor zombie's Avatar
    Join Date
    Dec 2013
    Location
    Denver, CO
    Posts
    13,176
    Quote Originally Posted by Carlos_rendon View Post
    So this is my programming

    Fallback OFF
    Set OFF
    If Sw6 CLOSED Then ON
    If Sw4 CLOSED Then OFF
    Defer 002:00 Then ON

    Its doinf everything i need except i would like to turn off the pump after say 20 seconds and maybe run after 1minutw after running in order not to over fill
    A couple things on this code. First off, I suggest flipping your high level switch so that up = open. You don't want to run into the scenario that your BOB gets disconnected or a float gets unplugged and the apex thinks it's time to add water. Second, you do need a failsafe for sure. Since you prefer what I called a manually resetting latch this is what I suggest.

    Note: this code assumes that you flip your floats to the correct orientation up = open.

    Fallback OFF
    Set OFF
    If Sw6 CLOSED Then ON
    If Sw4 OPEN Then OFF
    Defer 002:00 Then ON
    When On > 001:00 Then OFF


    I would also do this for a high water level alarm. Replace "Return" with your actual return pump name.

    HighH2O (virtual outlet)
    Set OFF
    If Sw4 OPEN Then ON
    If Outlet Return = OFF Then OFF
    Defer 001:00 Then ON


    Note: the if error statement means the ATO pump is locked out to manual OFF. You need to set the ATO outlet back to auto to allow it to run again and clear the alarm. Replace ATO with the name of your ATO pump outlet.

    Email
    (Existing code)
    If Error ATO Then ON
    If Outlet HighH2O = ON Then ON



    You might be an engineer if...You have no life and can prove it mathematically.

  9. #9
    Regular Vistor
    Join Date
    Mar 2016
    Location
    New York
    Posts
    26
    At the moment i dont have i only have. 2 float switches one in my sump and the other in my ato reaevior in order to not run the pump dry. The statement "When on > 001:00 then off" will prevent my pump from from running longer than 1 minute? Will it still shut down after float switch 6 goes in the open position or will it run for a minute straight even if float switch 6 is open?

  10. #10
    Frequent Contributor zombie's Avatar
    Join Date
    Dec 2013
    Location
    Denver, CO
    Posts
    13,176
    Quote Originally Posted by Carlos_rendon View Post
    At the moment i dont have i only have. 2 float switches one in my sump and the other in my ato reaevior in order to not run the pump dry. The statement "When on > 001:00 then off" will prevent my pump from from running longer than 1 minute? Will it still shut down after float switch 6 goes in the open position or will it run for a minute straight even if float switch 6 is open?
    It will allow your pump to run based on what the float calls for UP TO 1 minute. If it still calls for water after 1 minute has elapsed it will lock out the ATO pump to manual off, send you an email (if error statement) and will not run again until you manually reset the outlet back to auto. If you prefer a more automated approach, the self resetting approach might be more your forte.

    You might be an engineer if...You have no life and can prove it mathematically.

  11. #11
    Regular Vistor
    Join Date
    Mar 2016
    Location
    New York
    Posts
    26
    I apologize in advance i just need this broken down barney style im kinda slow like that. What i need to do is basically not let the pump run for more than say 20 seconds at a time since its a maxi jet 900 i believe and i dont want it dumping too much water and flucuating my salinity and dumping too much water. What changes do i need to make to my programming being switch 6 is in my sump and switch 4 in my ato resevior.

  12. #12
    Frequent Contributor zombie's Avatar
    Join Date
    Dec 2013
    Location
    Denver, CO
    Posts
    13,176
    Quote Originally Posted by Carlos_rendon View Post
    I apologize in advance i just need this broken down barney style im kinda slow like that. What i need to do is basically not let the pump run for more than say 20 seconds at a time since its a maxi jet 900 i believe and i dont want it dumping too much water and flucuating my salinity and dumping too much water. What changes do i need to make to my programming being switch 6 is in my sump and switch 4 in my ato resevior.
    Change OPEN to CLOSED on the sw6 lines.

    In that particular case, I think a self resetting approach or osc based with a stuck switch alarm may be better for you.

    Can you take a look at your outlet log from your current programming and respond what the typical amount of time your pump turns on for and also how long it is usually off between fills? With those two pieces of information I can go through the process of how to properly tune the timings for the latch and the alarm.

    You might be an engineer if...You have no life and can prove it mathematically.

  13. #13
    Regular Vistor
    Join Date
    Mar 2016
    Location
    New York
    Posts
    26
    I havent been logging it, i will have to get back to you on that one once it builds a log. The dang box wasnt checked

  14. #14
    Regular Vistor
    Join Date
    Mar 2016
    Location
    New York
    Posts
    26
    Ok i believe it logged todays progress. Which was the information you needed and where to i get it from?

  15. #15
    Frequent Contributor zombie's Avatar
    Join Date
    Dec 2013
    Location
    Denver, CO
    Posts
    13,176
    Go to the outlet log and checkbox the ATO outlet and nothing else. Hover over the circles and it will tell you the times it turned on and the times it turned off. Write those down and then convert them to time on and time off. It should be fairly consistent, and you can always use excel to help. What I need is the average and max times for both on and off.

    You might be an engineer if...You have no life and can prove it mathematically.

  16. #16
    Regular Vistor
    Join Date
    Mar 2016
    Location
    New York
    Posts
    26
    Looks like with just the addition of the
    "When On > 000:20 Then OFF" its functioning as id like it. Its turning the the pump on but not letting it run for more than 20 seconds and if it does its shutting it off and turning the outlet off.

  17. #17
    Regular Vistor
    Join Date
    Apr 2017
    Location
    California
    Posts
    25
    This is great! Thanks zombie

Similar Threads

  1. Help! Trident Controlled Dosing.....How to program failsafes
    By tcard1982 in forum Apex Programming for Dosing, ATO, and AWC
    Replies: 2
    Last Post: 08-13-2020, 17:58
  2. Help! Shut off my ATO pump once my ATO reservoir runs dry.
    By sirrichard33 in forum Apex Programming for Dosing, ATO, and AWC
    Replies: 2
    Last Post: 02-15-2020, 11:28
  3. Replies: 1
    Last Post: 07-05-2016, 13:46
  4. Review My Program Calcium reactor with failsafes
    By zombie in forum Apex Programming for Dosing, ATO, and AWC
    Replies: 3
    Last Post: 07-21-2014, 08:04
  5. Limiting ATO pump regardless of ATO switch state
    By eyesolator in forum Apex Programming for Dosing, ATO, and AWC
    Replies: 5
    Last Post: 08-04-2013, 08:34

Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •