Logik

Mit der App Logik kannst Du komplizierte Operationen ausführen, für die es sonst keine App gibt. Das kann z.B. eine Steuerung der WC-Lüftung, eine Steuerung eines Licht-Trafos usw. sein. Wenn Du die Logik verwenden willst, solltest Du schon ein gewisses Grundverständnis davon haben. Wenn Du neu im Bereich Logik bist, solltest Du diese nur mit Bedacht benutzen.

Du findest die Logik unter „Alle Apps“ – „Logik“.

Programm

Um eine Logik zu erstellen, brauchst Du als erstes ein Logikprogramm. Dies ist vergleichbar mit einem Netzwerk in der SPS-Programmierung. In einem Programm findest Du dann die Logikbausteine, welche für deine Steuerung verwendet werden. Hast Du z.B. eine Steuerung für die WC-Lüftung und eine für einen Licht-Trafo, so kannst Du für jede Steuerung ein eigenes Programm anlegen.

Erstellen

Um ein Logikprogramm zu erstellen, öffne die Logik und wähle „Programm hinzufügen“. Dann öffnet sich das Operatorpanel des Logikprogrammes. Dort vergibst Du als erstes Name und optional Raum für dieses Logikprogramm.

Parameter

Im Operatorpanel des Logikprogrammes findest Du einen Punkt „Parameter“ in dem alle Parameter zur schnellen Einstellung des Programmes aufgelistet sind (Parameter werden im Kapitel Datenbausteine beschrieben). Die Werte der Parameter gehen bei einem Ausfall des Controllers nicht verloren.

Status

Im Punkt Status findest Du ein Diagramm welches Dir die benötigte Zeit für das Ausführen dieses Programmes darstellt.

Steuerbefehl und Statustext

Jedes Logikprogramm kann einen Steuerbefehl und einen Statustext beinhalten. Für den Steuerbefehl kannst Du einen Datenbaustein vom Typ Bool auswählen und für den Statustext einen Datenbaustein vom Typ String (Text). Dies kannst Du im Parameterpanel unter „Steuerbefehl und Statustext wählen“.

Der Steuerbefehl ist dafür gedacht um das Logikprogramm über das Objectpanel zu aktivieren bzw. zu deaktivieren. Du kannst den Steuerbefehl über das Icon links am Objectpanel umschalten.

Der Statustext wird im Objectpanel unter dem Namen des Programmes angezeigt. Dieser kann z.B. lauten: „Lüftung wird in 2min ausgeschaltet“.

Logik editieren

Wenn Du die Logik in diesem Programm editieren willst, so machst Du das über den Button „editieren“ im Parameterpanel unter dem Punkt „Logik editieren“.

Importieren/Exportieren

Willst Du dieses Logikprogramm irgendwo speichern, so kannst Du dies über den Button „Exportieren“ im Parameterpanel unter dem Punkt „Import/Export“.
Um ein Logikprogramm zu importieren, musst Du den Button „Importieren“ (direkt unter dem Button „exportieren“ wählen. Hier musst Du beachten, dass die bereits vorhandene Logik in diesem Programm verloren geht. Des Weiteren musst Du noch beachten, wenn Logikelemente beim Exportieren programmübergreifend miteinander verbunden waren, so sind sie das beim Importieren nicht mehr.

Farbe und Icon

Du kannst deinem Logikprogramm eine Farbe und ein Icon zuweisen. Dies machst Du im Parameterpanel im Punkt „Einstellungen“ indem Du auf die aktuelle Farbe / das aktuelle Icon klickst.

Bausteine

Bausteine sind all jene Logikelemente welche Du einem Logikprogramm hinzufügen kannst (UND, ODER, etc.).

Erstellen

Um ein Logikelement zu erstellen, musst Du dich zuerst im Logikprogramm befinden. Wenn nicht öffne das Logikprogramm und wähle im Parameterpanel im Punkt „Logik editieren“ den Button „editieren“ aus. Danach kannst Du über „Funktion hinzufügen“ neue Logikelemente diesem Programm hinzufügen. Dies funktioniert indem Du auf das entsprechende Element klickst.

Farben eines Elementes

Wenn ein Logikelement einen Fehler hat, oder wenn dieses einfach nicht aktiviert ist, siehst Du an der Farbe dieses Elementes.

Grün
Das Element ist in Ordnung.

Orange
Der Ausgang dieses Elementes wird simuliert.

Grau
Das Element hat zwar keine Fehler, jedoch ist es deaktiviert.

Rot
Das Element hat einen Fehler. Entweder hat ein Eingang keinen Wert oder der Ausgang mit dem es verknüpft ist existiert nicht mehr.

Verbinden von Elementen

Das Operatorpanel jedes Logikelementes (außer Datenbausteine) ist nach demselben Prinzip aufgebaut. Zuerst findest Du die Einstellung (wenn vorhanden), dann die Eingänge und dann der Ausgang.

Hier siehst Du die Auswahl eines Einganges.

Mit dem Button „auswählen“ kannst Du einen Ausgang eines anderen Logikelementes wählen, welcher mit diesem Eingang verbunden werden soll.

Mit der Checkbox unter „invertiert“ kannst Du den Eingang invertieren (falls er vom Typ Bool ist).

Mit der Checkbox unter „Fixwert“ kannst Du diesem Eingang einen fixen Wert zuweisen. D.h. wenn Du diese Checkbox aktivierst, erscheint beim Typ Bool in der Mitte eine Checkbox mit dem Text „Wert“ mit der Du den Zustand dieses Einganges steuern kannst. Wenn du diese Checkbox bei einem Eingang vom Datentyp Number (Zahl) oder String (Text) aktivierst, so erscheint ein Eingabefeld in das Du dann den gewünschten Wert eintragen kannst.

Datenbausteine

Datenbausteine sind Zwischenspeicher für Werte. D.h. Datenbausteine können über andere Logikelemente, indem man beim Ausgang diesen Datenbaustein auswählt, beschrieben werden (jedoch nur wenn beide den gleichen Datentyp haben). Datenbausteine können auch mit Eingängen von Logikelementen verknüpft werden. Jeder Datenbaustein hat im Operatorpanel die Option „Parameter“. Solltest Du diese Option aktivieren, so siehst Du diesen Datenbaustein im Operatorpanel der zugehörigen Logikgruppe und kannst diesen von da aus ändern. Dies hat den Vorteil, dass Du nicht immer das Logikprogramm öffnen musst um den Wert zu ändern. Parameter bedeutet auch, dass der Wert des Datenbausteines bei einem Ausfall des Controllers erhalten bleibt.

Zusätzlich kann auch die Option "Anzeigewert" aktiviert werden. Dadurch wird der Wert im OperatorPanel der Logikgruppe gelistet, kann jedoch nicht geändert werden. Nur Datenbausteine können weiterhin auf den Wert schreiben.

Du kannst den Wert jedes Datenbausteines über das Objectpanel ändern. Beim Datenbaustein vom Typ Bool und Number kannst Du dies auf der linken Seite des Objectpanels und beim Datenbaustein vom Typ String kannst Du dies im Eingabefeld auf der rechten Seite.

UND

Bei dem Element „Und“ handelt es sich um eine klassische Und-Verknüpfung. D.h. der Ausgang wird auf true, sobald ALLE Eingänge true sind. Dieses Element kann zwischen zwei und sechs Eingänge haben. Die Anzahl der Eingänge kann über das Operatorpanel mit den Buttons „Pin hinzufügen“ und „Pin entfernen“ geändert werden.

ODER

Bei dem Element „Oder“ handelt es sich um eine klassische Oder-Verknüpfung. D.h. der Ausgang wird auf true, sobald mindestens ein Eingang true ist. Dieses Element kann zwischen zwei und sechs Eingänge haben. Die Anzahl der Eingänge kann über das Operatorpanel mit den Buttons „Pin hinzufügen“ und „Pin entfernen“ geändert werden.

Komparator

Der Komparator vergleicht die Werte der zwei Eingänge miteinander und schaltet dementsprechend den Ausgang.

Folgende Einstellungen kannst Du im Operatorpanel vornehmen.

Typ
Hier wählst Du die Art des Vergleiches (größer >, kleiner <, größer gleich >=, kleiner gleich <=, gleich =)

Hysterese
Falls Du eine Hysterese benötigst, kannst Du diese hier definieren.

Ansprechzeit
Mit der Ansprechzeit gibst Du an wie lange ein Vergleich erfüllt sein muss, damit der Ausgang auf true geschaltet wird.

Zeitrelais

Mit dem Zeitrelais kannst Du einen Ausgang verzögert ein- bzw. ausschalten oder für eine bestimmte Dauer eingeschaltet lassen.

Das Zeitrelais besitzt zwei Typen, welche Du unter „Verwendete Zeiten auswählen“ einstellen kannst.

Ein- und Ausschaltverzögerung
Ist der Eingang true, so wird der Ausgang erst nach der gewählten Einschaltverzögerung true. Springt der Eingang von true auf false, wird der Ausgang erst nach der gewählten Ausschaltverzögerung false.

Einschaltverzögerung und Dauer
Hier erscheint die Option „Eingang als Flanke“. Hast Du diese Option nicht aktiviert, so muss der Eingang mindestens für die Einschaltverzögerung true sein, damit der Ausgang für die eingestellte Dauer true wird und nach dieser Dauer (unabhängig vom Eingang) wieder false wird. Hast Du diese Option aktiviert, so reicht eine Flanke am Eingang und der Ausgang wird nach der Einschaltdauer für die eingestellte Dauer true und dann wieder false.

Zeitmessung

Die Zeitmessung stellt eine Stoppuhr dar. Über die Eingänge Aktiviert und Reset kann die Zeitmessung gestartet und gestoppt bzw. zurückgesetzt werden.

Springt der Eingang Aktiviert von false auf true, so startet die Stoppuhr. Springt der Eingang Aktiviert von true auf false, so bleibt die Stoppuhr stehen, wenn “Autoreset” NICHT aktiviert wurde. Wurde “Autoreset” aktiviert, so wird die Stoppuhr bei einem Wechsel von Aktiviert von true auf false zurückgesetzt.

Mit dem Eingang Reset kann die Stoppuhr zurückgesetzt werden. Dies funktioniert jedoch nur, wenn “Autoreset” nicht aktiviert wurde.

Wertzuweisung

Mit der Wertzuweisung kann ein beliebiger Wert dem Ausgang zugewiesen werden.

Sobald der Eingang Aktiviert wurde, wird der Eingang von E1 auf den Ausgang A1 geschrieben.

Zähler

Mit dem Zähler kann ein numerischer Wert (Zählerstand) vergrößert, verkleinert und auf 0 zurückgesetzt werden.

Mit dem Eingang “Up” wird bei jeder Änderung des Einganges von false auf true der Zählerstand um eins vergrößert, mit dem Eingang “Down” um eins verkleinert und mit “Reset” wird der Zählerstand auf 0 zurückgesetzt.

Flankenerkennung

Mit der Flankenerkennung können steigende bzw. fallende Flanken ausgewertet werden. D.h. tritt am Eingang die gewählte Flanke auf, so schaltet der Ausgang für einen Zyklus auf true und anschließend wieder auf false.

Den Typ der Flanke wählst Du im Operatorpanel unter dem Punkt „Einstellungen“ aus.

Funktionsgenerator

Mit dem Funktionsgenerator kann ein periodisches Rechtecksignal erzeugt werden.

Sobald am Eingang Aktiviert der Wert true anliegt, wird der Funktionsgenerator gestartet und am Ausgang ein periodisches Rechtecksignal erzeugt.

Mit “TOn” kann eingestellt werden, wie lange das Rechtecksignal auf true ist und mit “TOff” wie lange es auf false ist.

Funktion

Mit dem Funktionsbaustein können mathematische Berechnungen durchgeführt werden. Unter “A1″ muss die gewünschte Berechnung angegeben werden.

Die Variablen E1 bis E6 können für die Berechnung verwendet werden. z.B.: A1 = 2*E1 + E2

Sobald der Eingang Aktiviert aktiv ist, wird die Berechnung durchgeführt.

Mit den Buttons “Pin hinzufügen” und “Pin entfernen” können bis zu 6 Eingänge hinzugefügt werden.

Welche Operationen verwendet werden können, siehst Du hier:
Mozilla - Funktionsbeschreibung

Rücksetzen

Mit dem Rücksetzen Baustein wird, solange der Eingang true ist, der Ausgang auf false gesetzt.

Setzen

Mit dem Setzen Baustein wird, solange der Eingang true ist, der Ausgang auf true gesetzt.

SR Flip Flop

Mit dem SR Flip Flop kannst Du den Ausgang setzen und zurücksetzen. Ist der Eingang “Set” auf true, so wird der Ausgang true. Ist der Eingang “Reset” true, so wird der Ausgang false. Sind beide Eingänge true, so ist der Ausgang false. Sind beide Eingänge false, so wird der Ausgang gespeichert, d.h. er bleibt immer im gleichen Zustand bis ein Eingang wieder true ist.

Textblock

Mit dem Textblock können beliebige Zeichenketten erstellt werden.

Es können 1 bis 6 Eingänge (E1-E6) mit den Buttons “Pin hinzufügen” und “Pin löschen” erstellt werden und der Text dieser Eingänge wird dann aneinandergereiht.

Z.B. wird für E1 der Text “Es ist ” gewählt und für E2 wird die aktuelle Zeit angegeben (durch den Button “auswählen” und unter “System” und dann “Zeit”), so wird die folgende z.B. Zeichenkette erzeugt “Es ist 07:56″.

PI-Regler

Hierbei handelt es sich um einen getakteten PI-Regler bei dem Du Soll-, Istwert und Clock vorgibst.

Im Parameterpanel findest Du die Einstellmöglichkeiten des PI-Reglers.

Beispiele

Hier findest Du Beispiele zur Erstellung eines Logikprogrammes.

WC Ventilator

Aufgabenstellung
Wenn das Licht im WC eingeschaltet wird, soll 15 Sekunden nach dem Einschalten des Lichtes der Lüfter (welcher an einem Digitalen Ausgang angeschlossen ist) eingeschaltet werden. Wenn das Licht im WC wieder ausgeschaltet wird, soll der Lüfter sich eine Minute danach ausschalten. Wird das Licht wieder ausgeschaltet bevor der Lüfter eingeschaltet wird, so soll der Lüfter nicht eingeschaltet werden.

Lösen der Aufgabe
Als erstes öffnest Du die App Logik und erstellst über “Programm hinzufügen” ein Logikprogramm.

Diesem Logikprogramm gibst Du dann den Namen WC-Lüftung und wählst als Bereich WC aus.

Danach öffnest Du das Logikprogramm über den Button “editieren”. Dort fügst Du dann über “Funktion hinzufügen” ein Zeitrelais hinzu. Dieses Zeitrelais hat nun die Farbe rot, d.h. es funktioniert noch nicht, weil noch keine Eingänge gesetzt wurden.

Nun öffnest Du das Zeitrelais. Da sich der Ausgang erst nach 15 Sekunden einschalten soll, benötigst Du eine Einschaltverzögerung von 15 Sekunden. Deshalb stellst Du bei Einschaltverzögerung auf Fixwert um und gibst dieser den Wert 15. Bei der Ausschaltverzögerung machst Du das selbe, nur statt 15 wählst Du den Wert 60, da sich die Lüftung erst eine Minute (= 60 Sekunden) nach dem Ausschalten des Lichtes wieder ausschalten soll.

Jetzt musst Du den Ein- und Ausgang verknüpfen. Dazu wählst Du beim Eingang E1 den Button “auswählen” aus und navigierst zu den Lichtern, wählst das gewünschte Licht aus und wählst “Licht eingeschaltet”. Nun siehst Du im Objectpanel des Zeitrelais den aktuellen Wert des Lichtes und wie sich dieser beim Ein- und Ausschalten des Lichtes ändert. Nun musst Du nur noch den Ausgang des Zeitrelais mit dem digitalen Ausgang verknüpfen. Dazu klickst Du unter “Ausgang” auf den Button “auswählen”, navigierst zu den Digitalen Ausgängen, wählst dort den gewünschten Ausgang aus und klickst auf “Wert setzen”.

Danach kannst Du deine WC-Lüfter Steuerung schon testen ob alles wie gewünscht funktioniert.

Licht Trafo Steuerung

Aufgabenstellung
Es sind 4 Lichter und ein Licht-Trafo vorhanden. Der Licht-Trafo ist an einem digitalen Eingang angeschlossen. Sobald mindestens ein Licht eingeschaltet ist, muss der Licht-Trafo eingeschaltet sein. Wenn kein Licht eingeschaltet ist, muss der Licht-Trafo auch ausgeschalten sein.

Lösen der Aufgabe
Als erstes öffnest Du die App Logik und erstellst über “Programm hinzufügen” ein Logikprogramm.

Diesem Logikprogramm gibst Du dann den Namen Licht-Trafo.

Danach öffnest Du das Logikprogramm über den Button “editieren”. Dort fügst Du dann über “Funktion hinzufügen” ein Oder hinzu. Dieses Oder hat nun die Farbe rot, d.h. es funktioniert noch nicht, weil noch keine Eingänge gesetzt wurden.

Nun öffnest Du das Oder und fügst zwei Eingänge über den Button “Pin hinzufügen” hinzu. Diese vier Eingänge verknüpfst Du dann über den Button “auswählen” mit den vier Lichtern indem Du bei jedem Licht “Licht eingeschaltet” wählst. Nun wird das Oder grün, weil alle Eingänge verknüpft wurden. Zum Schluss musst Du nur noch den digitalen Ausgang des Trafos mit dem Oder verbinden. Das machst Du indem Du unter “Ausgang” den Button “auswählen” klickst, dort die digitalen Ausgänge öffnest und beim gewünschten digitalen Ausgang “Wert setzen” wählst.

Nun funktioniert die Logik schon wie gewünscht.

Feuchtigkeitssteuerung für das Baezimmer

Aufgabenstellung
Du misst die Feuchtigkeit eines Raumes und willst, sobald die Feuchtigkeit einen bestimmten Wert überschritten hat, die Belüftung einschalten.

Lösen der Aufgabe
Dazu musst Du zuerst den Feuchtigkeitssensor an einen analogen Eingang eines Analogmodules anschließen und dementsprechend konfigurieren (wie das funktioniert, kannst Du im Kapitel „Analog Eingang“ nachlesen). Die Belüftung schließt Du an einem Ausgang eines Digitalmodules an.

Danach erstellst Du ein Logikprogramm in der App „Logik“ mit „Programm hinzufügen“. Diesem Programm gibst Du dann einen sinnvollen Namen (z.B. Belüftungssteuerung) und wenn Du möchtest auch einen Raum. Danach öffnest Du das Parameterpanel und wählst „editieren“ unter „Logik editieren“. Dort fügst Du über „Funktion hinzufügen“ einen Komparator hinzu.

Danach öffnest Du das Operatorpanel dieses Komparators. Unter dem Punkt „Einstellungen“ wählst Du zuerst bei „Typ“ den Wert „größer“ aus (da die Belüftung eingeschaltet werden soll, wenn die Feuchtigkeit GRÖSSER als ein bestimmter Wert ist). Die Hysterese dieses Komparators kannst Du selbstständig anpassen. In diesem Beispiel wählst Du für die Hysterese 5 aus. Die Ansprechzeit belässt Du bei 0. Nun ist der Komparator richtig eingestellt. Jetzt musst Du nur noch die Ein- und Ausgänge verbinden. Dazu wählst Du unter „Eingänge“ bei „E1“ den analogen Eingang aus, an dem Du den Feuchtigkeitssensor angeschlossen hast. Bei „E2“ stellst Du den Wert ein, ab dem sich die Belüftung einschalten soll. In diesem Beispiel wählst Du 80. Nun musst Du noch unter „Ausgang“ über den Button „auswählen“ den digitalen Ausgang wählen, an dem Du die Belüftung angeschlossen hast.

Danach ist die Belüftungssteuerung fertig. Wenn Du willst, kannst Du noch nach Belieben die Hysterese und die Ansprechzeit anpassen.