AUDI_ADD_2¶
Einleitung¶
Der Funktionsblock AUDI_ADD_2 führt eine arithmetische Addition zweier Eingangswerte durch und stellt das Ergebnis am Ausgang bereit. Der Baustein ist generisch ausgelegt und arbeitet über eine einheitliche Adapter-Schnittstelle vom Typ AUDI. Dadurch kann er für unterschiedliche Datentypen (z. B. Ganzzahlen, Gleitkommazahlen) eingesetzt werden, ohne dass der FB selbst angepasst werden muss.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
Keine.
Ereignis-Ausgänge¶
Keine.
Daten-Eingänge¶
Keine.
Daten-Ausgänge¶
Keine.
Adapter¶
| Typ | Richtung | Name | Kommentar |
|---|---|---|---|
adapter::types::unidirectional::AUDI |
Socket (Eingang) | IN1 | ADD input 1 |
adapter::types::unidirectional::AUDI |
Socket (Eingang) | IN2 | ADD input 2 |
adapter::types::unidirectional::AUDI |
Plug (Ausgang) | OUT | ADD result |
Die drei Adapter sind alle vom gleichen Typ AUDI. Dieser Adaptertyp kapselt den eigentlichen Datenwert (z. B. einen numerischen Wert) und ermöglicht die unidirektionale Übertragung vom Socket zum Plug. Die Addition erfolgt zwischen den Werten von IN1 und IN2; das Ergebnis wird an OUT bereitgestellt.
Funktionsweise¶
Der FB AUDI_ADD_2 besitzt keine klassischen Daten-Eingänge oder Ereignisse. Stattdessen kommuniziert er ausschließlich über Adapter. Sobald beide Eingangsadapter (IN1 und IN2) gültige Werte enthalten, wird intern die Summe IN1 + IN2 berechnet und der resultierende Wert über den Ausgangsadapter OUT ausgegeben.
Der Baustein ist generisch: Der tatsächlich verwendete Datentyp wird durch die Konfiguration des Adapters und die generischen Attribute (GenericClassName, TypeHash) bestimmt. Dies erlaubt den Einsatz mit verschiedenen numerischen Typen (z. B. INT, REAL, LREAL), ohne dass der FB selbst mehrfach instanziiert werden muss.
Technische Besonderheiten¶
- Reine Adapter-Schnittstelle: Keine Ereignisse oder direkten Datenein-/ausgänge – die gesamte Kommunikation erfolgt über Adapter.
- Generische Ausführung: Durch die Attribute
eclipse4diac::core::GenericClassNameundeclipse4diac::core::TypeHashkann der FB zur Laufzeit auf unterschiedliche Datentypen spezialisiert werden. - Unidirektionale Adapter: Die verwendeten Adapter vom Typ
AUDIsind unidirektional, d. h. sie übertragen Werte nur in eine Richtung (Socket → Plug). - Keine Zustandsautomatik: Der FB enthält kein ECC (Execution Control Chart) und arbeitet ereignislos; die Berechnung erfolgt sofort bei Vorliegen der Eingangswerte.
Zustandsübersicht¶
Der AUDI_ADD_2 besitzt keine Zustände (kein ECC). Die Addition wird unverzögert bei gültigen Eingangswerten durchgeführt.
Anwendungsszenarien¶
- Arithmetische Verarbeitung in adapterbasierten Systemen: Wenn eine Architektur konsequent auf Adapter setzt, bietet dieser FB eine saubere Möglichkeit, zwei Zahlenwerte zu addieren.
- Generische Berechnungen: Dank der generischen Auslegung kann der FB in Algorithmen eingesetzt werden, die mit verschiedenen Datentypen arbeiten (z. B. Integer- und Fließkomma-Mischumgebungen).
- Datenflusssysteme: In rein datenflussorientierten Applikationen, bei denen keine Ereignisse benötigt werden, fügt sich der FB nahtlos ein.
Vergleich mit ähnlichen Bausteinen¶
- Klassische ADD-FBs (z. B.
ADDaus IEC 61131-3): Diese besitzen meist konkrete Dateneingänge und -ausgänge sowie Ereignissteuerung. DerAUDI_ADD_2ersetzt dies durch eine Adapter-Schnittstelle, was eine höhere Abstraktion und Kapselung ermöglicht. - Generische Addierer (z. B.
GEN_ADD): Solche Bausteine sind ebenfalls generisch, verwenden aber häufig direkte Datenports. DerAUDI_ADD_2ist speziell für adapterbasierte Schnittstellen optimiert.
Fazit¶
Der AUDI_ADD_2 ist ein spezialisierter, generischer Additions-FB für adapterbasierte 4diac-IDE-Umgebungen. Durch den Verzicht auf klassische Ports und die Nutzung des AUDI-Adaptertyps eignet er sich besonders für datenflussorientierte und stark modularisierte Steuerungsanwendungen. Seine generische Ausführung erhöht die Wiederverwendbarkeit über verschiedene Datentypen hinweg.