Allgemeines zur Logik
Inhalt
Haftungsausschluss
Auch wenn die Unterlagen mit großer Sorgfalt erstellt und geprüft sind, können Fehler nicht vollkommen ausgeschlossen werden.

Technische Änderungen bleiben vorbehalten!
Grundsätzliches
Wie arbeitet die Logik im HS/FS
Eine detailierte Beschreibung des Ablaufes liegt vor.
Verhalten beim Start
Bei Neustart des HS/FS sollten die Werte der Gruppenadressen ausgelesen (abgescannt) werden. Damit wird sichergestellt, dass der HS/FS die aktuellen Zustände kennt.

Für das Scannen von Gruppenadressen und deren Zuständen bzw. Inhalten ist es erforderlich, entsprechend den Regeln des EIB, Leseflags in den entsprechenden Kommunikationsobjekten der angeschlossenen Teilnehmer zu setzen. Welche Gruppenadressen vom HS/FS abgefragt werden wird im HS/FS-Experten unter Kommunikationsobjekte eingestellt.
Initialisierungswert
Beim Start des HS/FS werden zunächst alle Eingänge abgefragt. Bei Mehrfachzuordnungen von Kommunikationsobjekten wird nur der Wert des ersten Objektes abgefragt (im Beispiel die Gruppenadresse 7/1/0). Der Zustand/Wert eines EIB Kommunikationsobjektes hängt von den Einstellungen "Scan bei Start" und "Initialwert" ab. Bevor die Logik abgeprüft wird, müssen zuerst die Zustände aller EIB Objekte ermittelt werden (Scan-Vorgang ist komplett abgeschlossen). Jeder Logikbaustein wird beim Start einmalig berechnet, sofern dies bei dem Baustein angegeben ist.

Beispiel

Zunächst werden die Zustände aller EIB Kommunikationsobjekte ermittelt. Wurde in den EIB Kommunikationsobjekten 7/1/0 bis 7/1/3 "Scan bei Start" ausgewählt, fragt der HS/FS beim Start die jeweiligen Zustände ab. Nach Abschluss aller Abfragen werden die Zustände der jeweils ersten Zuordnung verglichen. Zustand 7/1/0 wird mit 7/1/2 verglichen und das Verknüpfungsergebnis an 8/1/0 ausgegeben.
Telegrammratenbegrenzung
Der HS/FS sendet maximal 20 EIB-Telegramme pro Sekunde (Frequenz) auf den EIB. Liegen mehr Sendetelegramme an, so werden diese in einer Warteschlange im HS/FS zwischengespeichert. Mit dieser Frequenz werden die Werte dann auf den EIB gesendet bis die Warteschlange entleert ist. Die Frequenz kann verändert werden. Der Standardwert beträgt 6 Telegramme pro Sekunde.
Die Frequenz kann unter Projekt\EIB-/iETS-Anbindung verändert werden.
Ausführen von Befehlen
Besonderheit der HS/FS-Logik ist, dass jedem Ausgang HS/FS-Befehle zugeordnet werden können.
Die Befehle werden nur ausgeführt, wenn über den zugehörigen Ausgang ein Telegramm mit dem Wert ungleich Null gesendet wird.
Einem Baustein können beliebig viele Befehle zugeordnet werden. Diese werden in der Reihenfolge der Zuordnung abgearbeitet.
Logisch "wahr" und "falsch"
In den Logikbausteinen wird unterschieden zwischen dem Wert Null und dem Wert ungleich Null des Eingangstelegramms.

Null entspricht Falsch, False oder Aus.
Ungleich Null entspricht Wahr, True oder Ein.
Hinweis: Negative Werte sind ungleich Null und damit Wahr.
Typkonvertierung
Bei der Zuweisung von Kommunikationsobjekten wird nur zwischen den Typen Text und Numerisch unterschieden. Ein-/Ausgänge vom Typ Text können nur K.-Objekte mit dem Datentyp 14 Byte zugewiesen werden. Ein-/Ausgänge vom Typ Numerisch können K.-Objekte mit allen numerischen Datentypen (z.B. 1 Bit, 16 Bit, usw.) zugewiesen werden. Es erfolgt eine "implizierte Wandlung". Hier gilt die oben beschriebene Definition für "Wahr" und "Falsch". Damit entfallen Befehle zur Konvertierung. Es gibt Ausgänge, die den Wert - unabhängig von der Größe der Eingangswerte - auf Null oder Eins reduzieren (Siehe "Belegung der Ausgänge").
Verknüpfung der Logik-Bausteine
Die Verknüpfung der Logikbausteine kann über Kommunikationsobjekte (interne/EIB) oder direkt durch die Zuordnung eines Ausgangs zu einem Eingang erfolgen.
Hinweis: Es wird jedoch empfohlen, nach Möglichkeit die Ein-/Ausgänge der Bausteine direkt zu verbinden.
Belegung der Eingänge
Jedem Eingang können beliebig viele Kommunikationsobjekte oder Ausgänge zugeordnet werden, pro Eingang ist jedoch nur ein Fixwert möglich.

Beim Start des HS/FS werden nur die jeweils als erstes zugeordneten Eingangsobjekte abgeprüft.
Danach werden alle Eingangstelegramme ausgewertet.

Beispiel 1:

Beiden Eingängen (E1, E2) werden jeweils zwei Gruppenadressen zugeordnet. Bei jedem Telegramm, das neu eintrifft, wird das Ergebnis neu berechnet. Dabei wird immer der letzte Zustand des zweiten Eingangs mit dem Wert des ersten Eingangs verglichen, an dem das neue Telegramm eingetroffen ist. Das Ergebnis der Verknüpfung wird an die Gruppenadresse 8/1/0 gesendet.

Beispiel 2:

Dem Eingang E2 wird eine Konstante (Fixwert) zugeordnet. Beim Eintreffen eines Telegramms der Gruppenadressen 7/1/0 oder 7/1/1 werden diese mit der Konstanten Fix 1 verglichen. Das Ergebnis der Verknüpfung wird über den Ausgang A1 an die Gruppenadresse 8/1/0 gesendet. Eine Zuordnung einer Konstanten (z.B. "Fix 1"), die nicht an erster Position eines Eingangs steht, hat keine Bedeutung! Die Konstante bestimmt beim Start einmalig den Wert des Eingangs. Später wird der Eingang durch den Wert des letzten Telegramms bestimmt.

Beispiel 3

Eingang E2 wird kein Wert zugeordnet. Damit ist der Zustand von E2 durch einen so genannten "Initialwert" vorbelegt. Das UND-Gatter hat per Definition den Wert 1. Nachfolgend wird der Initialwert bei jedem Logikbaustein beschrieben. Beim Eintreffen eines Telegramms der Gruppenadressen 7/1/0 oder 7/1/1 werden diese mit der Vorbelegung (Wert=1) verglichen.
Das Ergebnis der Verknüpfung wird über den Ausgang A1 auf die Gruppenadresse 8/1/0 gesendet.
Initialwert des Eingangs
Jeder Eingang wird mit einem Initialwert vorbelegt. Dieser Wert wird bei der Logikberechnung angenommen, wenn der Eingangswert undefiniert ist (z.B. wenn der Eingang nicht belegt ist).
Negieren des Eingangs
Eingangswerte können negiert werden. Der Eingangswert wird zuerst negiert und dann verarbeitet.
Belegung der Ausgänge
Jedem Ausgang können beliebig viele Kommunikationsobjekte oder Eingänge zugeordnet werden. Alle Zuordnungen erhalten den Wert des Ausgangs.

Beispiel:

Das Ergebnis der Verknüpfung von E1 & E2 wird auf alle dem Ausgang A1 zugeordneten Gruppenadressen gesendet. Die Ausgangsobjekte werden in der Reihenfolge der Zuordnung ("von oben nach unten") auf den EIB gesendet.
Initialwert (Startwert) des Ausgangs
Jeder Ausgang wird intern im HS/FS mit einem Initialwert vorbelegt, solange auch die Eingänge nur mit Initialwerten belegt sind. Die Werte am Eingang eines Logikbausteins richten sich danach, welche Initialwerte in den Kommunikationsobjekten der Teilnehmer hinterlegt wurden. Die Auswertung dieser Eingangswerte liefert dann auch die Ausgangswerte des Logikbausteins.

Liegen am Eingang eines Logikbausteins keine Werte eines Kommunikationsobjektes an, wird dieser Eingang über interne Einstellungen des HS/FS mit einem Initialwert beschaltet (Siehe auch "Belegung der Eingänge, Beispiel 3").

Beim Hochfahren des HS/FS wird der EIB nach angeschlossenen Teilnehmern gescannt. An den Aus- und Eingängen eines Logikbausteins liegen dann die Initialwerte der zugeordneten Kommunikationsobjekte an. Können den Aus- und Eingängen keine Werte zugeordnet werden, weil z. B. ein Teilnehmer nicht erkannt wurde, werden im HS/FS intern vorgegebene Initialwerte hinterlegt.
Verhalten der Ausgänge (Send, Send by Change, negiert)
Grundsätzlich wird zwischen vier Arten von Ausgängen unterschieden: "Send", "Send by Change" und beide jeweils negiert.

Send
Die Ausgänge mit der Kennzeichnung "send" senden bei jedem Telegrammeingang einen Wert aus. Der Wert ergibt sich aus der Auswertung der zugehörigen Eingangstelegramme durch den Logikbaustein.
Send by Change ("SbC")
Die Ausgänge mit der Kennzeichnung "send by change" senden nur bei jeder Ausgangsänderung einen Wert aus. Das bedeutet: Werden die Eingänge mit Werten beschaltet, deren Auswertung im Logikbaustein eine Änderung des Wertes am Ausgang "send" hervor ruft, dann wird der Wert am Ausgang "send by change" gesendet. Bleibt der Wert an "send" erhalten, wird über "send by change" kein Telegramm versendet.
Beispiel: Das Ergebnis einer Verknüpfung hat den Wert 1. Nach Eintreffen eines neuen Telegramms sowie der Neuberechnung ist das Ergebnis immer noch 1. Über den Ausgang "send by change" wird jetzt kein Telegramm gesendet.
Beim Neustart des HS/FS senden bestimmte SbC-Ausgänge kein Telegramm. Das entspricht einer internen Einstellung (vorgegebene Initialwerte). Diese Ausgänge sind gekennzeichnet mit "Sendet nicht bei Neustart" (Siehe dazu auch nachfolgende "Wertetabelle Beispiel UND-Gatter"). Intern werden aber die Zustände berechnet und dann bei Eintreffen von neuen Telegrammen berücksichtigt.
Negiert "Send" und Negiert "Send by Change"
Das Ergebnis der Verknüpfung wird negiert. Ist das Ergebnis der Verknüpfung 1, so wird eine Negation durchgeführt: Das Ergebnis ist 0 (Null). Ist das Verknüpfungsergebnis 0 (Null) entsteht durch die Negierung eine 1.
Wertetabelle Beispiel UND-Gatter
  E1 E2 A1 (send) A1 negiert (send) A2
(send by Change)
A2
negiert
(Send by Change)
Verhalten bei HS-Start

Initialwerte
durch EIB-Scan ermittelt
1 1 1 0 - -
  - 1 1 0 1 -
  0 - 0 1 0 1
  - 0 0 1 - -
Verhalten bei Ausgang ist 1-bit-Wert
Die so gekennzeichneten Ausgänge wandeln den Wert des Ausgangstelegramms in 0 (Null) oder 1 um. Werte ungleich Null werden zu 1, Werte gleich Null werden zu Null.
Telegrammintervall im Logikbaustein
Nach dem Senden eines Telegramms über einen Ausgang sind alle Ausgänge für diesen Zeitraum gesperrt. Die Zeit wird in Sekunden angegeben. Der Minimalwert ist Null. Das bedeutet, dass der Baustein keine Zeitsperre hat. Dieser Wert ist der Standardwert eines Logikbausteins.
Verhalten beim Datentyp 14 Byte
Ab der Version 2.1.050511 können 14 Byte-Text in dafür vorgesehenen Bausteinen verwendet werden. Der grafische Logikeditor verhindert eine falsche Zuweisung des Datentyps auf dem jeweiligen Ein-/Ausgang.