PDA

View Full Version : Programmable logic



Dave_T
11.01.2023, 01:41
I have a good understanding of boolean logic, I could literally teach a class on it. But I'm having a hard time wrapping my head around GHL's implementation. Frankly, I've had to resort to trial and error to get my statements to work! It's unclear whether or not I want a PL statement to evaluate to "true", or "false" in order to do something, like turning a pump on or off... It's also unclear whether or something will evaluate to "true", or "false" when used in a statement. Like, does "filter 1" in a statement evaluate to "true", when a feed pause is initiated? Other things like that...

I can give specific examples if you want, but I'd rather figure it out on my own if you can just point me to some documentation. Thanks!

And, I have a couple of feature requests along this vein. It would be great if there was a description field you could fill out with the PL statements. That way, you could document what they're doing and what they're used for. Otherwise you're stuck with trying to reverse engineer what you did, if you refer back to the logic weeks or months later. It would also be great if PL statements would tell you where they're referenced. As a system implementation gets more complicated, you can end up with orphaned PL statements, but it's hard to be sure whether or not (or where) they're used, without poking around and looking at all your switch channels, etc.

Gael
11.01.2023, 07:52
Hello Dave,

Here is the official documentation of the programmable logics:
https://www.aquariumcomputer.com/downloads/programmable-logic-instructions/

We also have the following knowledge base articles:
https://www.aquariumcomputer.com/knowledge-base/programmable-logic-examples/
https://www.aquariumcomputer.com/knowledge-base/how-to-setup-a-maintenance-mode-delay/
https://www.aquariumcomputer.com/knowledge-base/how-to-setup-a-feed-pause-delay/
https://www.aquariumcomputer.com/knowledge-base/how-to-stop-dosing-when-ph-is-above-x/

There is a description field for each Programmable Logic but it is only available on the GHL Control Center software.
I therefore invite you to work on Programmable logic with GCC.

There is already a proposal for the evolution of programmable logics by adding real-time visualization of the state of each logic.
But I can't tell you when and if it will really be implemented.

Gaël

Dave_T
11.01.2023, 17:50
Thanks Gael!

Like probably most of your users, at least recent ones, I'm not going to use GCC. Is there any talk of adding a description field to the app interface?

That first link is useful, but it describes the programmable logic operators, which I already understand. I'm looking for something that explains how to determine the meaning of the input types. For example, I'd like my skimmer to come on when my return pump comes on, after a delay of 5 minutes. Could I control the skimmer with a programmable logic statement: "Pump 1" 'delayed on" "300"? But how do I tell GHL that the outlet connected to my return pump is "Pump 1"? That's the kind of thing I can't find documentation on. What is a "Pump" in the programmable logic lingo? Or when a feed pause (filter) is initiated, does referencing the "filter" in PL evaluate to "true", or "false" while the feed pause is active? That kind of thing.

The second link is out of date I think? It shows "Delayed Off" as being a "Function" on the programmable logic screen. But Delayed Off is now an operator, not a function, in the current implementation.

Gael
11.01.2023, 22:40
Hello Dave,

All descriptions available on GHLConnect are descriptions that are stored in the ProfiLux memory.
The descriptions for the programmable logics in GCC are only stored on the computer running GCC, so it is not possible to add them to GHLConnect without modifying the functioning of ProfiLux.
We generally do not modify the programmable logics very often so it is not incoherent to use GCC when you work on this specific part, GCC is a very comfortable software which allows to open several tabs at the same time, the logics to left of the screen and the switchs channels on the right, for example, which is useful for getting a global overview.

No, the knowledge base article is still valid, it says Function just above Operator.

"Pump" are pumps assigned to Pump groups.

"Filter" is use to get Feed pause status

Here is more information about the operation of your ProfiLux:
https://www.aquariumcomputer.com/downloads/profilux-4-programming-guide-v7-02/
https://www.aquariumcomputer.com/knowledge-base/how-the-profilux-aquarium-controller-works/

Gaël