ALI_TO_AX¶
Einleitung¶
Der Funktionsblock ALI_TO_AX ist ein zusammengesetzter (Composite) Baustein, der einen Adapter vom Typ ALI (enthält einen LINT-Wert) in einen Adapter vom Typ AX (enthält einen BOOL-Wert) umwandelt.
Die Konvertierung erfolgt nach der Regel: Ein LINT-Wert ungleich 0 wird als BOOL-Wert TRUE interpretiert, ein Wert gleich 0 als FALSE.
Der Baustein dient als bidirektionale Brücke zwischen Adaptern, die auf unterschiedlichen Datentypen basieren.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
- ALI_IN.E1 – Eingangsereignis vom ALI-Adapter. Lösen die Verarbeitung aus.
Ereignis-Ausgänge¶
- AX_OUT.E1 – Ausgangsereignis zum AX-Adapter. Wird nach erfolgreicher Verarbeitung gesendet.
Daten-Eingänge¶
(Keine direkten Daten-Eingänge. Die Daten werden über den ALI-Adapter bereitgestellt:)
- ALI_IN.D1 – LINT-Eingangswert über den Adapter.
Daten-Ausgänge¶
(Keine direkten Daten-Ausgänge. Die Daten werden über den AX-Adapter ausgegeben:)
- AX_OUT.D1 – BOOL-Ausgangswert über den Adapter.
Adapter¶
| Adapter | Richtung | Typ | Beschreibung |
|---|---|---|---|
| ALI_IN | Socket (Eingang) | adapter::types::unidirectional::ALI |
Eingangsadapter mit einem LINT-Wert. |
| AX_OUT | Plug (Ausgang) | adapter::types::unidirectional::AX |
Ausgangsadapter mit einem BOOL-Wert. |
Funktionsweise¶
Der Baustein verwendet intern den Vergleichsbaustein F_NE („Not Equal“) aus der IEC 61131-Bibliothek. Der Ablauf ist:
- Über den Socket
ALI_INwird ein LINT-Wert empfangen. - Das Ereignis
ALI_IN.E1triggert den BausteinF_NEüber dessenREQ-Eingang. - Im
F_NEwird der Eingangswert (IN1) mit dem konstanten WertLINT#0(IN2) verglichen. - Das Ergebnis
OUTist ein BOOL: - TRUE, wenn
IN1 ≠ 0 - FALSE, wenn
IN1 = 0 - Nach Abschluss des Vergleichs sendet
F_NEeinCNF-Ereignis, das den AusgangsadapterAX_OUTüber dessenE1triggert. - Gleichzeitig wird der BOOL-Wert auf
AX_OUT.D1ausgegeben.
Somit wird ein beliebiger LINT-Wert (auch negative Zahlen) in ein binäres Signal umgesetzt.
Technische Besonderheiten¶
- Reine Logik-Konvertierung: Es findet keine Skalierung oder Schwellwertbildung statt. Jeder von Null verschiedene Wert wird als
TRUEinterpretiert. - Nutzung von Composite-FB: Der Baustein kapselt die Adapter-Konvertierung in einer wiederverwendbaren Einheit und erlaubt einfaches Einbinden in größere Netzwerke.
- Ereignisgesteuert: Die Verarbeitung erfolgt nur bei einem eingehenden Ereignis (
ALI_IN.E1). Der Ausgang wird nur nach einer erfolgreichen Verarbeitung aktualisiert. - Lizenz: Der Baustein steht unter der Eclipse Public License 2.0 (EPL-2.0).
Zustandsübersicht¶
Da es sich um einen Composite-Baustein ohne eigene Zustandsmaschine handelt, ergibt sich die Zustandslogik aus der internen Verkettung:
- Warten auf Ereignis: Der Baustein ist inaktiv, bis
ALI_IN.E1eintrifft. - Vergleich läuft: Nach Empfang des Ereignisses wird der
F_NE-Baustein ausgeführt. - Ergebnis ausgeben: Nach Abschluss des Vergleichs wird das Ergebnis auf
AX_OUT.D1gesetzt undAX_OUT.E1ausgelöst.
Es gibt keine Schleifen, zeitlichen Verzögerungen oder Fehlerzustände – die Funktion ist deterministisch und fehlerfrei.
Anwendungsszenarien¶
- Signalkonvertierung in Steuerungssystemen: Wenn ein LINT-basiertes Protokoll (z. B. Zählerstände, Encoder) in eine einfache binäre Information (z. B. „Aktiv“, „Präsenz“) umgewandelt werden muss.
- Adapter-Brücken: Einsatz in Systemen, die heterogene Adaptertypen verwenden, um die Kommunikation zwischen Komponenten mit unterschiedlichen Datentypen zu ermöglichen.
- Testumgebungen: Schnelle Umwandlung von numerischen Werten in boolesche Signale für Debugging oder Simulation.
Vergleich mit ähnlichen Bausteinen¶
- Direkter Compare-Baustein: Statt
F_NEkönnte auch einF_EQ(equal) mit anschließender Negation verwendet werden – funktional identisch. - Schwellwert-Bausteine (z. B. Greater_than): Würden einen expliziten Schwellwert erfordern;
ALI_TO_AXentscheidet hart nach Null. - Typkonvertierungen (z. B. LINT_TO_BOOL): Einige Bibliotheken bieten primitive Konverter – diese arbeiten jedoch meist nicht auf Adapter-Ebene.
ALI_TO_AXist speziell für die Adapter‑Schnittstellen zugeschnitten.
Fazit¶
Der Baustein ALI_TO_AX bietet eine einfache und zuverlässige Methode, um einen LINT-Adapterwert in einen BOOL-Adapterwert zu übersetzen.
Dank des klaren Logikaufbaus und der ereignisgesteuerten Architektur ist er sowohl für den Produktiveinsatz als auch für schnelle Prototypen geeignet.
Die Verwendung des Composite-Konzepts fördert die Modularität und Wiederverwendbarkeit in IEC 61499-basierten Steuerungsanwendungen.