QUARTERS_TO_BOOLS
🎧 Podcast
Einleitung
Der Funktionsblock QUARTERS_TO_BOOLS ist ein Composite Function Block, der 16 separate 2-Bit-Eingabewerte (sogenannte „Quarter Bytes“) parallel in entsprechende boolesche Ausgangssignale umwandelt. Er dient als Wrapper und vereinfacht die Handhabung, indem er eine Vielzahl einzelner Konvertierungsbausteine zu einem einzigen, übersichtlichen Baustein zusammenfasst. Dieser Block ist besonders nützlich in Steuerungssystemen, in denen kompakte Datenformate (wie 2-Bit-Zustände in einem Byte) in einfache binäre Steuersignale für Aktoren oder Statusanzeigen umgesetzt werden müssen.
Schnittstellenstruktur
Ereignis-Eingänge
REQ: Startet die Verarbeitung. Bei Eintreffen dieses Ereignisses werden alle 16 Eingabewerte (
IB_00bisIB_15) ausgelesen und verarbeitet.
Ereignis-Ausgänge
CNF: Signalisiert die erfolgreiche Beendigung der Verarbeitung. Dieses Ereignis wird ausgegeben, nachdem alle 16 internen Konvertierungen abgeschlossen und die Ausgangsdaten (
Q_00bisQ_15) aktualisiert sind.
Daten-Eingänge
IB_00 bis IB_15 (Typ:
BYTE): 16 Eingänge für 2-Bit-Daten (Quarter Bytes). Jeder Eingang kann einen von vier definierten Zuständen repräsentieren (z.B.quarter::COMMAND_DISABLE). Der Standard-Initialwert für alle Eingänge istquarter::COMMAND_DISABLE.
Daten-Ausgänge
Q_00 bis Q_15 (Typ:
BOOL): 16 boolesche Ausgänge, die den konvertierten Zustand des jeweiligen Quarter-Byte-Eingangs widerspiegeln. Der Initialwert aller Ausgänge istFALSE.
Adapter
Dieser Funktionsblock verwendet keine Adapter-Schnittstellen.
Funktionsweise
QUARTERS_TO_BOOLS ist ein Composite FB, der intern aus 16 Instanzen des Basisfunktionsblocks QUARTER_TO_BOOL besteht. Jede dieser Instanzen ist für die Konvertierung eines spezifischen Eingangs (IB_xx) zuständig.
Auslösung: Das Eintreffen des Ereignisses
REQlöst die Verarbeitungskette aus.Parallele Datenverteilung: Die an den Eingängen
IB_00bisIB_15anliegenden Byte-Werte werden parallel an die entsprechenden Eingänge (IB) der 16 internenQUARTER_TO_BOOL-Blöcke weitergeleitet.Serielle Ereignisverarbeitung: Das
REQ-Ereignis wird seriell durch die Kette der internen Blöcke propagiert. Es startet beiQUARTER_TO_BOOL_00und wird nacheinander von einem Block zum nächsten weitergereicht (CNF->REQ), bis der letzte Block (QUARTER_TO_BOOL_15) seine Verarbeitung abschließt.Konvertierung: Jeder interne
QUARTER_TO_BOOL-Block interpretiert seinen Byte-Eingangswert gemäß einer definierten Logik (vermutlich basierend auf den zwei niederwertigsten Bits) und setzt ihn auf einen booleschen Wahrheitswert (TRUEoderFALSE) um.Ergebnisausgabe: Die booleschen Ergebnisse (
Q) der internen Blöcke werden auf die entsprechenden AusgängeQ_00bisQ_15des Composite-Blocks geschaltet.Abschluss: Sobald der letzte interne Block fertig ist, löst der Composite-Block sein
CNF-Ereignis aus, um den Abschluss des gesamten Konvertierungszyklus für alle 16 Kanäle zu signalisieren.
Technische Besonderheiten
Initialisierung: Alle Eingänge sind mit dem spezifischen Wert
quarter::COMMAND_DISABLEvorbelegt, und alle Ausgänge starten mitFALSE. Dies gewährleistet einen definierten, inaktiven Ausgangszustand.Verarbeitungsreihenfolge: Während die Dateneingänge parallel verteilt werden, erfolgt die Ereignisverarbeitung streng sequenziell von Index 00 bis 15. Dies führt zu einer deterministischen, wenn auch nicht gleichzeitigen, Aktualisierung der Ausgänge.
Komposit-Bauweise: Der Block kapselt die Komplexität von 16 einzelnen Konvertierungen und bietet eine saubere, vereinheitlichte Schnittstelle, was die Wiederverwendbarkeit und Lesbarkeit in übergeordneten Applikationen erhöht.
Zustandsübersicht
Als Composite Function Block besitzt QUARTERS_TO_BOOLS keinen eigenen komplexen Zustandsautomaten im herkömmlichen Sinne. Sein Verhalten wird durch das Netzwerk der internen Blöcke definiert. Vereinfacht kann der Gesamtzustand als Idle (wartet auf REQ) und Processing (Ereignis läuft durch die interne Kette) betrachtet werden. Der CNF-Ausgang markiert den Übergang zurück in den Idle-Zustand.
Anwendungsszenarien
Kompakte SPS-Anbindung: Umwandlung von kompakten 32-Bit-Datenwörtern (die 16 2-Bit-Zustände enthalten) in 16 einzelne binäre Steuersignale für Ventile, Lampen oder Relais.
Statusdekodierung: Dekodierung von Gerätestatusinformationen, die in einem „Quarter Byte“-Format übertragen werden, in einzelne, leicht verarbeitbare Fehler- oder Betriebszustandsbits.
Vereinfachung von Funktionsplanern: Ersetzt 16 separate
QUARTER_TO_BOOL-Blöcke und deren Verdrahtung in einem Funktionsplan durch einen einzigen, übersichtlichen Block, was die Projektwartung erleichtert.
⚖️ Vergleich mit ähnlichen Bausteinen
QUARTER_TO_BOOL: Dies ist der elementare Baustein, der einen einzelnen 2-Bit-Eingang konvertiert.QUARTERS_TO_BOOLSbündelt 16 Instanzen dieses Blocks zu einer Einheit. Die Verwendung des Composite-Blocks ist effizienter für die Handhabung mehrerer Kanäle, während der Einzelblock maximale Flexibilität bei der individuellen Platzierung und Verdrahtung bietet.BYTE_TO_BOOL-Blöcke: Konventionelle Blöcke, die ein ganzes Byte in 8 einzelne Bits aufspalten.QUARTERS_TO_BOOLSist spezialisierter, da er davon ausgeht, dass jedes Byte bereits in vier unabhängige 2-Bit-Einheiten unterteilt ist, die separat interpretiert werden müssen.
🛠️ Zugehörige Übungen
Fazit
Der QUARTERS_TO_BOOLS-Funktionsblock ist ein praktisches und zeitsparendes Hilfsmittel für die IEC 61499-Programmierung, wenn häufig mehrere 2-Bit-Datenkanäle in boolesche Signale umgewandelt werden müssen. Durch die Kapselung von 16 Konvertierungen in einem Block reduziert er den Verdrahtungsaufwand in übergeordneten Applikationen erheblich und verbessert die Übersichtlichkeit. Seine deterministische, serielle Ereignisabarbeitung gewährleistet ein zuverlässiges Verhalten, das für Steuerungsaufgaben gut geeignet ist.