GET_UINT¶
Einleitung¶
Der Funktionsblock GET_UINT liest den aktuellen Wert einer als InOut-Variable übergebenen UINT-Quelle aus und stellt diesen als gepufferten Ausgangswert bereit. Er dient dazu, einen konsistenten Schnappschuss eines externen oder internen UINT-Werts zu einem definierten Zeitpunkt zu erfassen und für die weitere Verarbeitung im Ablauf bereitzustellen.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
| Ereignis | Beschreibung |
|---|---|
| REQ | Normaler Ausführungsauftrag; löst das Lesen der InOut-Variablen und die Aktualisierung des Ausgangs aus. |
Ereignis-Ausgänge¶
| Ereignis | Beschreibung |
|---|---|
| CNF | Bestätigt die erfolgreiche Ausführung von REQ und signalisiert, dass die Ausgänge gültig sind. |
Daten-Eingänge¶
| Variable | Typ | Beschreibung |
|---|---|---|
| IN | UINT | Quellvariable, die als InOut-Parameter bereitgestellt wird. Der Wert wird bei REQ ausgelesen und unverändert an den Ausgang übergeben. Standardwert: 0. |
Hinweis: IN ist als InOut-Variable deklariert, wird innerhalb des Bausteins jedoch nur lesend verwendet.
Daten-Ausgänge¶
| Variable | Typ | Beschreibung |
|---|---|---|
| OUT | UINT | Gepufferter Ausgangswert, der den bei der letzten REQ-Ausführung gelesenen Wert von IN enthält. Standardwert: 0. |
Adapter¶
Keine.
Funktionsweise¶
Der Baustein verfügt über einen einzigen Ausführungszustand (REQ). Wird der Ereigniseingang REQ aktiviert, führt er folgende Aktion aus:
- Lesen des aktuellen Werts der InOut-Variablen
IN. - Kopieren dieses Werts in die Ausgangsvariable
OUT. - Auslösen des Ereignisausgangs
CNF, um die Fertigstellung zu signalisieren.
Die Verarbeitung erfolgt strikt sequenziell und ohne Verzögerung.
Technische Besonderheiten¶
- InOut-Variable als Quelle: Obwohl
INals InOut deklariert ist, wird sie ausschließlich lesend verwendet. Der Baustein schreibt nicht zurück, sodass die Quelle unverändert bleibt. - Pufferung: Der Ausgang
OUThält den Wert, bis der nächsteREQausgeführt wird. Dadurch wird eine Entkopplung zwischen der Quelle und der nachfolgenden Logik erreicht. - Einfaches Zustandsmodell: Der Baustein besteht nur aus einem Zustand, sodass keine komplexen Ablaufsteuerungen erforderlich sind.
Zustandsübersicht¶
| Zustand | Beschreibung |
|---|---|
| REQ | Wartet auf das Eintreffen des Ereignisses REQ und führt dann die Zuweisung OUT := IN durch. Anschließend wird CNF gesendet. |
Es gibt keinen expliziten Start- oder Endzustand; nach der Ausführung bleibt der Baustein im Zustand REQ bereit für den nächsten Auftrag.
Anwendungsszenarien¶
- Sichere Wertübernahme: Ein UINT-Wert aus einer globalen Variablen oder einem anderen Baustein soll zu einem definierten Zeitpunkt eingefroren werden, um während eines Ablaufs konsistent zu bleiben.
- Abtastung von Messwerten: In einer zyklischen Steuerung wird der aktuelle Wert eines Zählers oder Sensors ausgelesen und zwischengespeichert.
- Datenübergabe zwischen Tasks: Der Baustein kann als einfache Pufferschicht zwischen asynchronen Kommunikationspfaden dienen.
Vergleich mit ähnlichen Bausteinen¶
Im Gegensatz zu einem reinen Eingangsbaustein, der einen festen Datenport verwendet, erlaubt GET_UINT die Nutzung einer InOut-Variablen als Quelle. Dadurch kann die Variable sowohl von außen beschrieben als auch gelesen werden, ohne eine separate Verbindung zu einem Eingang zu benötigen. Reine Lesebausteine (z. B. UINT-Eingang) bieten keine solcher Flexibilität, sind aber klarer in der Schnittstelle. Gegenüber einem Speicherbaustein (z. B. R_TRIG oder SR) speichert GET_UINT keine Zustände, sondern lediglich den letzten gelesenen Wert.
Fazit¶
GET_UINT ist ein einfacher, aber nützlicher Funktionsblock, der einen UINT-Wert aus einer InOut-Variablen puffert. Sein minimalistisches Design – ein Ereignis, eine Aktion – macht ihn ideal für Situationen, in denen eine saubere, zeitlich definierte Wertübernahme erforderlich ist. Er eignet sich besonders für Anwendungen, die eine konsistente Datenbasis innerhalb eines Ablaufs benötigen, ohne die Quelle zu beeinflussen.