Zeit setzen

Dieser Baustein ermöglicht das Setzen einer einzelnen Komponente für den Zeitwert des am Eingang IO anliegenden Zeitdatentyps. Der zu setzende Wert der Komponente wird über den Eingang InX festgelegt.

In Abhängigkeit des gewählten Datentyps können folgende Komponenten gesetzt werden: Stunde, Minute, Sekunde, Millisekunde und Tag (nur TIME).

Der Datentyp TIME, welcher eine Zeitdauer angibt, wird hier ebenfalls als strukturierter Datentyp aufgefasst, dessen einzelne Teile gesetzt werden können.

Wenn eine Zahl kleiner als 0 am Eingang anliegt, wird die gewählte Komponente nicht verändert.

Aus dem Wert der Komponente wird immer eine gültige Uhrzeit errechnet, auch wenn sie ihren gültigen Bereich überschreitet. In diesem Fall wird eine gültige Zeit durch Anpassung der anderen Komponenten erreicht. Wenn sich durch die Anpassung ein Zeitpunkt für einen anderen Tag ergibt, wird auch der Datumsanteil des Datentyps angepasst:

Zeit Eingabe Ergebnis
13:25:20 60 Minuten 14:00:20
10.07.2009 13:25:30 25 Stunden 11.07.2009 01:25:20

Wenn sich aus dem anliegenden Wert nicht direkt eine gültige Zeit ergibt, wird der Ausgang Err auf HIGH gesetzt.

Parameter

Über den Parameter-Dialog kann der Datentyp und die zu setzende Komponente ausgewählt werden.

Signale

Name I/O Typ(en) Funktion
IO I/O TOD, DT, OLEDATETIME, TIME Zeitwert
InX I WORD Teilkomponente
Err O BIT Fehleranzeige

Visualisierung

Der augenblickliche Datentyp und die zu setzende Komponente werden auf dem Baustein dargestellt.

Bemerkungen

Der Datentyp kann auch durch Beschaltung des Eingangs IO geändert werden.

Da der TIME Datentyp eine auf LONG basierende Dauer in Millisekunden ist, ist der maximal darstellbare Zeitraum 49 Tage, 17 Stunden, 2 Minuten, 47 Sekunden und 295 Millisekunden. Deshalb ist der größte akzeptierte Wert für Tage eine 49.

Wenn bei dem OLEDATETIME Datentyp durch das Setzen einer Zeit der Datumsanteil das definierte Maximum überschreitet bzw. das Minimum unterschreitet, wird das Ergebnis auf diese Grenzwerte gesetzt.

Wenn der Eingang InX unbeschaltet ist, entspricht dies einer 0. Dies ist ein gültiger Wert und wird gesetzt.