Time of Day

enter

Level-2
Beiträge
83
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
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 :rolleyes:
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
)
= ....:confused:
 
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 ...
 
Zuletzt bearbeitet:
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
 
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?
 
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
 
Zurück
Oben