Gültigkeitsprüfung des DATE_AND_TIME-Werts
IS_VALID_DT prüft, ob die Kombination der INT-Werte für Jahr, Monat, Tag, Stunde, Minute, Sekunde und Millisekunde einen gültigen Wert für Datum und Uhrzeit ergibt. Wenn die Werte für Datum und Uhrzeit gültig sind, wird der Boolesche Ausgangsmerker gesetzt.
Eingang
1. Eingang: Jahr
2. Eingang: Month
3. Eingang: Tag
4. Eingang: Stunde
5. Eingang: Minute
6. Eingang: Sekunde
7. Eingang: Millisekunde
Ausgang
TRUE, wenn die Ergebniswerte für Datum und Uhrzeit gültig sind.
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
YEAR_value: INT:=2011;
MONTH_value: INT:=12;
DAY_value: INT:=24;
HOUR_value: INT:=18;
MINUTE_value: INT:=29;
SECOND_value: INT:=59;
MILLISECOND_value: INT:=0;
VALID: BOOL:=FALSE;
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 9 ;
NETWORK_BODY
B(B_VARIN,,YEAR_value,15,1,17,3,);
B(B_VARIN,,MONTH_value,15,2,17,4,);
B(B_VARIN,,DAY_value,15,3,17,5,);
B(B_VARIN,,HOUR_value,15,4,17,6,);
B(B_VARIN,,MINUTE_value,15,5,17,7,);
B(B_VARIN,,SECOND_value,15,6,17,8,);
B(B_VARIN,,MILLISECOND_value,15,7,17,9,);
B(B_F,IS_VALID_DT_INT!,Instance,17,0,26,9,);
B(B_VAROUT,,VALID,26,1,28,3,);
L(1,0,1,9);
END_NETWORK_BODY
END_NET_WORK
END_BODY
VALID := IS_VALID_DT_INT(YEAR := YEAR_value,
MONTH := MONTH_value,
DAY := DAY_value,
HOUR := HOUR_value,
MINUTE := MINUTE_value,
SECOND := SECOND_value,
MILLISECOND := MILLISECOND_value);