F_NOT_BOOL
Einleitung
Der Funktionsblock F_NOT_BOOL implementiert die logische NICHT-Funktion (Negation) für den Datentyp BOOL. Er invertiert den logischen Zustand eines binären Eingangssignals. Dieser Baustein gehört zu den Standard-Bit-Operatoren gemäß IEC 61131-3 und ist für die Verwendung in Steuerungsanwendungen konzipiert, in denen logische Verknüpfungen benötigt werden.
Schnittstellenstruktur
Ereignis-Eingänge
REQ (Service Request): Dieses Ereignis löst die Ausführung der logischen Negation aus. Bei seinem Eintreffen wird der aktuelle Wert am Daten-Eingang
INverarbeitet und das Ergebnis anOUTausgegeben.
Ereignis-Ausgänge
CNF (Confirmation of Requested Service): Dieses Ereignis signalisiert die Beendigung der Operation. Es wird gleichzeitig mit der Ausgabe des berechneten Wertes am Daten-Ausgang
OUTerzeugt.
Daten-Eingänge
IN (Input): Datentyp
BOOL. Dies ist der binäre Eingangswert, der negiert werden soll. Gültige Werte sindTRUE(1) oderFALSE(0).
Daten-Ausgänge
OUT (Output): Datentyp
BOOL. Dies ist das Ergebnis der logischen Negation. Der Ausgangswert entspricht dem logischen Gegenteil des EingangswertesIN.
Adapter
Dieser Funktionsblock verwendet keine Adapter-Schnittstellen.
Funktionsweise
Die Funktionsweise ist deterministisch und einfach: Bei jedem Eintreffen eines REQ-Ereignisses liest der Baustein den aktuellen Wert am Daten-Eingang IN. Anschließend berechnet er die logische Negation und schreibt das Ergebnis auf den Daten-Ausgang OUT. Parallel dazu wird ein CNF-Ereignis generiert, um den Abschluss der Operation zu signalisieren.
Die logische Operation lässt sich durch folgende Tabelle beschreiben:
Eingang (IN) |
Ausgang (OUT) |
|---|---|
FALSE (0) |
TRUE (1) |
TRUE (1) |
FALSE (0) |
Technische Besonderheiten
Standardkonformität: Der Baustein ist als Standardfunktion nach IEC 61131-3 klassifiziert.
E/A-Verzögerung: Die Verarbeitung von
REQbis zur Ausgabe vonCNFundOUTerfolgt innerhalb eines Zyklus der ausführenden Ressource. Es gibt keine inhärenten Verzögerungen.Initialisierung: Die Ausgangsvariablen werden bei der Initialisierung des Funktionsblocks auf ihren Standardwert (
FALSEfürBOOL) gesetzt.
Zustandsübersicht
Der Baustein besitzt keinen internen Zustand im Sinne einer Zustandsmaschine. Sein Verhalten ist rein kombinatorisch und ausschließlich von den aktuellen Eingangswerten bei Auslösung durch ein REQ-Ereignis abhängig. Es werden keine vorherigen Werte gespeichert.
Anwendungsszenarien
Invertierung von Sensorsignalen: Umwandlung eines aktiven-Low-Sensorsignals (z.B. „Taste gedrückt“ = FALSE) in ein aktives-High-Signal für die weitere Logik.
Sicherheitslogik: Erzeugung eines Sperrsignals aus einem Freigabesignal oder umgekehrt.
Steuerungslogik: Als grundlegender Baustein in komplexeren logischen Ausdrücken und Bedingungen innerhalb von Ablaufsteuerungen.
Statusanzeige: Umkehrung eines internen Status für die Ansteuerung einer Lampe (z.B. „Maschine bereit“ = TRUE, aber „Störungslampe leuchtet“ bei FALSE).
⚖️ Vergleich mit ähnlichen Bausteinen
Innerhalb der iec61131::bitwiseOperators-Bibliothek existieren weitere logische Grundoperatoren wie F_AND, F_OR und F_XOR. Im Gegensatz zu diesen Bausteinen, die zwei oder mehr Eingänge verknüpfen, besitzt F_NOT_BOOL nur einen einzigen Dateneingang. Seine Funktion ist unverzichtbar, um logische Ausdrücke zu komplettieren und direkte Invertierungen durchzuführen. Die Implementierung als eigenständiger Baustein (anstatt als integrierter Operator in einem Ausdruck) erhöht die Übersichtlichkeit in grafischen Programmierumgebungen wie FBD. Siehe: F_NOT
Fazit
Der F_NOT_BOOL Funktionsblock ist ein essentieller, robuster und einfach zu verwendender Grundbaustein für die binäre Logik in IEC 61131-3-basierten Steuerungsprogrammen. Seine klare Schnittstelle und deterministische Funktionsweise machen ihn zur ersten Wahl für die Invertierung von booleschen Signalen in der Automatisierungstechnik.