F_NOW_MONOTONIC

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 CNF ausgegeben.

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

  1. Initialisierung: Die Funktion wird durch das Ereignis REQ aktiviert. Ressourcen werden nicht persistent gespeichert, da es sich um eine zustandslose Berechnung handelt.

  2. Makroausführung:

    • Ruft die systemnahe Funktion NOW_MONOTONIC() auf.

    • Weist den Rückgabewert der Ausgangsvariable TIME zu.

    • Löst das Ereignis CNF aus.

  3. 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

  1. Echtzeit-Messungen: Laufzeitanalyse von Steuerungszyklen ohne Einfluss durch Systemzeitänderungen.

  2. Synchronisation: Zeitstempel für Logging in verteilten Systemen.

  3. Timeout-Steuerung: Zuverlässige Timer für kritische Prozesse.


⚖️ Vergleich mit ähnlichen Bausteinen

Funktion

F_NOW_MONOTONIC

NOW()

NOW_SYSTEM()

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.