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