BOOLS_TO_ST08X

image

Einleitung

Dieser Funktionsblock (FB) dient dazu, acht einzelne BOOL-Werte zu einer Struktur vom Typ ST08X zusammenzufassen. Er ermöglicht eine übersichtliche Gruppierung und Weitergabe von acht binären Informationen als eine einzige strukturierte Variable.

Schnittstellenstruktur

Ereignis-Eingänge

  • REQ (Event): Dieses Ereignis löst die Konvertierung und Zuweisung der Eingangswerte an den Ausgang aus. Alle Daten-Eingänge sind mit diesem Ereignis verbunden und werden bei dessen Eintreffen gelesen.

Ereignis-Ausgänge

  • CNF (Event): Dieses Bestätigungsereignis wird ausgelöst, nachdem die Konvertierung erfolgreich abgeschlossen und der Ausgang OUT aktualisiert wurde. Der Daten-Ausgang OUT ist mit diesem Ereignis verbunden.

Daten-Eingänge

  • IN_00 (BOOL): Der Wert für Bit 0 der Ausgangsstruktur.

  • IN_01 (BOOL): Der Wert für Bit 1 der Ausgangsstruktur.

  • IN_02 (BOOL): Der Wert für Bit 2 der Ausgangsstruktur.

  • IN_03 (BOOL): Der Wert für Bit 3 der Ausgangsstruktur.

  • IN_04 (BOOL): Der Wert für Bit 4 der Ausgangsstruktur.

  • IN_05 (BOOL): Der Wert für Bit 5 der Ausgangsstruktur.

  • IN_06 (BOOL): Der Wert für Bit 6 der Ausgangsstruktur.

  • IN_07 (BOOL): Der Wert für Bit 7 der Ausgangsstruktur.

Daten-Ausgänge

  • OUT (logiBUS::utils::conversion::types::ST08X): Die resultierende Struktur, welche die Werte der acht binären Eingänge in ihren jeweiligen Feldern (X_00 bis X_07) enthält.

Adapter

Dieser Funktionsblock besitzt keine Adapter.

Funktionsweise

Der Funktionsblock BOOLS_TO_ST08X wird durch ein eingehendes REQ-Ereignis aktiviert. Bei jeder Aktivierung werden die aktuellen Werte der acht Daten-Eingänge (IN_00 bis IN_07) direkt den entsprechenden Feldern (X_00 bis X_07) der Ausgangsstruktur OUT zugewiesen. Nach der erfolgreichen Zuweisung wird das CNF-Ereignis am Ausgang ausgelöst, um den Abschluss der Operation zu signalisieren und den aktualisierten OUT-Wert verfügbar zu machen. Die Zuweisung erfolgt 1:1, wobei IN_00 dem Feld X_00 entspricht, IN_01 dem Feld X_01 usw., bis IN_07 dem Feld X_07 zugewiesen wird.

Technische Besonderheiten

  • Direkte Zuweisung: Die Logik besteht aus einer direkten 1:1-Zuweisung der Bool-Eingänge zu den Feldern der ST08X-Struktur.

  • Typisierung: Der ST08X-Typ ist eine benutzerdefinierte Struktur, die speziell für die Aggregation von acht Bool-Werten konzipiert ist und typensicher verwendet werden kann.

  • Effizienz: Der Baustein ist aufgrund seiner einfachen Implementierung sehr effizient und ressourcenschonend.

  • Zustandslos: Der Funktionsblock speichert keine internen Zustände und verarbeitet jede Anforderung unabhängig von vorherigen Aufrufen.

Zustandsübersicht

Der Funktionsblock BOOLS_TO_ST08X ist ein zustandsloser Baustein. Dies bedeutet, dass er keine Informationen über vorherige Ausführungen speichert, die das aktuelle Verhalten beeinflussen könnten. Jede Aktivierung durch das REQ-Ereignis führt zu einer Neuberechnung des Ausgangs OUT basierend auf den zu diesem Zeitpunkt gültigen Werten der Daten-Eingänge.

Anwendungsszenarien

  • Sensordatenerfassung: Zusammenfassen von acht einzelnen digitalen Sensorzuständen (z.B. Endschalter, Lichtschranken) in eine einzige Struktur für eine kompaktere Datenverarbeitung oder Visualisierung.

  • Statusregister: Erstellen eines Statusbytes oder -registers aus individuellen Bool-Flags, die verschiedene Betriebszustände oder Fehler anzeigen.

  • Schnittstellenkommunikation: Vorbereitung von binären Daten für die Übertragung über serielle Schnittstellen oder Kommunikationsprotokolle, die Daten in strukturierten Formaten erwarten.

  • Programmierlogik: Vereinfachung der Logik in komplexeren Funktionsblöcken, indem acht separate Signale zu einer einzelnen, handlicheren Variablen gebündelt werden.

Vergleich mit ähnlichen Bausteinen

Dieser Funktionsblock ist spezialisiert auf die Umwandlung von acht BOOL-Werten in den benutzerdefinierten ST08X-Typ. Im Vergleich zu:

  • BOOLS_TO_BYTE oder BOOL_TO_WORD: Diese Bausteine wandeln einzelne BOOLs in einen primitiven Integer-Typ (Byte, Word) um, bei dem die einzelnen Bits über bitweise Operationen angesprochen werden müssen. BOOLS_TO_ST08X bietet hingegen eine strukturierte Variable, deren Felder direkt über Namen (OUT.X_00, OUT.X_01, etc.) zugänglich sind, was die Lesbarkeit des Codes verbessert.

  • Logische Operatoren (AND, OR, XOR): Diese Operatoren kombinieren Bool-Werte, aber nicht zu einer Struktur, sondern zu einem einzelnen Bool-Ergebnis. BOOLS_TO_ST08X dient der Aggregation, nicht der logischen Verknüpfung.

Der Hauptvorteil von BOOLS_TO_ST08X liegt in der Verwendung eines spezifischen Strukturtyps, der eine höhere Typsicherheit und bessere Code-Organisation im Vergleich zu generischen Integer-Typen bietet.

Fazit

Der BOOLS_TO_ST08X Funktionsblock ist ein einfacher, aber äußerst nützlicher Baustein, um acht einzelne BOOL-Signale in eine standardisierte ST08X-Struktur zu überführen. Er fördert die Modularität und Lesbarkeit von 4diac-Applikationen, indem er eine saubere und typensichere Methode zur Bündelung von Bit-Informationen bereitstellt. Dies vereinfacht die Datenhandhabung und -weitergabe in komplexen Steuerungssystemen.