ARRAY2VALUES_2_LREAL¶
Einleitung¶
Der Funktionsblock ARRAY2VALUES_2_LREAL ist ein Dienstschnittstellen-Baustein, der darauf ausgelegt ist, ein Array von zwei LREAL-Werten in zwei separate LREAL-Ausgangsvariablen aufzuteilen. Er dient der einfachen Umwandlung von einem strukturierten Array-Format in individuelle Datenpunkte.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
- REQ: Ein Service-Anforderungsereignis, das die Konvertierung initiiert. Es ist mit dem Daten-Eingang
INassoziiert.
Ereignis-Ausgänge¶
- CNF: Ein Bestätigungsereignis, das signalisiert, dass der angeforderte Dienst abgeschlossen wurde. Es ist mit den Daten-Ausgängen
OUT_1undOUT_2assoziiert.
Daten-Eingänge¶
- IN: Ein Array-Eingang vom Typ
LREALmit einer Größe von 2 Elementen. Dieses Array enthält die zwei Werte, die aufgeteilt werden sollen.
Daten-Ausgänge¶
- OUT_1: Der erste Ausgangswert vom Typ
LREAL, der dem ersten Element desIN-Arrays entspricht. - OUT_2: Der zweite Ausgangswert vom Typ
LREAL, der dem zweiten Element desIN-Arrays entspricht.
Adapter¶
Nicht vorhanden.
Funktionsweise¶
Wenn das REQ-Ereignis empfangen wird, liest der ARRAY2VALUES_2_LREAL-Funktionsblock die beiden LREAL-Werte aus dem IN-Array. Das erste Element des IN-Arrays (IN[0]) wird dem Ausgang OUT_1 zugewiesen, und das zweite Element (IN[1]) wird dem Ausgang OUT_2 zugewiesen. Nach erfolgreicher Zuweisung wird das CNF-Ereignis ausgelöst, um den Abschluss der Operation zu signalisieren.
Technische Besonderheiten¶
Der Funktionsblock ist darauf spezialisiert, genau ein Array von zwei LREAL-Werten zu verarbeiten und in zwei separate LREAL-Variablen aufzuteilen. Seine Implementierung ist direkt und auf diesen spezifischen Umwandlungszweck optimiert.
- Generische Implementierung: Interessanterweise verweist das Attribut
eclipse4diac::core::GenericClassNameauf'GEN_ARRAY2ARRAY'. Dies deutet darauf hin, dass der Baustein möglicherweise von einer generischen Array-zu-Array-Klasse abgeleitet ist, auch wenn seine Funktion die Aufteilung in einzelne Werte ist. Dies könnte ein Detail der Implementierungsgeschichte sein.
Zustandsübersicht¶
Dieser Funktionsblock ist zustandslos. Jede Auslösung des REQ-Ereignisses führt zu einer direkten Verarbeitung der aktuellen IN-Werte und einer Ausgabe über OUT_1 und OUT_2 ohne interne Zustandsänderungen, die über die aktuelle Transaktion hinausgehen würden.
Anwendungsszenarien¶
- Datenaufbereitung: Wenn Sensoren oder andere Bausteine Daten als Array von zwei
LREAL-Werten liefern (z.B. X/Y-Koordinaten, Minimum/Maximum-Werte), aber nachfolgende Bausteine einzelne Variablen benötigen. - Schnittstellenanpassung: Anpassen von Schnittstellen, bei denen ein Quellbaustein Array-Daten sendet, der Zielbaustein jedoch diskrete Eingangsvariablen erwartet.
- Vereinfachung von Logik: Erhöhung der Lesbarkeit und Vereinfachung der Logik, indem Array-Zugriffe in einzelne Variablen umgewandelt werden, die in weiteren Schritten leichter verarbeitet werden können.
⚖️ Vergleich mit ähnlichen Bausteinen¶
Ähnliche Bausteine könnten generische Array-Splitter sein, die eine variable Anzahl von Array-Elementen in eine entsprechende Anzahl von Ausgängen aufteilen können. ARRAY2VALUES_2_LREAL ist jedoch für den spezifischen Fall eines LREAL-Arrays der Größe 2 optimiert, was ihn einfacher in der Konfiguration und möglicherweise effizienter für diesen konkreten Anwendungsfall macht als einen flexibleren, aber potenziell komplexeren generischen Baustein.
Metadaten¶
| Attribut | Wert |
| :--- | :--- |
| Copyright | (c) 2014 Profactor GmbH |
| Lizenz | EPL-2.0 |
| Version | 3.0 (2025-04-14, Patrick Aigner), 1.0 (2014-07-09, Matthias Plasch) |
| 4diac-Paket | eclipse4diac::convert |
Fazit¶
Der ARRAY2VALUES_2_LREAL-Funktionsblock ist ein nützliches Werkzeug für die gezielte Umwandlung eines LREAL-Arrays der Größe 2 in zwei separate LREAL-Ausgänge. Er bietet eine einfache und effiziente Lösung für die Datenaufbereitung und Schnittstellenanpassung in 4diac-Anwendungen, bei denen diese spezifische Konvertierung erforderlich ist.