AND_7_BOOL
Einleitung
Der Funktionsblock AND_7_BOOL ist ein generischer Baustein zur Berechnung der logischen UND-Verknüpfung. Er führt eine bitweise UND-Operation über sieben separate BOOL-Eingänge durch und gibt das Ergebnis auf einem einzigen BOOL-Ausgang aus. Der Block folgt dem ECC-Ausführungsmodell, bei dem eine Berechnung durch ein ankommendes Ereignis ausgelöst und mit einem ausgehenden Ereignis bestätigt wird.
Schnittstellenstruktur
Ereignis-Eingänge
REQ: Löst die Berechnung der UND-Verknüpfung aus. Beim Eintreffen dieses Ereignisses werden alle Daten-Eingänge (
IN1bisIN7) ausgelesen und verarbeitet.
Ereignis-Ausgänge
CNF: Bestätigt die abgeschlossene Ausführung. Dieses Ereignis wird nach der Berechnung generiert und liefert das Ergebnis
OUTmit.
Daten-Eingänge
IN1: UND-Eingang 1 (BOOL)
IN2: UND-Eingang 2 (BOOL)
IN3: UND-Eingang 3 (BOOL)
IN4: UND-Eingang 4 (BOOL)
IN5: UND-Eingang 5 (BOOL)
IN6: UND-Eingang 6 (BOOL)
IN7: UND-Eingang 7 (BOOL)
Daten-Ausgänge
OUT: Ergebnis der UND-Verknüpfung (BOOL). Der Ausgang ist nur
TRUE, wenn alle sieben Eingänge (IN1bisIN7) den WertTRUEhaben. In allen anderen Fällen ist der AusgangFALSE.
Adapter
Dieser Funktionsblock verfügt über keine Adapter-Schnittstellen.
Funktionsweise
Die Funktionsweise ist deterministisch und folgt der booleschen Algebra. Bei jedem Eintreffen des Ereignisses REQ wird die folgende Operation ausgeführt:
OUT := IN1 AND IN2 AND IN3 AND IN4 AND IN5 AND IN6 AND IN7
Unmittelbar nach der Berechnung des Ergebnisses wird das Bestätigungsereignis CNF zusammen mit dem aktuellen Wert von OUT ausgegeben.
Technische Besonderheiten
Generischer Baustein: Der Block ist als generischer Baustein gekennzeichnet (
GEN_AND). Dies bedeutet, dass er als Vorlage für die automatische Generierung ähnlicher Blöcke mit einer anderen Anzahl von Eingängen dienen kann.Ereignisgesteuert: Die Operation wird nur bei Bedarf durch ein Ereignis ausgeführt, was Ressourcen schont und eine klare Ablaufsteuerung ermöglicht.
Feste Eingangsanzahl: Dieser spezifische Block hat eine feste Anzahl von sieben Eingängen. Für eine andere Anzahl von Operanden muss ein entsprechender Block (z.B.
AND_2_BOOL,AND_4_BOOL) verwendet oder ein generischer Block instanziiert werden.
Zustandsübersicht
Der Block besitzt keinen internen Zustand im Sinne eines Speichers. Sein Verhalten ist rein kombinatorisch und ereignisgesteuert:
Ruhezustand: Wartet auf das Ereignis
REQ.Ausführungszustand: Bei
REQwerden alle Eingänge gelesen, die UND-Operation berechnet und das ErgebnisOUTgesetzt.Bestätigungszustand: Das Ereignis
CNFwird sofort gesendet, danach kehrt der Block in den Ruhezustand zurück.
Anwendungsszenarien
Sicherheitskette: Verknüpfung mehrerer Sicherheitsschalter (z.B. Not-Aus, Schutzgitter, Lichtschranke), wobei eine Maschine nur starten darf, wenn alle Schalter geschlossen (TRUE) sind.
Mehrfachbedingung: Prüfung, ob mehrere parallele Prozessschritte erfolgreich abgeschlossen wurden, bevor ein Folgeprozess gestartet wird.
Steuerungslogik: Implementierung von komplexen UND-Bedingungen in Ablaufsteuerungen oder Verknüpfungssteuerungen.
⚖️ Vergleich mit ähnlichen Bausteinen
AND_n_BOOL-Familie: Es existieren Blöcke mit identischer Funktion, aber unterschiedlicher Anzahl von Eingängen (z.B.,AND_2_BOOL,AND_8_BOOL).AND_7_BOOLfüllt die Lücke für Anwendungen, die genau sieben Bedingungen benötigen. Siehe: AND_7&(Bit-AND) Operator: WährendAND_7_BOOLnur mit BOOL-Datentypen arbeitet und ereignisgesteuert ist, kann der&-Operator in Structured Text (ST) auch auf Byte-, Wort- oder DWORD-Datentypen angewendet werden und wird zyklisch oder anweisungsgesteuert ausgewertet.Serielle UND-Verknüpfung: Das gleiche Ergebnis könnte durch die serielle Verkettung mehrerer
AND_2_BOOL-Blöcke erreicht werden.AND_7_BOOLbietet eine kompaktere und übersichtlichere Lösung.
Fazit
Der AND_7_BOOL ist ein spezialisierter, zuverlässiger und einfach zu verwendender Funktionsblock für die logische UND-Verknüpfung von sieben booleschen Signalen. Seine ereignisgesteuerte Architektur macht ihn ideal für die Integration in steuerungstypische Ablaufstrukturen innerhalb der 4diac-IDE. Für Anwendungen mit einer anderen Anzahl von Eingängen sollte auf die entsprechende Variante der AND_n_BOOL-Familie zurückgegriffen werden.