# Time of Day



## enter (29 Juni 2007)

Hallo,
Ich möchte ganz gerne ein Vergleich mit der aus der Cpu Zeit gewonnenen Time of Day wert mit einen zweiten Time of Day wert auf gleich vergleichen
z.B. 
L Tod#11:59:00 ist dann die cpu Zeit
L Tod#12:00:00 und die zeit in dem was ausgeführt werden soll
==d 

= ....

bloß jetzt habe ich natürlich ein Problem mit den Millisekunden
mal klappt der Vergleich und mal nicht gibt es irgendwie eine Möglichkeit die
Millisekunden raus zu maskieren.Ich habe zwar eine Lösung aber ich glaube das kann auch einfachen 
U( 
L TOD#14:0:0.0 
L TOD#13:59:0.0 // Cpu Zeit
<=D 
) 
U( 
L TOD#13:59:0.0 // Cpu Zeit
L TOD#14:0:1.0 
<=D 
) 
= ....


----------



## Larry Laffer (29 Juni 2007)

Hallo,
TOD ist die Zeit die seit 0:00 Uhr abgelaufen ist in Millisekunden - und zwar eigentlich als DINT. Du brauchst also nur den Wert durch 1000 zu teilen und du hast Sekunden , nochmal durch 60 und du hast Minuten usw.

Nachtrag :
Da fällt mir zum Thema ausmaskieren noch etwas ein ...

L CPU_Zeit
L 1000
/ D
L 1000
* D
T CPU_Zeit_neu

In CPU_Zeit_neu sind die Millisekunden nun nicht mehr drin ...


----------



## enter (29 Juni 2007)

Jo danke Larry Laffer,
Da hätte ich ja auch selber drauf kommen können tja :???:


----------



## IceBear (13 September 2007)

Hallo alle zusammen,
Hatte das gleiche Problem wie der Larry, nur das ich so was noch nie gemacht habe... Bin jetzt seit fast 3 Jahren ausgelernt, hab von meinem Chef den SERV 1 Kurs von Siemens bekommen und nun darf ich S7 a la "learning by doing" machen... Hab es auch eigentlich schon recht gut drauf, muß aber sagen das die Tipps die ich hier im Forum gelesen hab mir dabei sehr geholfen haben, insbesondere die mit der Zeit und dem OP77A...

Gruß IceBear


----------



## IceBear (13 September 2007)

Hups, meinte den enter...


----------



## Pinguino (14 September 2007)

Kannst  du ein Konkreten Beispiel machen Larry mit /1000 und /60??


----------



## misconduct (14 September 2007)

hi larry,

eine frage zu folgendem awl code von dir :

"Nachtrag :
Da fällt mir zum Thema ausmaskieren noch etwas ein ...

L CPU_Zeit
L 1000
/ D
L 1000
* D
T CPU_Zeit_neu

In CPU_Zeit_neu sind die Millisekunden nun nicht mehr drin ..."

warum sollen da die milisekunden fehlen ?
ich dividiere zuerst und dann multipliziere ich wieder mit dem selben wert... warum soll das ergebnis dann anders als der ursprungswert sein?


----------



## MSB (14 September 2007)

Die Millisekunden würden sich nach der Division hinterm Komma befinden.

Also: 1455 ms / 1000 = 1,455
Bei Ganzzahlen (/D bzw. *D) gibt es aber kein Komma, alles hinterm Komma ist also verloren, bzw. nur noch über einen Sonderbefehl als Rest vorhanden.
Also ist das Ergebnis 1.
1 * 1000 = 1000 ms, also hast du den ms-Anteil eliminiert.

Mfg
Manuel


----------

