F_NOW_MONOTONIC
Einleitung
F_NOW_MONOTONIC ist eine IEC 61499-konforme Funktion, die einen monotonen Zeitstempel zurückgibt.
Im Gegensatz zur Systemzeit (NOW) ist diese Zeit unabhängig von externen Änderungen (z. B. Zeitzonen oder NTP-Updates) und eignet sich daher ideal für zeitkritische Steuerungen oder Performance-Messungen.
Die Funktion dient als Wrapper für die ST-Funktion NOW_MONOTONIC().
Schnittstellenstruktur
Ereignis-Eingänge
REQ (Trigger): Startet die Ausführung der Funktion. Bei Eingang dieses Ereignisses wird der aktuelle monotone Zeitwert berechnet und über den Ausgang
CNFausgegeben.
Ereignis-Ausgänge
CNF (Bestätigung): Signalisiert den Abschluss der Operation. Das Ereignis wird zusammen mit dem berechneten Zeitwert (
TIME) ausgegeben.
Daten-Eingänge
Keine – Die Funktion benötigt keine zusätzlichen Eingabeparameter.
Daten-Ausgänge
TIME (Ausgangsvariable): Rückgabewert vom Typ
TIME, der den aktuellen Wert der monotonen Uhr repräsentiert. Beispiel:T#123456ms(abhängig vom Hardware/OS-Referenzpunkt).
Funktionsweise
Initialisierung: Die Funktion wird durch das Ereignis
REQaktiviert. Ressourcen werden nicht persistent gespeichert, da es sich um eine zustandslose Berechnung handelt.Makroausführung:
Ruft die systemnahe Funktion
NOW_MONOTONIC()auf.Weist den Rückgabewert der Ausgangsvariable
TIMEzu.Löst das Ereignis
CNFaus.
Fehlerbehandlung:
Keine spezifische Fehlerbehandlung, da die Funktion keine externen Abhängigkeiten hat.
Bei Hardware/OS-Fehlern ist der Rückgabewert undefiniert.
Technische Besonderheiten
Monotone Zeit: Garantiert stetig steigende Werte, selbst bei Systemzeitänderungen. Hinweis: Der Referenzpunkt ist hardwareabhängig (z. B. Systemstart).
Lizenz: Eclipse Public License 2.0 (EPL-2.0).
Rückgabecodes
Erfolg: Gültiger
TIME-Wert (z. B.T#42s).Fehler: Keine expliziten Fehlercodes, aber undefinierte Werte bei Systemfehlern.
Anwendungsszenarien
Echtzeit-Messungen: Laufzeitanalyse von Steuerungszyklen ohne Einfluss durch Systemzeitänderungen.
Synchronisation: Zeitstempel für Logging in verteilten Systemen.
Timeout-Steuerung: Zuverlässige Timer für kritische Prozesse.
⚖️ Vergleich mit ähnlichen Bausteinen
Funktion |
|
|
|
|---|---|---|---|
Zeitquelle |
Monoton (Hardware) |
Systemzeit |
Systemzeit (UTC) |
Beeinflussbar |
Nein |
Ja (NTP, Zeitzone) |
Ja (NTP) |
Anwendungsfall |
Echtzeit-Messungen |
Allgemeine Zeitstempel |
Zeitstempel (global) |
Fazit
F_NOW_MONOTONIC ist ein schlanker, aber unverzichtbarer Baustein für Anwendungen, die eine zuverlässige und monotone Zeitquelle benötigen.
Durch seine Hardwarenähe und Unabhängigkeit von Systemzeitänderungen eignet er sich besonders für industrielle Echtzeitanwendungen.
Die Integration in Eclipse 4diac gewährleistet Kompatibilität mit modernen Automatisierungslösungen.
Hinweis: Für absolute Zeitreferenzen sollte NOW_SYSTEM() verwendet werden.