# S7 300 Uhrzeit abfragen !!



## jamalau (25 November 2006)

Hallo,
ich habe in der sufu nichts passendes für mich gefunden, und versuche es jetzt mal so.
Ich möchte in eine S7 300 die CPU Uhrzeit auslesen und bei einer gewissen Uhrzeit ein VKE 1 bekommen.
zb. um 8:32 ein Motor einschalten.
Da ich noch nicht so viel S7 Erfahrung habe, ( komme von der S5 Seite) bitte ein wenig Rücksicht nehmen.

Des weiteren möchte ich ich mit einer CP343-1 die Zeit per NTP aus dem Internet holen und mit der CPU synchronisieren, wie kann man das bewerkstelligen.
Also den NTP-Server habe ich schon in die 343 eingtragen, da stimmt auch die Zeit. Aber in der CPU ist ne ganz ander Zeit.


----------



## pjoddi (25 November 2006)

*Da gibts was*

Hallo,
schau mal in die Hilfe unter sfc0 (SET_CLK) und sfc1 (READ_CLK) und such danach in diesem Forum, dann solltest Du fündig werden.
Wir benutzen diese beiden Bausteine, um die CPU-Zeit auszulesen, mit einem Panel zu synchronisieren, und über den sfc0 kann man von einer übergeordneten Leittechnik die CPU-Zeit stellen.
Hatten wir hier glaub ich auch schon einige male, also einfach die "Suchen"-Funktion benutzen.


----------



## jamalau (25 November 2006)

Danke für die schnelle Antwort, werde ich mal ein wenig suchen.


----------



## pjoddi (25 November 2006)

Gib mal als Suchbegriff cpu-Zeit ein....


----------



## godi (25 November 2006)

jamalau schrieb:


> Hallo,
> Ich möchte in eine S7 300 die CPU Uhrzeit auslesen und bei einer gewissen Uhrzeit ein VKE 1 bekommen.
> zb. um 8:32 ein Motor einschalten.


 
Hallo!

Dazu kannst du den OB10 Uhrzeitalarm verwenden. Mit diversen SFB/SFC (weiß jetzt nicht welche) kannst du die Zeit des OB10 einstellen.

In der Hilfe zu OB10 findest du eigentlich alles.

godi


----------



## MW (25 November 2006)

In den OB`s kann man einfach die Zeit aus dem Temp-Bereich
rausholen zb.: OB35_DATE_TIME.
Ist aber nur die Zeit wo der jeweilige OB angefordert wurde


----------



## Küffel (27 November 2006)

Also bei einer S7-400 kann man im OB1 die Uhrezit rausholen und sich als "S7-TIME" darstellen lassen. Da muss man in den Temp-Variablen des OB1 suchen. Du kannst sie dann mit "LB" ansprechen und auf eine bestimmte Zeit vergleichen (ggf. Stunde und Minute getrennt). Ich denke das sollte mit einer S7-300 auch funktionieren.

Bei der Zeitsychronisation musst du eine Rückwandbus-Verbindung zwischen CP und CPU einstellen. Der CP muss dabei seine Daten an den Rückwandbus senden und die CPU die Daten dort abfragen. Guck mal in den Hardwareeinstellungen.

Gruß,
Der Kuffel


----------



## jamalau (27 November 2006)

Super viele Antworten, aber es scheint das ich ein wenig zu  neu in der S7-Programmierung bin.
Kann mit einigen Antworten nichts anfangen. 
Habe in den Temp-Variablen im OB 1 keine Zeit gefunden,  nur Date and Time, da steht aber das dies nur die Zeit des Aufrufens speichert.
Mit dem Rückwandbus habe ich in der HW-Config auch nichts gefunden.


----------



## Werner54 (27 November 2006)

*einmal täglich OB10*

Hallo, 

am übersichtlichsten ruft man hier wohl einmal täglich den OB10 (oder OB11) auf, am besten gleich in die Hardwarekonfig einbinden. sonst nach Bedarf mit SFC28,SFC30 und SFC39 bis SFC42 beeinflussen.


----------



## Antonio (27 November 2006)

Hallo,

Hier hast du ein FC und ein DB womit die Uhrzeit ausgelesen wird. Die einzelnen Werte Sind dann im DB gespeichert.

Denke daran, die Millisekunden "wegzuschieben" wenn du vergleichst ansonstens ist es nur Glücksache ob deine VKE=1 ist.

Ciao 
Antonio


----------



## jamalau (27 November 2006)

@Antonio

Schönen Dank, werde ich gleich morgen mal testen.


----------



## Antonio (27 November 2006)

Falls du Probleme haben solltest bin ich erst Mittwoch Abend wieder online. Also viel Erfolg


----------



## Küffel (28 November 2006)

Also zur Uhrzeitabfrage scheinst du ja jetzt eine Lösung zu haben. Es stimmt, dass du mit dem OB1 nur die "Aufrufuhrzeit" angezeigt bekommst, aber da die Zykluszeit ja unterhalt von einer Skunde liegt sollte diese Uhr doch relativ geau sein, wenn man nicht gerade ms benötigt.

Zur Synchronisation:
Hab grad gesehen, dass eine S7-300 CPU im Rückwandbus nicht als Slave laufen kann. Bei ner 400er ist das alles recht einfach, aber bei einer 300er kenne ich mich da nicht so aus. Sorry!


----------



## jamalau (3 Dezember 2006)

Muss doch noch mal nachfragen, habe eine 343-1 und eine 312er CPU.
Ich habe in der 343 einen NTP-Server eingetragen, der wird auch gefunden, wie bekomme ich diese Zeit jetzt in die CPU ??


----------



## Antonio (3 Dezember 2006)

Im Db91 findest du Ist bzw Solluhrzeit...
Du programmierst eine Funktion, in dieser Funktion überschreibst du die Solluhrzeit durch die Uhrzeit aus deinen Server. 
Dann musst du nur noch einen Zeitintervall festlegen, wann Solluhrzeit auch Istuhrzeit werden soll. 
ich schätze das müsste passen.


----------



## jamalau (4 Dezember 2006)

@Antonio
Das ist wohl richtig, aber dort steht nur die CPU Zeit, und nicht die Zeit aus dem CP.
Oder habe ich da was falsch verstanden, wenn ja hilf mir mal auf die Sprünge.
Die NTP-Zeit holt doch der CP, und nicht die CPU.


----------



## Antonio (4 Dezember 2006)

Du willst dann die CPU Zeit damit überschreiben,oder...
probiers mal damit 

l "cp_zeit"         //Ist Uhrzeit von CP
t "soll_uhrzeit"  //Solluhrzeit aus Db91

Wenn die Formate Passen sollte es überhaupt kein problem sein


----------



## jamalau (4 Dezember 2006)

@Antonio
Deine schnelle Antwort find ich ja super, allerdings bin ich momentan total auf dem Holzweg.
Ich muss doch die beiden Variablen erst generieren oder ????

Wenn ja wo ????

Schuldigung für die dummen Fragen, bin eben noch neu in der S7, aber lerne durch dieses Forum auch immer mehr dazu !!


----------



## vladi (4 Dezember 2006)

*Uhrzeit über CP*

Hi,

welche CP 343-1 hast Du?
( 6GK7 343−1EX21−0XE0 ab Ausgabestand 1 (Firmware−Stand V1.1))

Hier ein Auszug aus dem Handbuch:
*"9.12 Stellen der CPU​−Uhrzeit durch den CP​
*Der CP aktualisiert die Uhrzeit der CPU in einem Intervall von 1 Minute.
Wenn der CP also Uhrzeittelegramme im Abstand von 1 Sekunde empfängt, synchronisiert
der CP die Uhrzeit der CPU dennoch nur 1mal pro Minute. Dadurch
wird erreicht, dass sich der Uhrzeitwert in der CPU weniger häufig sprunghaft ändert. "

Gruss: Vladi​


----------



## jamalau (4 Dezember 2006)

Ich habe die 1EX20-0XE0. V1.2

Und sychronisieren tut da gar nichts, die CPU-Zeit ist immer anders als die CP-Zeit.


----------



## JörgK (4 Dezember 2006)

Hallo,



jamalau schrieb:


> Ich habe die 1EX20-0XE0. V1.2
> 
> Und sychronisieren tut da gar nichts, die CPU-Zeit ist immer anders als die CP-Zeit.


 
Schau Dir mal diesen Beitrag (FAQ) an.


Gruss,
Jörg


----------



## jamalau (4 Dezember 2006)

Schönen Dank, habe ich gemacht. Aber ich kann die 312er nicht auf Slave stellen. Liegt das evtl. an der CPU? Muss ich vielleicht eine größere haben ?


----------



## Küffel (5 Dezember 2006)

Haste mal eine Diagnose mit NCM S7 (vergleiche Bild) gemacht? Ich kann dein Problem leider nich nachprüfen und kenne NTP nur von einer S7-400, aber der Tipp von JörgK


> Schau Dir mal diesen Beitrag (FAQ) an.


gibt doch eine sehr genaue Anleitung´.


----------



## vladi (5 Dezember 2006)

*Uhrzeit*

Hi,

die CP Baugruppe mit der Bezeichnung vom @jamalau ist
bei Siemens nicht als Uhr-Sinchron.fähiges Modul aufgeführt!?!
Würde beim Siemens nachfragen. Sonst suchste Taaagelang...

Grus: V.


----------



## jamalau (5 Dezember 2006)

@valdi
Das ist ja mal ne Antwort, aber wo kann ich das bei Siemens nachlesen ?

Habe deinen Text nochmal gelesen, meinst du die CP kann das nicht ??

Wenn ja, wofür gibt es dann die Möglichkeit einen NTP-Server einzutragen ?

@Kuffel
Hab ich ja gemacht, aber die CPU hat nicht die dort beschriebenen Einstllmöglichkeiten.


----------



## vladi (5 Dezember 2006)

*CPs*

Hi,

gelesen bei: folge den Link oben(@Kuffel).
Wofür gibt es da die Einstellungsmaske..verdammt gute Frage! 

Gruss: Vladi


----------



## Küffel (6 Dezember 2006)

@ jamalau:
In der CPU (S7-300) musst du ja auch laut Anleitung nix einstellen. Die sollte die Zeit vom CP einfach übernehmen.
Vielleicht solltest du aber wirklich mal den Siemens-Support kontaktieren, denn vladi hat schon recht, dass in der Liste der NTP-fähigen CPs dein ..EX20.. nicht drin steht >> aber das muss ja bei Siemens nicht zwingend was heißen :twisted: .


----------



## jamalau (6 Dezember 2006)

Ok, werde ich mal machen. Werde aber noch warten bis die 314 CPU eintrifft.
evtl. klappt es damit.


----------

