version
🎧 Podcast
Einleitung
Der Funktionsblock version dient der einfachen Weitergabe einer Versionsinformation. Er empfängt eine Zeichenkette (String) als Eingabe und gibt diese unverändert an seinem Ausgang wieder. Dieser Baustein ist nützlich, um Versionsnummern oder andere Kennzeichnungen innerhalb einer Anwendungskette zu transportieren oder für Diagnosezwecke bereitzustellen.
Schnittstellenstruktur
Ereignis-Eingänge
REQ: Dieses Ereignis löst die Verarbeitung des Funktionsblocks aus. Bei seinem Eintreffen wird der Wert des zugehörigen Dateneingangs
VERSIONan den DatenausgangVERSIONOkopiert.
Ereignis-Ausgänge
CNF: Dieses Ereignis signalisiert die erfolgreiche Beendigung der Operation. Es wird gleichzeitig mit der Datenausgabe
VERSIONOerzeugt.
Daten-Eingänge
VERSION (STRING): Dieser Eingang erwartet die Zeichenkette, die weitergegeben werden soll (z.B. eine Versionsnummer wie „1.2.3“).
Daten-Ausgänge
VERSIONO (STRING): Dieser Ausgang gibt den empfangenen Wert von
VERSIONunverändert aus.
Adapter
Dieser Funktionsblock verfügt über keine Adapterschnittstellen.
Funktionsweise
Die Funktionsweise des version-Blocks ist äußerst einfach und deterministisch. Bei jedem Eintreffen des Ereignisses REQ wird der aktuelle Wert der Eingangsvariablen VERSION in die Ausgangsvariable VERSIONO kopiert. Unmittelbar nach dieser Zuweisung wird das Bestätigungsereignis CNF zusammen mit dem neuen Ausgabewert erzeugt. Es findet keine Formatprüfung, Manipulation oder Speicherung des Wertes statt.
Technische Besonderheiten
Einfache Durchreichung: Der Block führt keine Transformation oder Logik auf den Daten durch.
Direkte Kopplung: Die Ereignisse
REQundCNFsind direkt gekoppelt; die Ausführungszeit ist vernachlässigbar.Kein interner Zustand: Der Block besitzt keinen eigenen Speicher. Jede Ausführung ist ausschließlich von den aktuellen Eingängen abhängig.
Zustandsübersicht
Der Funktionsblock version ist zustandslos. Er verharrt in einem einzigen, passiven Zustand, bis ein REQ-Ereignis eintrifft. Die Reaktion darauf (Kopieren der Daten und Auslösen von CNF) ist instantan und führt nicht zu einem anderen Zustand.
Anwendungsszenarien
Versionsweitergabe: In einer Anwendungskette kann ein übergeordneter Baustein (z.B. ein Master- oder Verwaltungs-FB) seine eigene Version an diesen Block übergeben, um sie an nachgelagerte Diagnose- oder Logging-Funktionen zu senden.
Diagnose und Tracing: Der Block kann verwendet werden, um bestimmte Software-Stände oder Konfigurationsversionen in einem zentralen Log- oder Anzeigesystem zu sammeln.
Datenkonsolidierung: In Verbindung mit anderen Funktionsblöcken kann er dazu dienen, Versionsinformationen aus verschiedenen Quellen an einer zentralen Stelle (z.B. einem HMI oder einem Netzwerkdienst) bereitzustellen.
⚖️ Vergleich mit ähnlichen Bausteinen
E_SRoderE_RS(Flip-Flops): Diese Blöcke besitzen einen internen Zustand (gesetzt/rückgesetzt), der durch Ereignisse geändert wird. Derversion-Block hat keinen solchen Zustand.E_MERGE: Dieser Block fusioniert Ereignisse von mehreren Eingängen. Derversion-Block hat nur einen einzigen Ereigniseingang und verarbeitet keine Ereignisströme.Einfache Daten-Blöcke (z.B.
E_R_TRIG): Diese reagieren auf Signalflanken oder führen Timing-Operationen durch. Derversion-Block führt ausschließlich eine Datenkopie durch.Generische Blöcke wie
COPY: EinCOPY-Block würde eine ähnliche Funktion erfüllen (Daten von A nach B kopieren), ist aber typischerweise ein reiner Datenbaustein ohne Ereignissteuerung. Derversion-Block folgt dem standardmäßigen IEC 61499-Ereignis-/Datenfluss-Paradigma.
Fazit
Der version-Funktionsblock ist ein minimalistisches und spezialisiertes Werkzeug zur Weitergabe von String-Informationen innerhalb eines ereignisgesteuerten Steuerungssystems. Seine Stärke liegt in der Einfachheit und Klarheit seines Zwecks. Für reine Datenkopien ohne Ereignislogik könnten alternative Implementierungen in Frage kommen, für die Integration in eine standardkonforme IEC 61499-Applikation mit klar definiertem Ereignisfluss ist er jedoch gut geeignet.