S7 300 Uhrzeit abfragen !!

jamalau

Level-1
Beiträge
31
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
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.
 
Zuletzt bearbeitet:
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.
 
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
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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
 
Zuletzt bearbeitet:
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.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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.
 
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
 

Anhänge

  • Beispiel.pdf
    83,5 KB · Aufrufe: 551
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!
 
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 ??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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.
 
@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.
 
Zuletzt bearbeitet:
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@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 !!
 
Uhrzeit über CP

Hi,

welche CP 343-1 hast Du?
( 6GK7 3431EX210XE0 ab Ausgabestand 1 (FirmwareStand 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​
 
Zurück
Oben