AUS_TO_ALI¶
Einleitung¶
Der Funktionsblock AUS_TO_ALI ist ein zusammengesetzter Baustein (Composite FB), der einen AUS-Adapter (USINT-Werte) in einen ALI-Adapter (LINT-Werte) umwandelt. Er kapselt den Konvertierungsvorgang und stellt eine unidirektionale Schnittstelle zwischen diesen beiden Adaptertypen bereit. Intern wird der Funktionsblock F_USINT_TO_LINT aus der IEC 61131-Bibliothek verwendet.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
Keine eigenen Ereignis-Eingänge. Die Ereignissteuerung erfolgt über den AUS_IN-Adapter (Socket).
Ereignis-Ausgänge¶
Keine eigenen Ereignis-Ausgänge. Die Ereignisausgabe erfolgt über den ALI_OUT-Adapter (Plug).
Daten-Eingänge¶
Keine eigenen Daten-Eingänge. Die Datenaufnahme erfolgt über den AUS_IN-Adapter.
Daten-Ausgänge¶
Keine eigenen Daten-Ausgänge. Die Datenausgabe erfolgt über den ALI_OUT-Adapter.
Adapter¶
- AUS_IN (Socket) – Empfängt einen AUS-Adapter mit unidirektionalem USINT-Datentyp. Enthält:
- Ereignis-Eingang
E1 - Daten-Eingang
D1(USINT) - ALI_OUT (Plug) – Sendet einen ALI-Adapter mit unidirektionalem LINT-Datentyp. Enthält:
- Ereignis-Ausgang
E1 - Daten-Ausgang
D1(LINT)
Funktionsweise¶
Der Baustein arbeitet ereignisgesteuert:
1. Ein Ereignis am E1-Eingang des AUS_IN-Adapters initiiert die Verarbeitung.
2. Der aktuelle Wert von AUS_IN.D1 (USINT) wird an den internen Baustein Convert (F_USINT_TO_LINT) übergeben.
3. Nach der Konvertierung wird das Ergebnis (LINT) über ALI_OUT.D1 ausgegeben und gleichzeitig ein Ereignis am E1-Ausgang des ALI_OUT-Adapters gesendet.
Die Typkonvertierung erfolgt gemäß der IEC 61131-Definition von F_USINT_TO_LINT: USINT (0..255) wird ohne Vorzeichenverlust in LINT (64-Bit) abgebildet.
Technische Besonderheiten¶
- Composite-Baustein: Die Konvertierungslogik ist gekapselt und wiederverwendbar.
- Adapter-basiert: Die Ein-/Ausgabe erfolgt ausschließlich über Adapter (
AUSundALI), was die Integration in adapterorientierte Architekturen erleichtert. - Unidirektional: Der Baustein unterstützt nur eine Datenflussrichtung (AUS → ALI).
- Bibliotheksimport: Er verwendet den Baustein
iec61131::conversion::F_USINT_TO_LINTaus der IEC 61131-Bibliothek. - Paketstruktur: Der Baustein ist im Package
adapter::conversion::unidirectionalorganisiert.
Zustandsübersicht¶
Der AUS_TO_ALI-Baustein besitzt keine eigenen Zustandsautomaten. Der interne Ablauf ist rein ereignisgesteuert und zustandslos:
- Warte: auf ein Ereignis vom AUS_IN.E1
- Konvertiere: sofortige Umwandlung des USINT-Werts in LINT
- Ausgabe: unverzögertes Senden des Ergebnisses über ALI_OUT
Jede Konvertierung ist unabhängig von vorherigen Aufrufen.
Anwendungsszenarien¶
- Schnittstellenanpassung: Ein System, das Daten als AUS-Adapter (USINT) bereitstellt, muss an einen Empfänger angebunden werden, der einen ALI-Adapter (LINT) erwartet.
- Datenaufbereitung: Umwandlung von Sensordaten oder Stellgrößen mit geringer Auflösung (USINT) in einen breiteren Wertebereich (LINT) für weiterführende Berechnungen.
- Adapter-Kaskadierung: Als Teil einer Kette von Adapterkonvertierungen, z. B. in einer modularen Steuerungsarchitektur.
Vergleich mit ähnlichen Bausteinen¶
- Direkte Verwendung von
F_USINT_TO_LINT: Dieser Baustein arbeitet auf Datenebene ohne Adapter. DerAUS_TO_ALIkapselt zusätzlich die Adapterlogik und ist daher besser für adapterbasierte Kommunikation geeignet. - Weitere Adapterkonvertierungen: Für andere Typkombinationen (z. B.
INT_TO_DINT,BYTE_TO_WORD) existieren analoge Composite-Bausteine, die demselben Entwurfsmuster folgen.
Fazit¶
Der AUS_TO_ALI-Baustein ist eine einfache, aber effektive Lösung zur unidirektionalen Konvertierung zwischen USINT- und LINT-Adaptern. Er erhöht die Wiederverwendbarkeit und Klarheit in Systemen, die auf Adapter-Schnittstellen setzen, und vermeidet die manuelle Verkabelung von Konvertierungslogik.