Inhalt dieser Seite
Einführung
Als Beispiel diene folgende einfache Aufgabenstellung: Es soll auf eine KNX-Adresse TRUE gesendet werden, sobald mindestens eine von drei Türen geöffnet wird.
Für diese Logik kann ein OR-Logik-Modul verwendet werden, es gibt TRUE aus, sobald an einem seiner Eingänge TRUE anliegt. Die fertig erstellte Logikzelle wird im Logikeditor wie folgt dargestellt:
Die Logik verwendet die drei KNX-Objekte K-1186, K-1187 und K-1187 als Eingänge, verarbeitet die dort erhaltenen Informationen in der Form einer ODER-Verknüpfung und gibt das Resultat an das KNX-Objekt K-1196 weiter.
Für den Anwender besteht eine Logik somit auf den ersten Blick aus drei Elementen:
Eingang resp. Auslöser (wird auf der linken Seite dargestellt): im Beispiel die drei KNX-Objekte, welche die drei Türzustände (offen/geschlossen) repräsentieren und an die drei Variablen “Input 1”, “Input 2” und “Input 3” übergeben werden; jede Wertänderung an einem dieser Eingänge löst die Abarbeitung der Logik aus.
Kernfunktion (ist bei bei einem Logikmodul fest vorgegeben oder wird bei einer Custom-Logik individuell vom Anwender codiert): im Beispiel die logische ODER-Verknüpfung.
Ausgang (wird auf der rechten Seite dargestellt): im Beispiel die Variable “Output”, welche an das KNX-Objekt für den gesammelte Türzustand (offen/geschlossen) übergeben wird.
Dieses Grundwissen reicht grundsätzlich aus, um erste Logiken anzulegen. Zusätzliche Informationen zu diesen Themen finden sich unter →Kernfunktion einer Logik, →Eingänge, →Ausgänge und →Triggerfunktion.
In einem nächsten Schritt sollte sich der Anwender mit der Frage auseinandersetzen, in welchen Schritten die Bearbeitung einer Logik intern abläuft, damit er weiss, wie er allenfalls auf den →Bearbeitungsprozess Einfluss nehmen kann. Wichtigster Merkpunkt für das Verständnis des Bearbeitungsprozesses ist die Erkenntnis, dass eine Logik (nur) abgearbeitet wird, wenn sie ausgelöst wird. Sie benötigt somit einen →Trigger. Im obigen Beispiel “triggert” jede Wertänderung an einem der drei Eingänge die Logik; dies genügt in vielen Anwendungsfällen.
Zweiter wichtiger Merkpunkt in diesem Zusammenhang ist, dass die Berechnung der Logik und alle daran anschliessen Bearbeitungsschritte über einen auf TRUE gestellten Inhibit-Eingang, resp. genauer über die dadurch ausgelöste →Abbruchfunktion gestoppt werden können.
Wer sich später vertiefter mit der Logikfunktion des TWS auseinandersetzen wird, wird rasch erkennen, dass der Logikeditor als Erweiterung der beiden Hauptelemente Eingang und Ausgang zusätzliche Funktionen, resp. Einstellungsmöglichkeiten zur Verfügung stellt. Diese werden unter →Weitere (optionale) Funktionen der Ein- und Ausgänge vorgestellt.
Kernfunktion einer Logik
Beim Anlegen einer Logik muss sich der Anwender entscheiden, ob er entweder eines der auf dem TWS fix installierten Logik-Module verwenden will, oder ob er eine eigene Custom-Logik codieren will.
Verwendung eines Logik-Modul
Aktuell stehen über 45 Logik-Module zur Verfügung; sie werden unter Eingebaute Logik-Module vorgestellt. Weil sie mit den Zusatzfunktionen der Ein- und Ausgänge kombiniert werden können, geht ihr Funktionsumfang wesentlich weiter, als dies im ersten Moment aufgrund der blossen Funktionsbeschreibung zu erahnen wäre. Auf diese Weise erhält bspw. bereits ein einfaches “AND”-Logik-Modul ein äusserst breites und umfassendes Einsatzfeld. Dies wird unter https://wiregate.atlassian.net/wiki/spaces/TSKB/pages/397803554/Die+Verwendung+der+Bausteine+am+Beispiel+des+AND-Moduls) anhand von Beispielen dargestellt.
Weitere Umsetzungsbeispiele finden sich unter Mit Logik-Modulen gelöste Aufgabenstellungen (Beispiele).
Erstellung einer Custom-Logik / Verwendung einer zur Verfügung gestellten Custom-Logik
Reicht die Funktionalität der Logik-Module nicht aus, erstellt sich der Anwender eine Custom-Logik; diese setzt sich aus Modulbausteinen, welche ähnliche Funktionen aufweisen wie die Logik-Module, zusammen.
Zudem werden aus der Community Fertige Custom-Logiken (Beispiele) zur Verfügung gestellt.
Eingänge
Eine Logik kann zwischen 0 und einer beliebigen Zahl von Eingänge verfügen; dabei wird zwischen drei Arten von Eingängen unterschieden:
Wertübergabe-Eingänge (in einer Logik meist als “Input” bezeichnet): Sie übergeben der Logik die zu verarbeitenden Werte
Sperr-Eingänge (“Inhibit”): Über ein TRUE auf diesem Eingang kann die Ausführung der Logik gesperrt werden, näheres dazu unten unter →Sperrfunktion)
Trigger-Eingänge (“Trigger”): Sie definieren weitere Elemente, die dieser Logik als Trigger dienen; näheres dazu unten unter →Triggerfunktion.
Die Eingänge haben für die Abarbeitung einer Logik folgende Funktionen:
sie übergeben Werte an die Logik (→Wertübergabefunktion)
sie lösen die Abarbeitung der Logikzelle aus (→Triggerfunktion), resp.
sie beeinflussen das Startverhalten der Logik (→Startfunktion),
sie können einen vom einem Objekt des Obkektsystem übergebenen Wert vor der Bearbeitung in der Logik logisch negieren (→Negationsfunktion),
sie können einen von einem Objekt des Objektsystems stammenden Wert umwandeln (→Konvertierungsfunktion über “Innerhalb Bereich”),
sie können einen von einem Objekt des Objektsystems stammenden Wert mit einer Vorgabe vergleichen (→Vergleichsfunktion).
Ausgänge
Eine Logik muss mindestens einen Ausgang haben, je nach Kernfunktion der Logik stehen u. U. auch mehrere Ausgänge zur Verfügung. Weil der der Anwender einem Ausgang mehrere Objekte des TWS-Objektsystems zuordnen kann, ist es faktisch möglich, mit einer Logik gleichzeitig mehrere Objekte zu bedienen.
Die Ausgänge haben für die Abarbeitung einer Logik folgende Funktionen:
sie übergeben Werte an Objekte des Objektsystems (→Wertübergabefunktion),
sie bestimmen,
bei welchem Ereignis die Ausgabewerte an das Objekt des Objektsystems übergeben werden soll (→Sendefunktion), und
ob diese Übergabe unmittelbar oder verzögert erfolgen soll (→Verzögerungsfunktion)
sie können einen Wert vor der Übergabe an das Objekt des Objektsystem logisch negieren (→Negationsfunktion),
sie können einen von einem Objekt des Objektsystems stammenden Wert umwandeln (→Konvertierungsfunktion über “Mapping”).
Weitere (optionale) Funktionen der Ein- und Ausgänge
Die GUI des Logikeditors stellt bei den Ein- und Ausgängen verschiedene Optionen zur Verfügung. Diese Optionen stellen - funktional betrachtet - Erweiterung der Kernfunktion des jeweils gewählten Logik-Moduls um weitere Funktionen dar. Oder mit Worten ausgedrückt. Jede dieser Optionen fügt der betreffende Logik - neben ihrer Kernfunktion - eine zusätzliche Funktion hinzu; damit wird das Programmieren einfach gemacht oder - wieder mit anderen Worten - es können mehrere prozedurale Funktionen miteinander kombiniert werden- ohne dass eine Custom-Logik erstellt werden muss.
Die Leistungsbreite dieses Konzepts wird unter https://wiregate.atlassian.net/wiki/spaces/TSKB/pages/397803554/Die+Verwendung+vom+Logik-Modulen+am+Beispiel+des+AND-Modulsvorgestellt.
→Wertübergabefunktion
→Konvertierungsfunktion
→Negationsfunktion
→Vergleichsfunktion
→Startfunktion
→Sendefunktion
→Verzögerungsfunktion
Kommentar hinzufügen