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
- Die Logik des HS/FS arbeitet ereignisgesteuert.
- Sie wird nicht zyklisch abgearbeitet.
- Bei jedem Eintreffen eines Telegramms wird der Logikbaustein neu berechnet. Bausteine, die
zeitgesteuert sind, führen nach Ablauf der eingestellten Zeit eine Neuberechnung durch.
- Der HS/FS hält nach dem Start ein Prozessabbild im Speicher. Dieses wird permanent durch
Abhören des gesamten Telegrammverkehrs des angeschlossenen EIB und der internen Prozesse
gebildet. Während des Betriebs ist ein Scan von Gruppenadressen normalerweise nicht notwendig.
Sollte es notwendig werden, z.B. beim Austausch von EIB-Komponenten, so steht ein Befehl dafür zur Verfügung.
Wie arbeitet die Logik im HS/FS
- Zuerst werden die Gruppenadressen gescannt (mit Flag "Beim Starten abfragen").
- Dann wird die Logik initialisiert:
- Hat ein Eingang einen Fixwert, wird der Eingang auf diesen Wert gesetzt.
- Die anderen beschalteten Eingänge werden auf den Wert des ersten zugeordneten
Kommunikationsobjektes gesetzt (dies ist entweder der gescannte Wert oder der
Initialisierungswert des Kommunikationsobjektes)
- Die nicht beschalteten Eingänge werden auf den Initialisierungswert des Eingangs
gesetzt.
- Jetzt werden je nach Einstellung des Logikgatters ("Neuberechnung beim Start") die Ausgänge
berechnet.
- Damit ist der Initialisierungsvorgang abgeschlossen.
- Im laufenden Betrieb wird bei jedem eingehenden Telegramm der Baustein neu berechnet.
- Alle Eingänge haben dabei den Wert des zuletzt eingegangenen Telegramms.
- Ob der Ausgang sendet, richtet sich nach dem berechneten Wert und der Einstellung "Send by
Change".
Eine detailierte
Beschreibung des Ablaufes liegt
vor.
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.
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.
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.
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.
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.
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.
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.