TIA rd_sys_t liefert falsche uhrzeit

volker

Supermoderator
Teammitglied
Beiträge
5.805
Reaktionspunkte
1.027
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich die Uhrzeit aus einer s7-1500 mit rd_sys_t auslese liefert dieser die Baugruppenzeit - 1 Stunde.

Ich habe auch mal Probiert die Zeitzone in der CPU zu ändern. Ändert aber am Ergebnis nichts.
Weiß jemand warum das so ist?
 

Anhänge

  • Zwischenablage03.jpg
    Zwischenablage03.jpg
    41,3 KB · Aufrufe: 105
RD_SYS_T liefert die Uhrzeit mit der die Uhr der CPU läuft. Diese Systemzeit hat mit Zeitzonen nichts zu tun. Um die zur eingestellten Zeitzone passende Uhrzeit zu lesen muß RD_LOC_T verwendet werden (oder die Uhr der CPU muß auf die lokale Uhrzeit eingestellt werden).
Wird die Uhr der CPU vielleicht mit einem NTP-Server synchronisiert? Dann läuft die CPU-Uhr in UTC.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
NTP ist zwar aktiviert, die CPU hängt aber noch nicht am Netz.

Aber unabhängig davon. Wie im Bild zu sehen ist, ist die Baugruppenzeit 12:02 Uhr RD_SYS_T liefert aber 11:02.

Lese ich die Uhrzeit mit RD_LOC_T liefert der die korrekte zeit 12:02.

Wo liegt der Unterschied zwischen Lokal- und Systemzeit?

EDIT.
Mal die Zeitzone in der cpu geändert. rd_loc_t liefert dann die entsprechend versetzte zeit zur cpu-zeit.

kann man sagen, das die zeit die ich in der cpu setzte immer utc-zeit ist?
 
Zuletzt bearbeitet:
Systemzeit ist die Uhr ohne Aufschlag der Zeitzone und ohne DST-Verschiebungen.
Lokalzeit ist die Systemzeit mit Aufschlag von dem was bei den Zeitzonen eingestellt ist.

Sinnvollerweise betreibt man die Systemzeit auf UTC und liest die Lokalzeit.
Wenn du mit SET_LOC_TIME die Lokalzeit umstellst wird auch die Systemzeit entsprechend angepasst.

Physikalisch wirds nur die Systemzeit in der CPU geben und die Lokalzzeit wird errechnet sein.
 
Da die Baugruppenzeit vom PG übernommen wird, wird damit auch die dort eingestellte Zeitverschiebung von +1,00h als Lokalzeit mit übernommen.
Die Systemzeit wird dann aus Lokalzeit minus eingestellte Zeitverschiebung errechnet.

Im Normalfall sollte also die Systemzeit UTC entsprechen.
 
Hallo zusammen, ich habe ein ähnliches Problem aber nur mit zwei stunden unterschied.
Ich habe im Hardware NTP Server eingetragen und habe auch den haken bei PG/PC übernehmen aktiv.
Wenn ich jetzt im Programm RD_SYS_T anwende liege ich im DB (datentyp: Date and Time) zwei stunden als der PG zurück.
Wenn ich RD_LCL_T anwende komme ich auf minus eine stunde. Hat einer vielleicht eine Idee.
Danke im Voraus
VG
 
Ich habe im Hardware NTP Server eingetragen
Dann wird die Uhr der PLC in UTC laufen, weil NTP auf UTC synchronisiert.

Wenn ich jetzt im Programm RD_SYS_T anwende liege ich im DB (datentyp: Date and Time) zwei stunden als der PG zurück.
RD_SYS_T liefert die Uhrzeit der Systemuhr - also UTC.

Wenn ich RD_LCL_T anwende komme ich auf minus eine stunde.
RD_LOC_T liefert die lokale Zeit. Das sollte hier in DE jetzt UTC + 1 Stunde Zeitzone + 1 Stunde Sommerzeit sein.
Wenn die Differenz RD_LOC_T - RD_SYS_T nur 1 Stunde ist, dann ist die Zeitzone falsch eingestellt oder die Sommerzeit nicht aktiviert.
 
Zurück
Oben