View Full Version : Aquarium controller with programmable logic

Matthias Gross
02/01/2008, 09:49 AM
We will launch soon the firmware 4.00

Besides many other improvements the greatest new feature is the user programmable logic.

Until now we have these functions in the new firmware:

- 10 logic cells, can be cascaded
- logic functions: AND, NAND, OR, NOR, XOR, NOT
- SR-Flipflop
- Timers

These logic cells can be used to create your own special functions.

Although Profilux already has many more special features than other controllers by default (e.g. like automatic water change at preset times) the new programmable logic is useful for you when you have a specific demand.

Now here is your chance before I finish the new firmware:
Let me know what you need regarding special functions!!!
I will collect these ideas some days - middle of next week we will give you the new firmware 4.00!

Please reply regarding prog. logic in this thread only - it's easier for me to find your ideas.

02/01/2008, 10:41 AM
Hello Matthias,

Could you post a example of this logic, so that we can see how we will be able to access some of the probs or sensor in combinaison with the timers?

I'm sure this will help spark up some discution on subject :c)


02/01/2008, 01:42 PM
I was hoping to be able to do the following with logic if possible.

When the Feeding Pause is finished, then turn current pumps from group 1 on 100% for five minutes, then resume normal current pump activity.


Though it looks as if both if and then are not available in the logic functions.

02/01/2008, 01:49 PM
If and then are not logic functions, but what you are asking is achievable in the logic function gate table

02/01/2008, 01:53 PM
I've been accused of not being very logical before so being wrong is nothing new.

Glad to hear that my request is achievable.

Thanks M&M!

Fishie Nut
02/01/2008, 08:34 PM
I add saltwater every day via dosing pump. I also remove saltwater via dosing pump. My input is less than my output of saltwater because the concentration of salt in the tank rises.
I'd like to be able to disable or temporarily stop the dosing pump channel when the salt concentration rises above e.g. 1.027, restart when it drops to 1.025.

So IF Probe X (conductivity) is 1.027, Socket 1 (Saltwater in) OFF.
IF Probe X is 1.025, Socket 1 ON.

Am I close??

02/02/2008, 02:35 PM
How about having the skimmer delay after the feeding timer is completed.

For example, I like to have my skimmer off for an additional 55 min after the return pump is turned back on.

I'll think for some additional ideas.

Matthias Gross
02/03/2008, 02:16 AM
ok let me explain

We are talking here about so called "boolean" logic. In this system exist 2 states only: true (= 1, =on, = high) and false (= 0, = off, = low). You see there are several names for the 2 states, i'll use true and false.

One or more signals (e.g. "heater", "filter", "timer x") can be combinated by certain functions:

The simplest function is the NOT-function:
a = NOT b
means: if b = true then a = false (and vv). The input signal is inverted

a = b AND c
a is only true if b and c are true at the same time

a = b OR c
a is true if b or c (or both) is true

And so on...

Then we have will have timer-functions, for example to program a a delay.

Now you can assign the output of such a logic function to a socket. The inputs of a logic function can be any state of the ProfiLux (you have here the same options like you have under socket function).

@elzool: this is not possible in this form because we only work with TRUE and FALSE and can't change numeric values
@fishie nut: this is already possible with the functions ProfiLux offers right now. Just use "control upwards" of the salinity probe.
@chrisrush:this can be achieved with the new programmable logic. After firmware 4.00 is available I will demonstrate the usage of the prog. logic by programming your function.

02/03/2008, 04:09 AM
In my opinion the best way to implement this is by a grafical interfaz form make the "programs".

Some thing like this..http://www.iis.net/articles/loadimage.aspx/images/3cb545d7-757d-4570-a508-ccf792a6c0ea/file

Matthias Gross
02/03/2008, 04:24 AM
yes, i agree
(but your link shows a flow chart - we need an editior for boolean logic)
the first step will be that the settings can be done in the same way like the settings for the switchable sockets

second step is a GUI - I will do this with Visual Studio 2008 (still waiting for it)

02/03/2008, 04:26 AM
Take a look for CodeGaer Borland Builder 2007 ;) in my opinion it's betther than Visual :D

Matthias Gross
02/03/2008, 06:38 AM
I worked with VS6 now for more than 10 years. All projects are VS-projects and I made many experiences with the MS products - too late for switchin to Borland...

02/03/2008, 09:02 AM
I understand ;) if you need beta tester... here i am :D

02/03/2008, 07:30 PM
sounds cool.
One thing I would like to do is manage cooling along the lines of... switch cooling fans off, even if above target temp if the halides and the time is after a set time in the evening and external temp is < than a set temperature.

as I know the tank will cool on its own I can save on some evaporation and the heater wont have to come on as early the next morning.

Monitoring of power state somehow of a probe or port would be great. Maybe a level switch with electromagnet ... as profilux and streams are on ups... but would like to trigger events based on power loss.
If level open then trigger alarm and stream stream power 50% pump2 off and heater off something like that... being able to change options when temp drops to a critical level would also be cool.

rest sounds really cool and cant wait to play