Funktionen
In ST können Sie einen Funktionsaufruf als Operand verwenden.
Beispiel:
nResult := F_Add(7,5) + 3;
Siehe auch:
TIME()-Funktion
Diese Funktion liefert einen Wert vom Datentyp TIME.
Die TIME()-Funktion stellt keinen absoluten Bezugspunkt dar, sondern kann durch die Differenzbildung von mindestens zwei TIME()-Rückgabewerten für relative Zeitmessungen verwendet werden.
Beispiel in ST:
Das folgende Beispiel beinhaltet einen TON-Baustein (fbTimer), der mit einer Zeit von 5 Sekunden beschaltet (tTimerValue) und zu Programmbeginn gestartet wird. Die steigende Flanke der Timer-Aktivierung wird von einem R_TRIG-Baustein erkannt (fbTrigger), woraufhin der Rückgabewert der TIME()-Funktion zum ersten Mal zwischengespeichert wird (tTimeReturn1). Sobald die Zeitspanne des Timers abgelaufen ist, wird ein zweiter Rückgabewert der TIME()-Funktion zwischengespeichert (tTimeReturn2). Durch die Differenzbildung der beiden gespeicherten TIME()-Rückgabewerte (tDifference) wird die relative Zeit zwischen den jeweiligen TIME()-Aufrufen berechnet. In diesem Fall wird demnach die Zeit zwischen Timer-Anfang und Timer-Ende kalkuliert, welche 5 Sekunden beträgt.
PROGRAM MAIN
VAR
bStart : BOOL := TRUE;
fbTimer : TON;
tTimerValue : TIME := T#5S;
fbTrigger : R_TRIG;
tTimeReturn1 : TIME;
tTimeReturn2 : TIME;
tDifference : TIME;
END_VAR
//================================================
fbTimer(IN := bStart, PT := tTimerValue);
fbTrigger(CLK := fbTimer.IN);
IF fbTrigger.Q THEN
tTimeReturn1 := TIME();
END_IF
IF fbTimer.Q THEN
bStart := FALSE;
tTimeReturn2 := TIME();
tDifference := tTimeReturn2 - tTimeReturn1; // The difference will be T#5s
END_IF