TIA Datum & Uhrzeit

stephan94

Level-2
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich arbeite momentan mit einer 1200er und einem 900 Comfort.

Ich habe nachgelesen, dass die Uhrzeit bei einer 1200er nur 20 Tage ohne Strom richtig angezeigt wird. Ich wollte deshalb in der Visualisierung ein Bild erstellen, in dem man das Datum und die Uhrzeit im Panel einstellen kann.

Ich habe mich in die Sache schon ein bisschen eingelesen und momentan folgendermaßen gelöst:

Ich habe zu Tag, Monat, Stunde usw. jeweils 1 E/A Feld erstellt. Bei Drücken von einem Button werden die Daten dann in die jeweilige Variable des DTL Datentyps kopiert und dann mit WR_Sys_T in die Systemzeit geschrieben. Das funktioniert auch so weit. die CPU Zeit ändert sich.

Zur Anzeige im Panel benutze ich ein Datum/Uhrzeit Feld mit dem Haken bei Systemzeit.
Als Schnittstelle zur Übertragung der Uhrzeit ans Panel habe ich unter "Modus HMI-Zeitsynchronisation" Slave ausgewählt, das sollte ja funktionieren mit einer 1200/1500er. Allerdings ändert sich die Systemzeit des Panels nicht. Ich kann die Zeit nur ändern wenn ich in die Einstellungen beim Hochfahren des Panels gehe. Ich habe öfter das Panel neu gestartet und auch 20 Minuten gewartet.

Wo könnte hier der Fehler liegen? In der Dokumentation dazu steht auch, dass die Zeit beim Modus Slave oder Master nur alle 10 Minuten oder bei Verbindungsaufbau synchronisert wird. Gibt es einen Befehl für eine sofortige Synchronisation? Sonst würde sich die Zeit, falls es mal funktioniert, nach Eingabe nicht direkt anpassen.
 
Hast du die Hardware-Konfiguration der CPU nach dem Einstellen des Modus "Slave" auch nochmal geladen. Könnte sein dass die CPU noch nicht weiß dass sie als Zeit-Master für diese Verbindung arbeiten soll.
 
Starte mal die Runtime neu vom Panel. Das dauert ewig bis die Uhrzeit sich mal synchronisiert... Aber bei Runtime Start wird das manuell angestoßen
 
Hab das Panel auch öfters neu gestartet, hatte auch nicht geholfen. Gibt es vielleicht einen Skript Befehl um die Synchronisation anzustoßen?
 
Bei Drücken von einem Button werden die Daten dann in die jeweilige Variable des DTL Datentyps kopiert und dann mit WR_Sys_T in die Systemzeit geschrieben.
Soll der Bediener wirklich die aktuelle Lokalzeit in SPS-Systemzeit umrechnen und diese Systemzeit eingeben? Besser: WR_LOC_T verwenden. Allerdings kann so in der ersten Stunde 02:00-02:59 der Umschaltung von Sommerzeit zu Normalzeit die SPS-Uhr nicht korrekt gestellt werden.

Ich habe öfter das Panel neu gestartet und auch 20 Minuten gewartet.
Der Klassiker: hast du das HMI die "Software komplett alles" übersetzt und danach ins HMI geladen?

Gibt es einen Befehl für eine sofortige Synchronisation?
Runtime beenden und wieder starten
 
Habe jetzt den Fehler gefunden. Ich hatte gestern zum Testen nur 1 EA Feld zur Eingabe/Änderung der Stunde erstellt. In der DTL Variable Zeit_zur_CPU, die ich dann mit WR_Sys_T in die Systemzeit schreibe, stand aber noch standardmäßig 1970 drin. Die CPU Zeit/Datum hatte es dann richtig geändert mit dem Jahr 1970, beim Panel hat sich aber nichts geändert.

Habe jetzt 2023 eingegeben, dann hat es auch mit der Slave Lösung geklappt, allerdings erst nach einem Neustart des Panels oder ich hätte noch ~10min warten müssen wie es im Handbuch steht.

Habe es jetzt mit Bereichszeiger gelöst, der hatte gestern auch nicht funktioniert, wegen dem 1970 Problem. Den Bereichszeiger habe ich auf 1 Sekunde Abfragezeit gestellt, dass sich nach Drücken des Buttons Zeit stellen, auch die Panel Zeit direkt aktualisiert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
🤦‍♂️ Läßt du in deinem Auto den Motor auch ständig auf Höchstdrehzahl drehen, nur weil du alle paar Stunden einmal überholen willst? ;)

Um dieses Problem zu umgehen, stellt man zuerst die Uhr des Panels und überträgt dann dessen Uhrzeit an die SPS. Dieser Weg wurde allerdings von Siemens kaputt-innoviert 😠, ist mit einem Comfort Panel zum Glück aber noch per Skript machbar: die Uhrzeit des Panels kann mit Now in eine DateAndTime-Variable in der SPS kopiert werden.

PS: Danke, daß du den Grund deines Problems mitgeteilt hast.
 
Zurück
Oben