logische Verknüpfungen

programmierbare Logik

Ein Thema, was viele scheuen ist die Verwendung von prog. Logiken. Eine Funktion, die seit der Firmware Version 4.00 im ProfiLux zur Verfügung steht, aber oftmals nicht zur Anwendung kommt. Dabei können wir hier logische Verknüpfungen bzw. zeitabhängige Abläufe einstellen und nutzen. Durch die vielen Variablen können fast unendlich viele realisiert werden.

Beispiele:

  • Regensimulation im Aquarium/ Terrarium wenn ein Gewitter vom ProfiLux simuliert wird
  • Simulation von Gewitter-/ Regengeräuschen
  • Schalten von Steckdosen z.B. bei der Fütterung
  • Steuerung von CO2 – Anlagen
  • und viele andere Automatisierungen mehr ... 

und noch vieles mehr – nur muss diese Möglichkeit genutzt und vorher verstanden werden! Wo immer möglich versuchen wir ein Anwendungsbeispiel aufzuführen, jedoch dient dieses nur zum besseren Verständnis und heißt nicht, das es nicht keinen einfacheren/ anderen Umsetzungsweg gibt (z.B. bei den direkten Einstellungen z.B. bei den Sensoren usw.). Auch wir sind im Bereich der programmierbaren Logik keine Profis und so sind wir auf „eure Unterstützung“ angewiesen.

Wer also Beispiele zur Umsetzung egal welcher programmierbaren Logik hat – bitte schickt uns euer Anwendungsbeispiel einfach zu (MAIL).

Warum ist das so kompliziert? – diese Frage gehen wir mal auf den Grund und versuchen euch den Umgang mit der programmierbaren Logik etwas näher zu bringen. Um etwas mehr Verständnis dafür zu haben, kommen wir nicht drum herum, uns einige Parameter vorher einmal genau anzuschauen!

Computer/ Steuerungen werden durch die „Programmierung“ zum Leben erweckt und das heißt, dass es eigentlich nur um „Einsen [1]“ und „Nullen [0]“ geht. Das müssen wir uns immer wieder vor Augen führen und bei der Nutzung von „programmierbaren Logik“:

die Zahl -> 1    steht für den Zustand -> EIN    und ist gleich Zustand -> true/ wahr/ high

die Zahl -> 0    steht für den Zustand -> AUS    und ist gleich Zustand -> false/ falsch/ low

Eine logische Operation (Funktion) hat ein oder mehrere Eingangszustände und immer einen Ausgangszustand. Der Ausgangszustand wird bestimmt durch die Eingangszustände und dem Operator. Dieser Operator bestimmt, wie die Eingangszustände verarbeitet (verknüpft) werden sollen!

Diesen Satz müssen wir erst einmal auf uns wirken lassen!

Als nächstes wenden wir uns dem Operator zu, diese ist in der Lage, verschiedene Eingangszustände zu verknüpfen und das auf unterschiedlicher Art und Weise.

Welche Operatoren gibt es?

die "NOT – Funktion"

Die NOT-Funktion (Rücksicht auf den eingestellten Eingangszustand) benötigt genau einen Eingang. Der Ausgang verhält sich immer genau umgekehrt zum Eingang.

Eingang -> 0 (=AUS)    Ausgang -> 1 (=EIN)

NOT

 

die "AND – Funktion"

Die AND-Funktion (Rücksicht auf Eingangszustände 1 und 2) benötigt 2 Eingänge. Der Ausgang ist nur dann EIN wenn beide Eingänge EIN sind.

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 0 (AUS)  Ausgang -> 0 (=AUS)

  Eingang 1 -> 1 (=EIN)    ⇒   Eingang 2 -> 0 (AUS)  Ausgang -> 0 (=AUS)

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 1 (EIN)  Ausgang -> 0 (=AUS)

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 1 (EIN)  Ausgang -> 1 (=EIN)

AND.png

 

die "OR – Funktion"

Die OR-Funktion (Rücksicht auf Eingangszustand 1 oder 2) benötigt 2 Eingänge. Der Ausgang ist nur dann EIN wenn mindestens ein Eingang EIN ist.

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 0 (AUS)  Ausgang -> 0 (=AUS)

  Eingang 1 -> 1 (=EIN)    ⇒   Eingang 2 -> 0 (AUS)  Ausgang -> 1 (=EIN)

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 1 (EIN)  Ausgang -> 1 (=EIN)

  Eingang 1 -> 1 (=EIN)    ⇒   Eingang 2 -> 1 (EIN)  Ausgang -> 1 (=EIN)

OR.png

 

die "NAND – Funktion"

Die NAND-Funktion (Rücksicht auf zwei Eingangszustände [nicht-und]) benötigt 2 Eingänge. Der Ausgang ist nur dann AUS wenn beide Eingänge EIN sind.

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 0 (AUS)  Ausgang -> 1 (=EIN)

  Eingang 1 -> 1 (=EIN)    ⇒   Eingang 2 -> 0 (AUS)  Ausgang -> 1 (=EIN)

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 1 (EIN)  Ausgang -> 1 (=EIN)

  Eingang 1 -> 1 (=EIN)    ⇒   Eingang 2 -> 1 (EIN)  Ausgang -> 0 (=AUS)

NAND.png

 

die "NOR – Funktion"

Die NOR-Funktion (Rücksicht auf zwei Eingangszustände [nicht-oder]) benötigt 2 Eingänge. Der Ausgang ist nur dann EIN wenn beide Eingänge AUS sind.

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 0 (AUS)  Ausgang -> 1 (=EIN)

  Eingang 1 -> 1 (=EIN)    ⇒   Eingang 2 -> 0 (AUS)  Ausgang -> 0 (=AUS)

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 1 (EIN)  Ausgang -> 0 (=AUS)

  Eingang 1 -> 1 (=EIN)    ⇒   Eingang 2 -> 1 (EIN)  Ausgang -> 0 (=AUS)

NOR.png

 

die "GLEICH – Funktion"

Die Gleich-Funktion (Rücksicht auf zwei gleiche Eingangszustände) benötigt 2 Eingänge. Der Ausgang ist dann EIN wenn beide Eingänge den gleichen Zustand haben.

 

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 0 (AUS)  Ausgang -> 1 (=EIN)

  Eingang 1 -> 1 (=EIN)    ⇒   Eingang 2 -> 0 (AUS)  Ausgang -> 0 (=AUS)

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 1 (EIN)  Ausgang -> 0 (=AUS)

  Eingang 1 -> 1 (=EIN)    ⇒   Eingang 2 -> 1 (EIN)  Ausgang -> 1 (=EIN)

GLEICH

 

die "UNGLEICH – Funktion"

Die Ungleich-Funktion (Rücksicht auf zwei ungleiche Eingangszustände) benötigt 2 Eingänge. Der Ausgang ist dann EIN wenn beide Eingänge einen unterschiedlichen Zustand haben.

 

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 0 (AUS)  Ausgang -> 0 (=AUS)

  Eingang 1 -> 1 (=EIN)    ⇒   Eingang 2 -> 0 (AUS)  Ausgang -> 1 (=EIN)

  Eingang 1 -> 0 (=AUS)   ⇒   Eingang 2 -> 1 (EIN)  Ausgang -> 1 (=AIN)

  Eingang 1 -> 1 (=EIN)    ⇒   Eingang 2 -> 1 (EIN)  Ausgang -> 0 (=AUS)

UNGLEICH.png

 

Was nun damit anfangen?

Wir haben also „Einsen“ und „Nullen“, also Eingangs- und Ausgangszustände sowie Operanten (Verknüpfungen) – aber was sollen wir damit anfangen? Das macht leider die Schwierigkeit aus, denn nur mit diesen Informationen lässt sich noch lange keine „logische Funktion“ programmieren.

Dazu benötigen wir die sogenannten „GATTER“, also eine Stelle in der Programmierung, wo die oben genannten Zustände nebst Verknüpfungen ausgewertet (errechnet) werden und als einziges logisches Ergebnis dem Ausgangszustand signalisiert wird.

Schauen wir uns die Operanten genau an, so bestehen sie aus genau definierten Vorgaben und dessen einzigen Ergebnis und das immer und unabhängig von der angeschlossenen Hardware. Sie bestehen also aus „vorher bestimmten Abläufen (Logik)“ die wir einstellen – „programmierbare Logik“!

ein paar Screenshot

Zum besseren Verständnis an dieser Stelle erst einmal ein paar Bilder aus der Software "GHL ControlCenter"! Die Funktion "programmierbare Logik" ist eigenständig in der Programmleiste der Software.

Folgende Tabelle zeigt sich nach der Anwahl der Funktion:

prog6

[Übersicht der Überschrift bei der "Eingabe/ Programmierung" von Logiken]

Kommen wir also kurz zu der "visuellen Ansicht" der "programmierbaren Logik" in der Software GHL CC! Nur schreiben und erklären hilft den meisten nicht weiter, deswegen zeigen wir euch im Folgendem alle Fenster wo eine Dateneingabe möglich/ erforderlich ist.

prog2.jpg

Ein doppelter Klick auf ein freies Gatter/ bzw. ein Gatter markieren und auf Bearbeiten klicken öffnet den Bearbeitenmodus für eine "programmierbare Logik"! Pro Gatter können maximal zwei Eingänge verknüpft werden. Zuweisen eines Einganges indem man auf Ändern hinter dem jeweiligen Eingang geht. Darunter wird die "Funktion" festgelegt durch Auswahl "DropDown - Menü"! Zum Schluss läßt sich noch eine Beschreibung im Programm bzw. im ProfiLux hinterlegen. Die Ansicht kann sich ändern je nach getroffener Auswahl.

prog3

Diese Abbildung zeigt das Fenster nach Auswahl "Ändern" eines Einganges. Hier besteht wieder die Auswahl mittels "DropDown - Menü" (Auswahlmöglichkeiten siehe nächste Abbildung). Hier legen wir die jeweilige Eingansfunktion (Eingang 1 und Eingang 2 haben identische Dateneingabefesnter) fest. Des weiteren läßt sich hier der gewählte Eingang "invertieren" (umkehren)!

prog4

Auf der Abbildung zu erkennen sind alle derzeit möglichen Eingangsquellen /-funktionen (Firmware 6.29) die in einer "Logik" verknüpft/ eingebunden werden können. Die Auswahl ist sehr umfangreich und lässt fast alles zu!

prog5

Nach der Auswahl des Einganges/ der Eingänge (max. Zwei) wird den Eingängen eine Funktion zugeordnet. Diese läßt sich per ebefalls schnell und einfach über ein "DropDown - Menü" auswählen. (die Funktionen haben wir oben erläutert)

 

Zeit – Funktionen

Der ProfiLux ist zusätzlich in der Lage, die logischen Verknüpfungen mit einer Zeitfunktion zu verbinden. Hierbei wird abhängig vom Eingangszustand, der Zeitfunktion und der eingestellten Zeit geschaltet. Hierbei sind Zeiten zwischen 1 Sekunde und 28.800 Sekunden (also 8 Stunden) einstellbar.

Hierbei können unterschiedliche vorprogrammierte Zeitabläufe eingestellt werden!


die "Puls – Funktion"

Wenn der Eingang von AUS auf EIN wechselt wird der Ausgang eingeschaltet. Nach Ablauf der eingestellten Zeit (hier im Beispiel 12s) wird der Ausgang wieder ausgeschaltet, unabhängig vom Zustand des Eingangs.

 

Puls Funktion

[Abbildung oben: grafische Darstellung der Puls - Funktion]

PULS

[Abbildung oben: Grafik aus GHL ControlCenter] 

die "Verzögert – Ein – Funktion"

Der Ausgang folgt dem Eingang beim Einschalten mit der eingestellten Verzögerungszeit (hier im Beispiel 9s), beim Ausschalten des Eingangs folgt der Ausgang sofort.

 

VerzoegertEin

[Abbildung oben: grafische Darstellung der Verzögert EIN - Funktion]

VERZOEGERT EIN

[Abbildung oben: Grafik aus GHL ControlCenter]

 

die "Verzögert – Aus – Funktion"

Der Ausgang folgt dem Eingang beim Einschalten sofort, wird der Eingang ausgeschaltet folgt der Ausgang mit der eingestellten Verzögerungszeit (hier im Beispiel 20s).

 

VerzoegertAus

[Abbildung oben: grafische Darstellung der Verzögert AUS - Funktion]

VERZOEGERT AUS

[Abbildung oben: Grafik aus GHL ControlCenter]

die "Zyklische – Funktion"

Solange der Eingang eingeschaltet ist schaltet der Ausgang abwechselnd EIN und AUS, die Schaltdauer wird durch die eingestellte Zeit bestimmt (hier im Beispiel 3s). Wenn der Eingang AUS ist dann ist auch der Ausgang AUS.

 

Zyklisch

[Abbildung oben: grafische Darstellung der Zyklische - Funktion]

ZYKLISCH

[Abbildung oben: Grafik aus GHL ControlCenter]

 

die "FlipFlop – Funktion"

Dies ist eine spezielle Funktion. Die Besonderheit ist dass der letzte Ausgangszustand bestehen bleibt solange die beiden Eingänge AUS sind. Der Ausgang wird eingeschaltet wenn der Set- Eingang EIN ist. Auch wenn der Set-Eingang kurz darauf wieder AUS ist bleibt der Ausgang EIN, und zwar so lange bis der Reset-Eingang EIN ist, dann ist der Ausgang wieder AUS.

 

FlipFlop

[Abbildung oben: grafische Darstellung der FlipFlop - Funktion]

SR FLIPFLOP

[Abbildung oben: Grafik aus GHL ControlCenter]

..und hier benötigen wir Eure Hilfe/ Zuarbeit!! 

Da wir hier auch gerne Beispiele aufführen würden, um anderen Aquarianer die Möglichkeiten der "programmierbaren Logik" aufzuzeigen, bitten wir euch, uns Beispiele per Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein. zu schicken, damit wir hier einige Beispiele aufzeigen können. Ob Wasserwechsel, Gewitter - Sound - Wiedergabe oder Futterautomaten .. hier gehört jegliche Art von Logik hin! 
Egal ob es mittlerweile auch einfacher (systemseitig) lösbar ist - eine funktionierende Logik als Beispiel kann Anregungen für andere Anwendungen aufzeigen.

Beispiel:
(Beispiel heißt nicht, das es keinen anderen (ggf. direkten) Weg als die Funktion „programmierbare Logik“ gibt!)

Sollten ihr gute allgemein nutzbarer programmierbare Logiken haben, so mailt (mailto: Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.) und doch diese als Beispiel und helft vielen Aquarianer bei dieser doch nicht so einfachen Programmierung!! 

Fazit

Wir hoffen, das dieses Thema jeden betroffen gemacht hat! Wir wissen, das viele sich an diese sehr "umfangreiche Funktion" nicht heran trauen, jedoch hoffen wir mit diesem Beitrag etwas Licht ins Dunkel gebracht zu haben. So das nun die Basic´s verstanden sind. Das ist die Grundvoraussetzung, um endlich mit der "prog. Logik" anzufangen.
Es sind nahezu alle Aufgaben möglich, so das alles, was nicht direkt mittels GHL ControlCenter programmierbar ist hier nachgeholt und umgesetzt werden kann.

 

Text-/Bildquellen:
GHL Advanced GmbH
Wikipedia
weiterführende Links
Logikgatter
Gatter