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