# Uhrzeit auslesen und vergleichen



## Sch.junior (10 März 2011)

Hallo,
ich habe mich bereits hier im Forum informiert und auch einige Sache ausprobiert. Leider alles ohne Erfolg.

Ich habe einen Betriebsstundenzähler programmiert. Dieser funktioniert ohne Probleme. Nur muss ich den Zähler zum Schichtwechsel wieder zurücksetzen.
Demnach um 06:00, 14:00 und um 22:00.

Ich habe schon Zeitschaltuhren ausprobiert. Wie kann ich die Uhrzeit aus dem SFC 1 auslesen und in andere Bausteine zum Vergleich übertragen?
Es soll quasi der Vergleich Uhrzeit mit den oben genannten Zeiten verglichen werden und zu dem Zeitpunkt ein Signal ausgegeben werden.

Bin für jede Hilfe dankbar.


----------



## Verpolt (10 März 2011)

Hallo,

Schau dir mal den FC8 in der Step7 Standardlibrary an.

FC 8 "DT_TOD"


----------



## Sch.junior (10 März 2011)

das sieht schon ganz gut aus. aber wie muss ich ihn beschreiben?
das überschreitet meinen horizont. :-(


----------



## Verpolt (10 März 2011)

*f1 *

__________________________


----------



## volker (10 März 2011)

entweder so im ob1 aufrufen

```
CALL  "DT_TOD"
       IN     :=#OB1_DATE_TIME
       RET_VAL:=MD400
```
oder woanders und mit der sfc1 dt lesen und dann fc8 nehmen


----------



## Sch.junior (10 März 2011)

mit der Hilfe aus F1 kann ich nichts anfangen.

wo bekomm ich denn die Eingangsvariable her? und wie muss ich diese schreiben? als merkerdoppelwort?


----------



## MCerv (10 März 2011)

Wenn Du Dir mal das DT-Format in Byte's aufgelöst und einzeln anschaust, kannst Du direkt auf die Stunde und Minute zugreifen! Einfach mal die in der Variablen-Tabelle *byteweise* auflisten und ansehen.

Ich habe leider Step-7 grad zur Hand, aber so in etwa ist das DT-Format aufgebaut und man kann direkt drauf zugreifen:

Byte 1 = Tag
Byte 2 = Monat
Byte 3 = Jahr
Byte 4 = Stunde
Byte 5 = Minute
Byte 6 = Sekunde


----------



## Corosop15 (10 März 2011)

Sch.junior schrieb:


> Hallo,
> ich habe mich bereits hier im Forum informiert und auch einige Sache ausprobiert. Leider alles ohne Erfolg.
> 
> Ich habe einen Betriebsstundenzähler programmiert. Dieser funktioniert ohne Probleme. Nur muss ich den Zähler zum Schichtwechsel wieder zurücksetzen.
> ...


 
Schau mal hier:
http://www.sps-forum.de/showthread.php?t=15738&highlight=schaltuhr


----------



## Sch.junior (10 März 2011)

ich habe das nun mit dem auslesen und vergleichen hinbekommen.
nun überspringt die uhrzeit aber einfach meine eingestellte zeit.
liegt es daran dass auch die ms gezählt werden und diese nicht schnell genug übertragen werden?kann man die zeiten bis auf sekunden, minuten und stunden reduzieren?


----------



## M-Ott (10 März 2011)

Sch.junior schrieb:


> nun überspringt die uhrzeit aber einfach meine eingestellte zeit.


Du hast noch nicht sonderlich viel mit SPS zu tun gehabt, oder?
sagt Dir der Begriff "Zykluszeit" etwas?
Du darfst die Millisekunden natürlich nicht mit auswerten, außer, Du schaffst es, so zu programmieren, dass Dein Programm in einer Millisekunde durchlaufen wird.
Was könnte man machen, wenn man eine Zahl braucht, die nur noch ein Tausendstel der ursprünglichen Zahl ist?


----------



## volker (10 März 2011)

ja. daran liegts

definiere ein fenster

```
U(    
      L     #uhrzeit
      L     TOD#6:0:0.0
      >=D   
      )     
      U(    
      L     #uhrzeit
      L     TOD#6:0:1.0
      <D    
      )     
      =     M     15.0
```


----------



## Sch.junior (10 März 2011)

ja das kam mir auch so eben in den sinn. ich werd es gleich mal ausprobieren.


----------



## Sch.junior (10 März 2011)

jawohl. es funktioniert. vielen dank an alle die mir hierbei geholfen haben.


----------



## Seb.S7 (18 April 2015)

Wie kannst du TOD in einer CMP Funktion Einfügen ? Bei mir kommt dort nur eine Fehlermeldung, dass die Typen nicht passen würden


----------



## Damir (10 Januar 2017)

Auch wenn es schon eine Zeit her ist das  hier einer geschrieben hat, möchte ich mich bedanken für den ganzen Thread und besonders für volker seinen Beitrag #11. Mit dem habe ich endlich den "Durchbruch" geschafft was diese eine Thematik (Zeiten vergleichen) betrifft.  
Es bleiben noch genug Baustellen für mich übrig, aber Steinchen für Steinchen wird ein Haus gebaut.

Gruß


----------

