SET_LINT¶
Einleitung¶
Der Funktionsbaustein SET_LINT dient dazu, einen Wert vom Typ LINT (64‑Bit‑Ganzzahl) aus einem Dateneingang in eine als InOut‑Parameter deklarierte Variable zu schreiben. Er wird typischerweise verwendet, um explizit den Wert einer Variablen zu setzen, die außerhalb des Bausteins definiert ist. Der Baustein folgt der Norm IEC 61499‑1 und stellt einen einfachen, ereignisgesteuerten Schreibzugriff bereit.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
| Name | Typ | Beschreibung | Mit Variablen |
|---|---|---|---|
| REQ | Event | Auslösung des Schreibvorgangs | IN, OUT |
Ereignis-Ausgänge¶
| Name | Typ | Beschreibung | Mit Variablen |
|---|---|---|---|
| CNF | Event | Bestätigung nach erfolgreichem Schreiben | OUT |
Daten-Eingänge¶
| Name | Typ | Initialwert | Beschreibung |
|---|---|---|---|
| IN | LINT | 0 | Der zu schreibende Wert |
Daten-Ausgänge¶
Der Baustein besitzt keine klassischen Datenausgänge, sondern einen InOut‑Parameter OUT, der gleichzeitig als Ein‑ und Ausgang fungiert. Dieser Parameter ist der Zielspeicherort für den Wert von IN.
Adapter¶
Keine.
Funktionsweise¶
Das Verhalten des Bausteins ist auf einen einzelnen Schritt reduziert:
1. Ein Ereignis am Eingang REQ löst die interne Verarbeitung aus.
2. Der Algorithmus führt die Zuweisung OUT := IN aus. Dadurch wird der Wert des Dateneingangs IN in die InOut‑Variable OUT kopiert.
3. Nach Abschluss der Zuweisung wird das Ereignis CNF gesendet, um die erfolgreiche Ausführung zu signalisieren.
Die InOut‑Variable OUT muss in der Applikation an einen Speicherort (z. B. eine globale oder gerätespezifische Variable) gebunden sein. Der Baustein überschreibt den dort gespeicherten Wert mit dem Wert von IN.
Technische Besonderheiten¶
- Der Baustein verwendet einen InOut‑Parameter anstelle eines separaten Datenausgangs. Dies ermöglicht das direkte Schreiben auf eine externe Variable, ohne dass eine zusätzliche Verschaltung über einen Datenausgang erforderlich ist.
- Der Datentyp
LINT(64‑Bit signed integer) ist plattformabhängig; die Implementierung setzt voraus, dass das Zielsystem diesen Typ unterstützt. - Es gibt keine Fehlerbehandlung oder Bereichsprüfung – die Zuweisung erfolgt immer, sobald
REQausgelöst wird. - Der Baustein ist ein SimpleFB mit nur einem ECR‑Zustand, daher ist das Verhalten deterministisch und schnell.
Zustandsübersicht¶
Der Baustein besitzt lediglich einen Zustand REQ. Nach Ausführung des Algorithmus wechselt er automatisch zurück in den Startzustand (implizit). Eine Zustandsmaschine im klassischen Sinne existiert nicht – der Baustein ist stateless. Nach jedem REQ‑Ereignis wird genau ein Schreibvorgang durchgeführt.
Anwendungsszenarien¶
- Initialisierung von LINT‑Variablen: Setzen einer globalen Konfigurationsvariablen auf einen definierten Startwert.
- Steuerungs‑/Regelungsparameter ändern: Dynamisches Überschreiben eines Parameters (z. B. Sollwert oder Grenzwert) durch einen übergeordneten Baustein.
- Test‑ und Debug‑Schnittstellen: Ermöglicht das manuelle Setzen von Variablen zur Laufzeit über eine HMI oder ein Skript.
- Nachrichtenkopf‑/Payload‑Setzen: In der Kommunikation kann
INden Wert einer Nachricht enthalten, der in einen Puffer (OUT) geschrieben wird.
Vergleich mit ähnlichen Bausteinen¶
- SET_DINT / SET_INT: Analoge Bausteine für
DINT(32‑Bit) bzw.INT(16‑Bit). Der Unterschied liegt ausschließlich im Datentyp. - MOVE: Ein allgemeinerer Baustein zum Kopieren beliebiger Werte, oft ebenfalls mit InOut‑Parametern.
SET_LINTist spezialisiert aufLINTund bietet keine weiteren Daten‑ oder Ereigniseingänge. - WRITE_LINT (hypothetisch): Ein Baustein, der eine Adresse explizit über einen Pointer schreibt.
SET_LINTarbeitet ohne Adressierung und erwartet eine direkt verbundene Variable.
Fazit¶
SET_LINT ist ein minimalistischer Funktionsbaustein, der eine einzige Aufgabe zuverlässig erfüllt: das Zuweisen eines LINT‑Werts an eine InOut‑Variable. Aufgrund seiner Einfachheit eignet er sich besonders für leistungskritische oder überschaubare Steuerungsaufgaben, bei denen keine komplexe Logik erforderlich ist. Der Verzicht auf Fehlerbehandlung macht ihn transparent und vorhersagbar, erfordert aber eine korrekte Anbindung der InOut‑Variable durch den Anwender.