aktuelle Zeit bzw. Minuten vergleich

Fragwürdig

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Wie kann ich die Minuten aus der aktuellen Zeit auslesen um diese danach mit einem INT zu vergleichen?
z.B.
aktuelle Zeit: 13.30

L 30
L aktuelle Minute
==I

Wer kann mir helfen???:confused:
Danke und Gruss
 
Hallo,
hast du die aktuelle Zeit schon aus der Systemuhr ausgelesen oder das auch noch nicht ?
Wenn ja, dann hättest du die im Format TOD (TimeOfDay) vorliegen, welche einem DINT entspricht und die Anzahl der vergangenene Millisekunden seit 0:00 Uhr beinhaltet. Da ist dann ein bißchen Rechenarbeit gefragt.

Darüber hinaus könnte man zu diesem Thema noch die Forensuche bemühen, die sicherlich so einige Lösungsansätze ausspucken wird ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Am einfachsten, du nutzt im OB 1 aus den Lokaldaten die Variable OB1_Date_Time. Die hat das Format Date_and_Time.

Date_and_Time hat folgende Zusammensetzung:

Der Datentyp Date_And_Time wird im BCD-Format gespeichert:

Bytes Inhalt Bereich
0 Jahr 90 ... 89, d.h. die Jahre 1990 bis 2089
1 Monat 01 ... 12
2 Tag 1 ... 31
3 Stunde 0 ... 23
4 Minute 0 ... 59
5 Sekunde 0 ... 59
6 2 MSD von ms 00 ... 99
7 (4 MSB) LSD von ms 0 ... 9
7 (4 LSB) Wochentag 1 ... 7 (1 = Sonntag)

Dann noch Byte 4 von BCD zu Int wandeln (der Befehl heißt BTI), anschließend im Vergleicher verwenden.

Datum und Uhrzeit kann man auch mit einem Baustein aus der Standard-Library auslesen, wenn man das nicht im OB1 programmieren will.
 
Hallo Larry,
ja hab mich schon viel zu lange durch gelesen.

mein Versuch, welcher nicht das günschte Ergebnis bringen:

CALL "TIME_TCK"
RET_VAL:=#t_Time

L #t_Time // in ms
L 1000 // in s
/D
L 60 // in min
/D
T #t_Time_1
 
Danke Ralle


hab ich schon einmal versucht..hat zuerst aber nicht geklappt.

L P##i_timeandate
LAR1

L LB 4
BTI
T #t_Time_1
die akt. 14.19Uhr...under der wert =10?!

und wie funktionierts mit dem Time of Day?

GS
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Der TOD ist sehr viel umfangreicher wie das Beispiel von Ralle, welches allerdings nur im OB1 funktioniert und auch nur mit der OB1-Variablen (#OB1_Date_Time). Das wäre m.E. der beste Weg.

Zu meinem Vorschlag wirklich erstmal mit der Suche des Forums arbeiten und sich dann auf etwas beziehen (falls noch etwas unklar ist).

Gruß
Larry
 
CALL "TIME_TCK"
RET_VAL:=#t_Time

L #t_Time // in ms
L 1000 // in s
/D
L 60 // in min
/D
T #t_Time_1

... den Beitrag hatte ich erst gar nicht gesehen ...
Wenn du mit dem TOD arbeitest und es so machst, wie von dir skizziert dann erhälst du zwar die Rest-Minuten für die aktuelle Uhrzeit - das wären aber für z.B. 14:30 Uhr := 14*60 + 30 := 870.
Hierauf müßtest du jetzt noch ein MOD 60 machen und dann würden nur noch die Minuten übrig bleiben ...

Also so :
Code:
L #t_Time // in ms
L 1000 // in s
/D 
L 60 // in min
/D 
L 60
MOD
T #t_Time_Minuten
Gruß
Larry
 
Zurück
Oben