F_REPLACE

F_REPLACE

Einleitung

Der Funktionsblock F_REPLACE dient zur Manipulation von Zeichenketten. Er ersetzt eine bestimmte Anzahl von Zeichen (L) in der ersten Eingabezeichenkette (IN1) durch die zweite Eingabezeichenkette (IN2), beginnend an einer spezifizierten Position (P).

F_REPLACE

Schnittstellenstruktur

Ereignis-Eingänge

  • REQ: Dienst-Anforderung. Löst die Ersetzungsoperation aus. Verknüpft mit den Daten-Eingängen IN1, IN2, L und P.

Ereignis-Ausgänge

  • CNF: Bestätigung der angeforderten Dienstleistung. Wird ausgelöst, wenn die Ersetzung abgeschlossen ist. Verknüpft mit dem Daten-Ausgang OUT.

Daten-Eingänge

  • IN1 (ANY_STRING): Die erste Eingabezeichenkette, in der die Ersetzung vorgenommen wird.

  • IN2 (ANY_STRING): Die zweite Eingabezeichenkette, die als Ersatz verwendet wird.

  • L (ANY_INT): Die Anzahl der zu ersetzenden Zeichen.

  • P (ANY_INT): Die Startposition für die Ersetzung in IN1.

Daten-Ausgänge

  • OUT (ANY_STRING): Die resultierende Zeichenkette nach der Ersetzung.

Adapter

Keine Adapter vorhanden.

Funktionsweise

Der Funktionsblock führt die folgende Operation durch:

  1. Beim Empfang des REQ-Ereignisses werden die Eingabewerte IN1, IN2, L und P gelesen.

  2. In der Zeichenkette IN1 werden ab Position P genau L Zeichen durch die Zeichenkette IN2 ersetzt.

  3. Das Ergebnis wird in OUT gespeichert und das CNF-Ereignis ausgelöst.

Technische Besonderheiten

  • Unterstützt beliebige Zeichenketten-Typen (ANY_STRING).

  • Die Position P und die Länge L müssen gültige Indizes innerhalb der Zeichenkette IN1 sein, um korrekte Ergebnisse zu gewährleisten.

Zustandsübersicht

Der Funktionsblock hat keine internen Zustände. Die Operation wird bei jedem REQ-Ereignis neu ausgeführt.

Anwendungsszenarien

  • Textverarbeitung in Automatisierungsanwendungen.

  • Manipulation von Zeichenketten in Protokollnachrichten.

  • Dynamische Anpassung von Konfigurationsstrings.

⚖️ Vergleich mit ähnlichen Bausteinen

  • Ähnlich zu F_INSERT, jedoch ersetzt F_REPLACE bestehende Zeichen statt neue einzufügen.

  • Im Vergleich zu F_DELETE wird hier nicht nur gelöscht, sondern durch andere Zeichen ersetzt.

Fazit

F_REPLACE ist ein nützlicher Funktionsblock für die Zeichenkettenmanipulation in IEC 61131-3 basierten Steuerungen. Seine einfache und klare Funktionsweise macht ihn ideal für verschiedene Anwendungen in der Automatisierungstechnik.