Zum Inhalt

GET_INT

GET_INT


Einleitung

Der Funktionsblock GET_INT dient dazu, den aktuellen Wert einer INT-Variablen (als InOut-Parameter definiert) auszulesen und als gepufferten Wert am Ausgang bereitzustellen. Die Pufferung erfolgt bei jedem Ausführungszyklus, sodass der Ausgangswert bis zur nächsten Anforderung stabil bleibt.

Schnittstellenstruktur

Ereignis-Eingänge

Ereignis Beschreibung
REQ Normaler Ausführungsrequest; löst das Auslesen der InOut-Variablen IN aus.

Ereignis-Ausgänge

Ereignis Beschreibung
CNF Bestätigung der Ausführung; signalisiert, dass der Wert von IN gepuffert und am Ausgang OUT bereitsteht.

Daten-Eingänge

Keine eigenständigen Dateneingänge vorhanden.

Der Eingabewert wird über den InOut-Parameter IN bereitgestellt (siehe nächster Abschnitt).

Daten-Ausgänge

Ausgang Typ Beschreibung
OUT INT Gepufferter Ausgabewert, der den letzten gelesenen Wert von IN enthält. Initialwert: 0.

Adapter

Keine Adapter vorhanden.

InOut-Variablen (implizit)

Variable Typ Beschreibung
IN INT Quelle des auszulesenden Werts. Kann sowohl als Eingabe als auch als Ausgabe verwendet werden (hier nur lesend). Initialwert: 0.

Funktionsweise

Der FB arbeitet als einfacher Lesepuffer: 1. Beim Eintreffen des Ereignisses REQ wird die ST-Algorithmus REQ ausgeführt: structured text OUT := IN; 2. Der aktuelle Wert der InOut-Variablen IN wird in den Ausgang OUT kopiert. 3. Anschließend wird das Ereignis CNF ausgegeben, um den Abschluss der Operation zu signalisieren.

Da IN als InOut-Parameter deklariert ist, wird innerhalb des Bausteins direkt auf die Speicherstelle der übergeordneten Applikation zugegriffen. Der Wert wird nicht verändert, sondern lediglich ausgelesen und zwischengespeichert.

Technische Besonderheiten

  • InOut-Parameter: Die Verwendung einer InOut-Variable erlaubt den direkten Zugriff auf die Datenquelle ohne separate Daten-Eingänge und -Ausgänge. Dies reduziert die Anzahl der Verbindungen und spart Ressourcen.
  • Pufferung: Der Ausgang OUT behält seinen Wert, bis der nächste REQ-Aufruf erfolgt. Dadurch ist der Ausgabewert unabhängig von möglichen Änderungen der Quelle zwischen zwei Lesezyklen.
  • Initialwerte: Sowohl IN als auch OUT starten mit 0, sodass auch ohne vorherige Ausführung definierte Werte vorliegen.

Zustandsübersicht

Der FB besitzt einen einzigen Zustand REQ: - REQ: Bei Aktivierung wird der Algorithmus REQ ausgeführt, danach das Ereignis CNF gesendet. Der Zustand bleibt bestehen (kein Übergang in einen anderen Zustand).

Zustand Eintrittsbedingung Aktion Ausgangsereignis
REQ Ereignis REQ empfangen OUT := IN; CNF

Anwendungsszenarien

  • Datenpufferung: Ein von mehreren Bausteinen genutzter INT-Wert soll stabil zur Verfügung stehen, ohne dass jeder Baustein direkt auf die Quelle zugreifen muss.
  • Synchronisation: In zeitkritischen Steuerungen kann der aktuelle Wert einer Variablen zu einem bestimmten Zeitpunkt „eingefroren“ und später verarbeitet werden.
  • Ersatz eines MOVE-FBs: Wenn aus Performance-Gründen ein direkter Speicherzugriff über InOut bevorzugt wird, ersetzt GET_INT den klassischen MOVE-Baustein mit separatem Eingang und Ausgang.

Vergleich mit ähnlichen Bausteinen

Baustein Typ des Eingangs Pufferung Besonderheit
GET_INT InOut (INT) Ja (einmaliges Lesen bei REQ) Zugriff auf Originalvariable, keine zusätzliche Variable erforderlich
MOVE (z.B. IEC 61131-3) Eingang (INT) Ja (bei jeder Ausführung) Kopiert Wert von einem expliziten Eingang in einen Ausgang
F_TRIG / R_TRIG Eingang (BOOL) Nein (nur Flankenerkennung) Arbeitet mit Booleschen Werten

Der Hauptunterschied liegt im Verzicht auf einen separaten Dateneingang durch die Nutzung eines InOut-Parameters.

Fazit

GET_INT ist ein einfacher, aber effektiver Funktionsblock zum gepufferten Auslesen einer INT-Variable. Durch die Verwendung eines InOut-Parameters reduziert er den Verbindungsaufwand und eignet sich besonders für Anwendungen, in denen ein stabiler Momentanwert benötigt wird. Seine klare, zustandsarme Struktur macht ihn zuverlässig und leicht verständlich.