Profilux Programmable Logic Usage & Examples

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)

Michael Gray

Valuable Member
View Badges
Joined
Apr 18, 2019
Messages
1,988
Reaction score
1,258
Location
Bay Area, Brentwood CA
Rating - 0%
0   0   0
In C it is 0.15 degrees difference - I have around the same - 0.1 degree C - I´m using pulse adjustable mode

Last Week

1616061841901.png


1616061919168.png

I also use a virtual probe that manage my chilling fans with a 1-10 V signal. It will kick in if my temperature gets above 25,3 degree C

1616062256864.png


I can have it to kick in earlier - I have not tested out the optimal configuration yet

Sincerely Lasse
Ok Lasse. Just now I put it on variable pulse. 4 min pulse 30 second pause. I guess I'll watch the chart to see what it does lol
 

Lasse

10K Club member
View Badges
Joined
Mar 20, 2016
Messages
10,868
Reaction score
29,849
Location
Källarliden 14 D Bohus, Sweden
Rating - 0%
0   0   0
Sorry - do not understand the graphs - why it is rising?. What´s sample time. Pulse variable will give a lot of minor on/of when the temperature of the tank will be close to the nominal value. It will in a dynamic mode change the length of the pulse. When it is far away from nominal value - it will run for the whole period - closer to the nominal value it will shorten the on pulse. It is like you are standing 4 meters away from a wall- You move against the wall - first with 2 m, next move 1 m, third move 0.5 m, 4:th move 0,25 m and so on - you will come closer to the wall all the time but never exactly to the wall.

If you have the fans connected to the same temp probe and without 1-10 V signal - use the function cooling difference - start with lowest adjustment - in C it is 0.1.

1616231919490.png

A tip - GHL:s propeller control is a good tool

1616231953789.png


All system does not work the same way - you may need to do some experiments and look at the graph.

Sincerely Lasse
 

mindwalkr

Community Member
View Badges
Joined
Nov 10, 2017
Messages
46
Reaction score
42
Location
Boston, MA
Rating - 0%
0   0   0
Hi All,

I am using the Android app to configure my Profilux 4. I have it set up and doing Auto-magic-Water-Changes+ATO 3x per day (about 2 gallon a time on a 100gal tank, so total is around 100% every two weeks). My skimmer is plugged directly into my sewer line, but I run it wet. The end result is slightly decreasing salinity over time. I can "fix" this by mixing a richer salt water mix for the salt water ATO replacement, but if I ever need emergency salt water, I would not have it, so this is not ideal.

What I would like is to be able to set up the AWC+ATO function to refill ATO water from either salt water or fresh, depending on salinity. Yes, I realize this will result in small swings over time, but it should be very small, due to the small volume replaced each time.

The AWC+ATO uses two GHL Doser Maxi pumps. How do I configure it to use either fresh or salt water doser depending on tank salinity? Let's ignore probe stability for the moment :)
 

Vinny@GHLUSA

Valuable Member
View Badges
Joined
Jul 27, 2016
Messages
1,149
Reaction score
1,509
Rating - 0%
0   0   0
Hi All,

I am using the Android app to configure my Profilux 4. I have it set up and doing Auto-magic-Water-Changes+ATO 3x per day (about 2 gallon a time on a 100gal tank, so total is around 100% every two weeks). My skimmer is plugged directly into my sewer line, but I run it wet. The end result is slightly decreasing salinity over time. I can "fix" this by mixing a richer salt water mix for the salt water ATO replacement, but if I ever need emergency salt water, I would not have it, so this is not ideal.

What I would like is to be able to set up the AWC+ATO function to refill ATO water from either salt water or fresh, depending on salinity. Yes, I realize this will result in small swings over time, but it should be very small, due to the small volume replaced each time.

The AWC+ATO uses two GHL Doser Maxi pumps. How do I configure it to use either fresh or salt water doser depending on tank salinity? Let's ignore probe stability for the moment :)
100% doable. :)

Conditional ATO based on saltwater readings
  1. Create your ATO function
  2. Go to your Conductivity sensor settings page and configure your control settings
  3. Go to the Programmable Logic settings page and select an unused gate.
  4. Set the gate function to AND... Input 1 to Fill water (ATO Only)... Input 2 to Conductivity Control upwards

    1637608530018.png
    This PL function will activate when your conductivity value is below your desired (nominal) value.
    Think, "This will INCREASE my salinity when the tank value is below where I want it."
  5. Save settings, then select another unused PL gate
  6. Set the gate function to AND...Input 1 to Fill water (ATO Only)...Input 2 to Conductivity Control downwards
    1637608484504.png

    This PL function will activate when your conductivity value is higher than your desired (nominal) value.
    Think, "This will DECREASE my salinity when the tank value is higher than where I want it."


  7. Go to the Switch channels page and select the switch channel that will be powering your ATO SW pump
  8. Assign the Programmable Logic function that adds SW...note the example below...I created that PL on gate # 11 so I'm going to assign PL gate 11 to this SC.
    1637608742859.png

  9. Save settings, then go to the SC that will be powering your ATO FW pump
  10. Assign the Programmable Logic function that adds FW...note the example below...I created that PL on gate # 12
    so I'm going to assign PL gate 12 to this SC.
    1637609695078.png
  11. Save settings
 

george7523

Community Member
View Badges
Joined
Nov 13, 2019
Messages
76
Reaction score
19
Rating - 0%
0   0   0
I have profilux dose 12ml of kalk every 10 minutes in auto mode. However I need to manually change dosing amount at various times throughout the day and night because alk intake fluctuates. I recently connected a alkatronic to profilux so that the dkh reading is available under ph probe 2. I would like to automate the kalk adjustments based on the dkh reading passed in by alkatronic. How can I accomplish this using programmable logic ? thanks
 

Lasse

10K Club member
View Badges
Joined
Mar 20, 2016
Messages
10,868
Reaction score
29,849
Location
Källarliden 14 D Bohus, Sweden
Rating - 0%
0   0   0
I have profilux dose 12ml of kalk every 10 minutes in auto mode. However I need to manually change dosing amount at various times throughout the day and night because alk intake fluctuates. I recently connected a alkatronic to profilux so that the dkh reading is available under ph probe 2. I would like to automate the kalk adjustments based on the dkh reading passed in by alkatronic. How can I accomplish this using programmable logic ? thanks
This is a problem that may not/ may have a solution. I´m not 100 percent sure how Alkatronics input into GHL works. As I understand it - it will trick a pH controller to show a figure where pH 7 is 7 dKH, pH 7.1 = 7.1 dKH and so on. In your case pH controller 2 If it totally mimic a pH controller - I may have a way to solve it.

Can you take a screenshot how your pH2 controller looks like - Preferably from GCC where everything is more clear

By the way - if you had have a KH director things had been a little bit easier. Every dosing pump (pump program) have an inbuilt adaptivt mode in their configuration but only answer to inputs from KH director and ION director. I use Triton core 7 and I have had the same problem with different KH depending on night or day with different alkalinity consumption depending of the time of the day. I solved it first by using two different virtual dose pumps that I left active at different times. It didn't help completely, but after I got a KH director, I got a more even alkalinity reading. See below - still some variations but not the same variation as before.

1698212770646.png



Sincerely Lasse
 

george7523

Community Member
View Badges
Joined
Nov 13, 2019
Messages
76
Reaction score
19
Rating - 0%
0   0   0
Thank you very much Lasse for your time. I didn't realize you can create virtual dosing pumps, I thought you can only create virtual probes that are copies of actual physical probes. Can you elaborate more on this ? I have same day / night alk intake fluctuate pattern too. So having a virtual dosing pump with night schedule would solve my problem as well. Can you share how you accomplish this ? thank you very much !

Yes, the profilux receives alkatronic's dkh reading under the guise of a ph probe. And in my case, the first " pH-value 1" is the actual real ph probe, the "pH-value 2" is the expansion card that alkatronic is connected to. Yes, I did own a KH director before, and as you said I found it's built-in logic very convenient and useful. But for whatever reason its dkh measurements fluctuates randomly alot for me. So, I switched to alkatronic which have been very reliable for me as I also cross reference measurements with hanna checker and alk intake corresponds more logically with what's going on in the tank. Thank you for your help. It's greatly appreciated. I've attached a gcc screenshot of the "ph-value 2" where it's showing dkh value sent by alkatronic

ph probe ghl.jpg PXL_20231025_202417847~2.jpg PXL_20231025_202446960~2.jpg
 
Last edited:

Lasse

10K Club member
View Badges
Joined
Mar 20, 2016
Messages
10,868
Reaction score
29,849
Location
Källarliden 14 D Bohus, Sweden
Rating - 0%
0   0   0
If you in GCC click on the view meny and check the expert mode box (black marking) - does the something similar to the options in the blue marking show up?
1698271243928.png


I´ll come back with the virtual pump concept later. Its 00:10 here in Sweden - time to sleep - but I need to know if you get the configurations in the blue marking if you activate expert mode first

Which FW do you have and which GCC?

1698271950425.png




Sincerely Lasse
 
Last edited:

george7523

Community Member
View Badges
Joined
Nov 13, 2019
Messages
76
Reaction score
19
Rating - 0%
0   0   0
Godnatt Lasse, thank you very much for helping and sharing your knowledge and god morgon.

here are my info:

gcc version : 1.1.3.7
profilux 4e firmware 7.28

yes in expert mode I do see additional ph fields as shown in attached pic.

btw, the calibration data that is shown are "fake" ph 7 and ph 10 signals that was sent by alkatronic in the initial setup process in order to translate alkatronic's dkh value properly under profilux's ph panel.

lasse.jpg
 

Lasse

10K Club member
View Badges
Joined
Mar 20, 2016
Messages
10,868
Reaction score
29,849
Location
Källarliden 14 D Bohus, Sweden
Rating - 0%
0   0   0
Now we are talking.

Solution 1 Different Static dosing during different times. I use GCC to show how

Calibrate the pump you want to use as your real (physical pump) In my case Dose pump function 3. I chose 0 (slow) but in your case its better to use 2 that will give you a flow around 20 ml/min. Put the exact same figures in the pump programs you chose to be your "virtual" pumps in my case 25 and 26 (natt = night; dag = day)

1698308273871.png


Now we should chose what they should response to: The real pump should response to a switch channel index - in my case is index 64 my "virtual" switch channel. More about this channel later. Pump 25 and 26 should response to automatic times - in my case its two different but in your case should it be 144 times (each 10 minutes) and 12 ml each time for 26 (day) and maybe 4 ml for 25 (night) - that you have to test

1698308495200.png


Now its time for a timer and 3 PL programs - in my case Timer 1, PL 15, 16 and 17 in my case. I set my timer to be active between 12:00 and 23:59 (day) PL 15 (night) is Dosing pump 25 and timer 1 (inverted); PL 16 = dosing pump 26 and timer 1; PL 17 these two combined with the OR command PL15 or PL 16

1698309455661.png



Now we have to configure the switch channel (virtual) I chose as you seen before channel 64 and use function PL 17

1698309678851.png



As seen before - the real pump - in my case Dose pump 4 - will react to switch channel 64 - each time this channel is active - it will dose

1698309868781.png


This was a static set up and you can combine with more "virtual" pump programs, PL and timers if you want. This is the program I run for the moment and it works I´ll comeback with another suggestion - something I have not tested but that I think work - it will be a dynamic solution. I do not know but - it may work . I´ll be back!

Sincerely Lasse
 

Lasse

10K Club member
View Badges
Joined
Mar 20, 2016
Messages
10,868
Reaction score
29,849
Location
Källarliden 14 D Bohus, Sweden
Rating - 0%
0   0   0
Warning - I have not tested the suggestions below. It can work but it can also cause problems. The alkatronic can only measure once every 2 hours as I understand - it means that the dose that will be set in one reading will last for 2 hours independent on how the KH develop during that time. The function I use in this example is constructed for probes that measure in a continuous mode. But it can work and maybe even for lesser testing periods than every 2 hours.
1 Calculate how many seconds it take for your actual (real) pump needs in order to dose 12 ml. If the calibration says 24 ml/minut - it means that 12 ml will take 30 seconds.

Look at this configuration of your pH 2. Nominal value - the KH you want to have - let us say you want 8.3 dKH as it is at the moment. Hysteris can be a critical part in my set up. You may change it by you need to test. As it stands now 0.30 - it means that below 8.15 you will have full output of your pulse (see below) - as it get closer to 8.3 - the pulse will be shorter and shorter with no pulse at all above 8.3 . Pulse ? Go down to Operation mode controller - change it to pulse variable. Pulse should be your calculated time for 12 ml (or what your chose is) - in our example 30 sec. Pause should be the time between the different doses - in our example 10 minutes

Go down to Dynamic nominal value and change it to NO

1698314562427.png


It should look something like this. Note - the hysteris is rather critical - you may need to change - maybe to a lower value - 0.15 or lower. You have to test this. With lower value - harder response. Lowest possible value for Hysteris is 0.05 in pH - you may need to got down to this but I think that around 0.2 is enough. TEST

1698315520578.png


Save and chose a "virtual" switch channel - I chose Switch channel index 63 for my example. Function pH 1 increase

1698316012669.png


Go to your actual Dose pump - the real physical pump - in my case dos pump 3. Pump to react on - Chose index 63

1698316206389.png


Now - what´s happen. I hope this following scenario will take place. When alkatronic report a dKH below 8.3 it will start the adjustable pulse program. It will do a pulse which length depends of how far away from the nominal value the reported value is - in this case -0.15 dKH mean full strength - 30 sec = 12 ml. Shorter deviation - less length of pulse and thus less dosed amount. After dose - it will wait 10 minute in order to see if something happens - if nothing change - a new pulse of the same strength - this will continue till the next reported measurements from alkatronic comes in - shortest period 2 hours. A new strength of the pulse will be in operation till next measurement and so on. If Alkatronic report a figure above the nominal value - there will be now pulse at all during the time to next measurement. Here I´m not sure if it is the actual nominal value or nominal value + 1/2 of the hysteresis that is the breaking point.

Once again Be careful if you test this solution

My suggestions is two different solutions and I can´t see that they are possible to combine. It one static and one partly dynamic. test them separately


The variable pulse function is a powerful tool - I use it for my heater.Max pulse 4 minutes and wait time before next pulse 30 sec. I use a short pause because heater and temp probe is in the same small apartment of the sump - it is a fast process


1698318589093.png


Because of limit function (till now) to monitor a switch channel I have configure a "virtual" pump for my heater. It has the calibration of 1 ml/min, react to the same switch channel as my heater and I record it. 1 ml in this chart means 1 minute of heater at on state !. Below - you can see how it react when I rise the nominal value from 25 to 25.5 degree C some day ago.

1698318558084.png


Without rising of nominal value - my temperature is rather stable

During a day with fall temperatures outside - the aquarium temperature only rise with 0.1 degree C during periods with full lighting (around 300 Watts LED). The chilling fans has not kicked in - the period with no heating is enough in order to withhold the temperature around 25.9 degree C)

1698318935065.png



Sincerely Lasse
 
Last edited:

george7523

Community Member
View Badges
Joined
Nov 13, 2019
Messages
76
Reaction score
19
Rating - 0%
0   0   0
Wow that is genius ! simply brilliant. Thank you so much Lasse ! the solution is so well organized and documented. Seriously, you can do this professionally. I know I would have paid someone to come up with this otherwise. I could never have figure that out myself. I took computer programming in college but I have a hard time figuring out GHL's programming framework. I will take my time to go through everything and duplicate it in my system and come back here to update my progress. Thank you very much Lasse ! simply brilliant.
 

george7523

Community Member
View Badges
Joined
Nov 13, 2019
Messages
76
Reaction score
19
Rating - 0%
0   0   0
Hi Lasse, I've been trying out the static dosing solution you provided for couple of weeks now. My alkalinity level graph have remained stable and flatten without having to manually switch alk dosing once in the day and once at night. It's truly been a lifesaver for me. I used to have to remember to switch back and forth between 10ml day dosing and 3ml night dosing everyday and sometimes forgetting. It was becoming a chore even though it doesn't take that much time, that mundane repetitive task was a heavy burden in the back of my mind. Now it's all automated and I check only sometimes just to make sure no big swing. Thank you so much again. I've yet to test out your dynamic solution. I will definitely give that a try later on when I get the chance. I'm thinking of using PL to combine your static method with a condition to pause dosing if alk gets above set max level (ie. 8.3) and maybe optionally increase alk by 20% if gets below set min level (ie. 8.0). By the way, the most alkatronic can test is every 1 hour.

Screenshot_20231109-132504.png
 
Last edited:

Caring for your picky eaters: What do you feed your finicky fish?

  • Live foods

    Votes: 22 31.4%
  • Frozen meaty foods

    Votes: 56 80.0%
  • Soft pellets

    Votes: 11 15.7%
  • Masstick (or comparable)

    Votes: 7 10.0%
  • Other

    Votes: 4 5.7%
Back
Top