FUNCTION "ZeitInt" : VOID
TITLE =
//Mit diesem Baustein kann man z.B. die Laufzeit eines Bausteines aufnehmen.
//Hierzu wären die Aufrufe wie folgt:
////Löschen der Speicher
// CALL "ZeitMess"
// Sample :="VKE0"
// Reset :="VKE1"
// ZeitSpeicher:=MD450
// LetztZeit :=MD454
//
////Erster Aufruf zum Messtart
// CALL "ZeitMess"
// Sample :="VKE1"
// Reset :="VKE0"
// ZeitSpeicher:=MD450
// LetztZeit :=MD454
//
// CALL "FB_SPS_COMM" , "DB_SPS_COMM"
//
////Zweiter Aufruf für Messende
// CALL "ZeitMess"
// Sample :="VKE1"
// Reset :="VKE0"
// ZeitSpeicher:=MD450
// LetztZeit :=MD454
//
//Wird der Baustein ohne Reset Aufgerufen, integriert dieser die Zeit in der
//Variablen Zeitspeicher kontinuierlich auf.
VERSION : 0.0
VAR_INPUT
Sample : BOOL ;
Reset : BOOL ;
END_VAR
VAR_IN_OUT
ZeitSpeicher : TIME ;
LetztZeit : TIME ;
END_VAR
VAR_TEMP
DateTime : DATE_AND_TIME ;
Zeit : TIME_OF_DAY ;
SFC_Status : INT ;
END_VAR
BEGIN
NETWORK
TITLE =Speicher zurücksetzen
U #Reset;
SPBNB _003;
L 0;
T #ZeitSpeicher;
_003: NOP 0;
NETWORK
TITLE =Zeitscheibe generieren
U( ;
CALL "READ_CLK" (
RET_VAL := #SFC_Status,
CDT := #DateTime);
U BIE;
) ;
SPBNB _014;
CALL "DT_TOD" (
IN := #DateTime,
RET_VAL := #Zeit);
_014: NOP 0;
NETWORK
TITLE =Zeitscheibe addieren
U #Sample;
SPBN kzsb;
L #Zeit;
L #LetztZeit;
-D ;
L #ZeitSpeicher;
+D ;
T #ZeitSpeicher;
kzsb: L #Zeit;
T #LetztZeit;
END_FUNCTION