SET_STRING¶
Einleitung¶
Der Funktionsblock SET_STRING dient dazu, einen über den Dateneingang IN bereitgestellten Zeichenkettenwert (STRING) in eine In‑Out‑Variable OUT zu schreiben. Die Ausführung erfolgt gesteuert durch ein Ereignis am Eingang REQ. Nach dem Schreiben wird ein Bestätigungsereignis am Ausgang CNF gesendet.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
| Name | Typ | Kommentar | Mit Variablen |
|---|---|---|---|
| REQ | Event | Normaler Ausführungsauftrag | IN, OUT |
Ereignis-Ausgänge¶
| Name | Typ | Kommentar | Mit Variablen |
|---|---|---|---|
| CNF | Event | Bestätigung der Ausführung | OUT |
Daten-Eingänge¶
| Name | Typ | Kommentar |
|---|---|---|
| IN | STRING | Der zu schreibende Wert |
Daten-Ausgänge¶
| Name | Typ | Kommentar |
|---|---|---|
| OUT | STRING | Zielvariable (In‑Out) – nach der Ausführung identisch mit IN |
Hinweis:
OUTist als In‑Out‑Variable deklariert. Sie dient gleichzeitig als Eingang (der aktuelle Wert vor der Ausführung) und als Ausgang (der neue Wert nach der Ausführung). BeiREQwirdOUT := INgesetzt, so dass der vorherige Wert überschrieben wird.
Adapter¶
Keine Adapter vorhanden.
Funktionsweise¶
- Ein ankommendes Ereignis am Eingang
REQstartet die Verarbeitung. - Der im Algorithmus
REQhinterlegte Code wird ausgeführt: OUT := IN;
Der Wert der EingangsvariablenINwird in die In‑Out‑VariableOUTkopiert.- Anschließend wird das Ereignis am Ausgang
CNFgesendet, um die erfolgreiche Ausführung zu signalisieren.
Technische Besonderheiten¶
- Der Baustein enthält nur einen einzigen Zustand (
REQ), in dem die gesamte Verarbeitung stattfindet. Es handelt sich um einen einfachen Funktionsblock (SimpleFB) ohne sequentielle Zustandsautomaten. - Die In‑Out‑Variable
OUTerlaubt es, den Baustein direkt an eine persistent beschreibbare Variable (z. B. ein globales Datenobjekt oder eine gekoppelte Hardware‑Adresse) anzubinden, ohne dass eine separate Ausgangsvariable notwendig ist. - Der Algorithmus ist trivial und führt keinerlei Typ‑ oder Bereichsprüfungen durch.
Zustandsübersicht¶
Der Funktionsblock besitzt genau einen Zustand:
| Zustand | Aktion | Ausgabeereignis | Beschreibung |
|---|---|---|---|
REQ |
OUT := IN |
CNF |
Kopiert den Eingangswert in die In‑Out‑Variable und bestätigt |
Ein Startzustand ist nicht explizit definiert; der Baustein erwartet einen externen Ereignisimpuls auf REQ.
Anwendungsszenarien¶
- Parametrierung von Zeichenketten in Steuerungen: Setzen eines String‑Werts in einer globalen Variable, z. B. eines Gerätenamens oder einer IP‑Adresse.
- Initialisierung von Textbausteinen: Überschreiben einer standardmäßigen Zeichenkette in einem übergeordneten FB‑Netzwerk.
- Test‑ und Debugging‑Umgebungen: Gezieltes Vorgeben von Werten für nachfolgende Verarbeitungsschritte.
Vergleich mit ähnlichen Bausteinen¶
- SET_BOOL, SET_INT, SET_REAL: Gleichartig aufgebaute Funktionsblöcke für andere Datentypen.
SET_STRINGunterscheidet sich nur durch den DatentypSTRING. - MOVE: Ein generischer Baustein, der Werte unterschiedlicher Datentypen kopieren kann.
SET_STRINGist dagegen strikt aufSTRINGspezialisiert und arbeitet mit einer In‑Out‑Variable, währendMOVEseparate Eingänge und Ausgänge verwendet. - WRITE_STRING: In einigen Bibliotheken vorhandene Blöcke mit ähnlicher Funktion, jedoch oft mit zusätzlichen Steuer- oder Fehlerausgängen ausgestattet.
Fazit¶
Der SET_STRING‑Funktionsblock ist ein einfaches, aber effektives Werkzeug zum gezielten Setzen eines String‑Werts in eine In‑Out‑Variable. Er eignet sich besonders für Anwendungen, in denen ein Wert direkt in eine bestehende Variable geschrieben werden muss, ohne dass eine Rücklese‑ oder Vergleichslogik erforderlich ist. Aufgrund seiner minimalen Schnittstelle und der klaren Semantik kann er leicht in komplexere Automatisierungslösungen integriert werden.