ALI_SPLIT_2¶
Einleitung¶
Der Funktionsblock ALI_SPLIT_2 dient als generischer Verteiler für einen unidirektionalen ALI‑Adapter (Application Layer Interface). Er kopiert alle eingehenden Daten und Ereignisse von einem einzelnen Eingangs‑Socket auf zwei Ausgangs‑Plugs. Dadurch kann ein Signal oder eine Datenquelle an zwei unabhängige Empfänger weitergegeben werden.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
Keine Ereignis-Eingänge vorhanden. Die Datenweitergabe erfolgt rein über die Adapter‑Schnittstelle.
Ereignis-Ausgänge¶
Keine Ereignis-Ausgänge vorhanden. Die Ereignissteuerung wird über die Adapter‑Verbindungen abgewickelt.
Daten-Eingänge¶
Keine dedizierten Daten-Eingänge. Alle Daten werden über den eingehenden Adapter IN bereitgestellt.
Daten-Ausgänge¶
Keine dedizierten Daten-Ausgänge. Die verteilten Daten werden über die beiden ausgehenden Adapter OUT1 und OUT2 bereitgestellt.
Adapter¶
| Typ | Name | Richtung | Beschreibung |
|---|---|---|---|
| Socket | IN |
Eingang | Unidirektionaler ALI‑Adapter, der die eingehenden Daten/Ereignisse empfängt. |
| Plug | OUT1 |
Ausgang | Erster unidirektionaler ALI‑Adapter, an den die Daten/Ereignisse weitergeleitet werden. |
| Plug | OUT2 |
Ausgang | Zweiter unidirektionaler ALI‑Adapter, an den die Daten/Ereignisse weitergeleitet werden. |
Alle Adapter sind vom Typ adapter::types::unidirectional::ALI.
Funktionsweise¶
Der Baustein realisiert eine 1‑zu‑2‑Verteilung (Split) auf der Adapter‑Ebene. Sobald Daten oder Ereignisse am Socket IN anliegen, werden diese unverändert und gleichzeitig an beide Plugs OUT1 und OUT2 weitergegeben. Es erfolgt keine Pufferung oder Verarbeitung der Daten – der Baustein arbeitet als reiner Signalverteiler.
Technische Besonderheiten¶
- Generischer Baustein: Über das Attribut
eclipse4diac::core::GenericClassNamewird der Baustein als generische InstanzGEN_ALI_SPLITmarkiert. Er kann daher mit unterschiedlichen ALI‑Typen oder ‑Parametern verwendet werden, solange die zugrundeliegende Adapter‑Definition kompatibel ist. - Keine Zustandshaltung: Der Baustein besitzt keine internen Zustände oder Variablen – die Funktionalität ist rein kombinatorisch.
- Unidirektionalität: Die Adapter sind als unidirektional definiert, d.h. die Daten fließen nur vom Eingang zu den Ausgängen; Rückwärtskommunikation ist nicht vorgesehen.
Zustandsübersicht¶
Da der Baustein keine Ereignis‑Eingänge/Ausgänge oder internen Zustände besitzt, existiert keine Zustandsmaschine. Die Datenweitergabe erfolgt kontinuierlich und ohne Verzögerung.
Anwendungsszenarien¶
- Verteilen eines Sensorsignals: Ein analoger oder digitaler ALI‑Sensor wird an zwei Steuerungseinheiten angeschlossen, die unabhängig voneinander auf die Messdaten zugreifen müssen.
- Parallele Verarbeitung: Ein Datenstrom soll gleichzeitig von zwei verschiedenen Funktionsblöcken verarbeitet werden, ohne dass eine manuelle Verzweigung in der Applikation nötig ist.
- Redundanz: Eine Anwendung erfordert die doppelte Ausführung einer ALI‑Kommunikation, um Ausfallsicherheit zu erhöhen.
Vergleich mit ähnlichen Bausteinen¶
| Baustein | Funktion | Unterschied |
|---|---|---|
| ALI_SPLIT_2 | Verteilt einen ALI‑Eingang auf zwei ALI‑Ausgänge. | – |
| ALI_SPLIT_3 (hypothetisch) | Verteilt auf drei Ausgänge. | Höhere Ausgangszahl. |
| ALI_MERGE_2 | Fasst zwei ALI‑Eingänge zu einem ALI‑Ausgang zusammen. | Gegenteilige Funktion (Join). |
| ALI_FILTER | Leitet nur bestimmte Daten/Ereignisse weiter. | Enthält Filterlogik. |
Fazit¶
ALI_SPLIT_2 ist ein einfacher, aber essenzieller Funktionsblock für die Verteilung unidirektionaler ALI‑Schnittstellen. Seine generische Natur und die schlanke Implementierung machen ihn zu einem universellen Werkzeug in der IEC 61499‑Komponentenentwicklung, wenn ein Signal oder Datenstrom an mehrere nachfolgende Blöcke weitergegeben werden muss.