Jump to content
Sign in to follow this  
obrien.david.j

Apex programming for Acan "Feed Storm"

Recommended Posts

This thread is a fork from the Acan Growout thread, so we don't hijack it too much.    Starting by repeating the guts of the thread...  I'll follow-up with my Implementation and validation.

  

On 7/27/2020 at 6:52 PM, badxgillen said:

I hate to say it folks, but this is the last month of the grow out...

I also regret to inform my Acan looks like poo. I will send some terrible cell phone shots but ultimately I went from 2.5 polyps to 5 sickly looking heads.

Needles to say that after the competition I will be moving these corals out and into a different system... That is unless Coral reefTankers and Snappy will divulge his secrets to success.

 

On 7/28/2020 at 10:16 AM, Snappy said:

It’s my targeted spot feeding. It’s nearly an hour process. I turn all water circulation off and target feed each mouth in my tank with precision with frozen food slurry and turkey baster. Then I wait 20-30 minutes, and turn on water fan without the pump running. This turns the tank into a snow globe of frozen shrimp. Then I turn the water fan off and let everything settle again. Repeat process a couple times before circulating the water with the pumps again. It essentially target feeds everything 3x within the hour, but would be difficult to do in a tank larger than 30 gallons. 

My acans and favites grow large and fast. My tanks specialty. 

 

On 7/28/2020 at 3:29 PM, obrien.david.j said:

This sounds like awesome automation for Apex to help with.   I'll press a button, all pumps off.   Slurry Feed every head as you describe.  Then walk away.   automation will handle the re-mixing, and then going back to normal.   @SuncrestReef, can you turn this into a program, that I can trigger with one of my external push buttons?

Input push button is Swx11_2

Pump outlet is PUMP_FRAG

Powerheads (MP40s) are MP40_FRAGE_L and MP40_FRAGE_R

 

On 7/28/2020 at 5:43 PM, SuncrestReef said:

There’s no easy or elegant way to do this in Apex programming other than a series of virtual outputs each with different Defer timers with one triggering the next:

Timer1  = 60 minutes
Timer2  = 30 minutes
Timer3  = 5 minutes
Timer4  = 10 minutes
Timer5  = 5 minutes

[Timer1]
Set OFF
If Swx11_2 CLOSED Then ON
Min Time 060:00 Then ON

[Timer2]
Set OFF
If Output Timer1 = ON Then ON
Defer 030:00 Then ON

[Timer3]
Set OFF
If Output Timer2 = ON Then ON
Defer 005:00 Then ON

[Timer4]
Set OFF
If Output Timer3 = ON Then ON
Defer 010:00 Then ON

[Timer5]
Set OFF
If Output Timer4 = ON Then ON
Defer 005:00 Then ON

[PUMP_FRAG]
Fallback ON
Set ON
If Output Timer1 = ON Then OFF

[MP40_FRAGE_L]
Fallback ON
Set ON
If Output Timer1 = ON Then OFF
If Output Timer2 = ON Then ON
If Output Timer3 = ON Then OFF
If Output Timer4 = ON Then ON
If Output Timer5 = ON Then OFF

[MP40_FRAGE_R]
Fallback ON
Set ON
If Output Timer1 = ON Then OFF
If Output Timer2 = ON Then ON
If Output Timer3 = ON Then OFF
If Output Timer4 = ON Then ON
If Output Timer5 = ON Then OFF

All 5 of these virtual outputs must be set to AUTO, but you can then remove them from your dashboard to avoid all the clutter if you choose.

(sorry for taking this thread off topic...I can move this post to the Equipment forum if requested)  

 

Share this post


Link to post
Share on other sites

And Now, my implementation and validation details.  I did it, and it works.

I changed the names of Virtual outlets ("timer" --> "FeedStorm"), and added Test-Switch, Test-Pump, and Test-MP40s to allow me prototype in isolation.

First, it took me reading the code three times to understand how it worked.   And THEN i mocked it up in excel to just watch the timeline by by.

image.png

  • FeedStorm1  = 60 minutes  -- Main Pump & MP40s OFF     @ 0s
  • FeedStorm2  = 30 minutes  -- turn MP40s ON         @ 30mins
  • FeedStorm3  = 5 minutes   --  turn MP40s OFF         @ 35mins
  • FeedStorm4  = 10 minutes  -- turn MP40s ON           @ 45mins
  • FeedStorm5  = 5 minutes   --  turn MP40s OFF          @ 50mins
  • (and then Timer1 Expires), Main Pump & MP40s ON         @ 60mins

 

The Code:  --> Testing Code:
[FeedStorm1]
Set OFF
If Swx13_1 CLOSED Then ON
If Outlet Test-Switch = ON Then ON
Min Time 060:00 Then ON

[FeedStorm2]
Set OFF
If Output FeedStorm1 = ON Then ON
Defer 030:00 Then ON

[FeedStorm3]
Set OFF
If Output FeedStorm2 = ON Then ON
Defer 005:00 Then ON

[FeedStorm4]
Set OFF
If Output FeedStorm3 = ON Then ON
Defer 010:00 Then ON

[FeedStorm5]
Set OFF
If Output FeedStorm4 = ON Then ON
Defer 005:00 Then ON

[PUMP_FRAG] & [Test-Pump]
Fallback ON
Set ON
If Output Timer1 = ON Then OFF

MP40_FRAGE_L] &  [Test-MP40s]
Fallback ON
Set ON
If Output Timer1 = ON Then OFF
If Output Timer2 = ON Then ON
If Output Timer3 = ON Then OFF
If Output Timer4 = ON Then ON
If Output Timer5 = ON Then OFF

[MP40_FRAGE_R] --> (Same Code as MP40_FRAGE_R)

 

 

  • Like 1

Share this post


Link to post
Share on other sites

And the validated results...   And I'm ready to go! Thanks @Snappy for the feeding schedule.   I can now afford to do it, without burning 1hr of my time manually switching the pump&MP40s on/off.

image.png

Share this post


Link to post
Share on other sites

@obrien.david.j Yes, you figured it out properly.  Your spreadsheet lays it out nicely, and that’s how I see it in my head.  (actually, it’s more like this:)

1E8FEB3B-8CC9-4983-B851-57C8F91632E5.jpeg

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...