WinCC Flexible: Zeitstempel von ersten Meldungen 1.1.1990, wie Abhilfe schaffen?

Jochen

Level-1
Beiträge
131
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe bei meiner Anlage folgendes Problem:

Wenn ich das komplette Step7-Projekt neu auf die SPS spiele, erscheinen auf meinem Panel (TP177B) die aufgrund des Neustarts vorliegenden Fehlermeldungen mit dem Zeitstempel 1.1.1990. Wenn ich diese quittiert habe und die Anlage im Normalbetrieb läuft, dann stehen diese 2-3 Meldungen immer an oberster Stelle im Meldepuffer drin.
Alle folgenden Meldungen haben den korrekten Zeitstempel und ordnen sich im Meldepuffer ganz normal ein.

Mein Panel holt sich die Zeit alle 500ms von der SPS.
Im OB100 wird die Uhrzeit der CPU direkt bei Neustart ausgelesen und in den entsprechenden DB geschrieben, von dem das Panel sich die Zeit holt, so dass doch die Zeit eigentlich direkt beim Neustart der SPS aktuell sein sollte. Anscheinend wird da aber zunächst mal der Anfangswert des DBs, nämlich 1.1.1990 vom Panel ausgelesen, bevor der OB100-Neustart den korrekten Zeitwert in den DB reinschreibt.

Ich wüsste nun gerne, wie ich direkt nach dem Neuübertragen aller Bausteine und anschließendem Neustart der SPS den korrekten Zeitstempel in meinen DB bekomme, aus dem das Panel sich die Zeit zieht.

Vielen Dank schonmal im Voraus


Gruß

Jochen
 
Ein Panel kann nicht die Anfangswerte von DB lesen, denn die stehen nur im Ladespeicher.
Ein Panel kann aber die Aktualwerte aus der CPU lesen, auch wenn die CPU (noch) in STOP steht.
Und wenn DB neu in die CPU geladen werden, dann stehen in den Aktualwerten zunächst die Offline-Aktualwerte drin, welche meistens gleich den Anfangswerten sind.

Der Zeitstempel für die Meldungen am Panel wird aus der Uhr des Panels gebildet. Die Uhr des Panels ist offensichtlich nicht gepuffert und wird deshalb mit der Uhr der CPU synchronisiert. Nun muß man dafür sorgen, daß das Panel keine aktiven Meldebits zu sehen bekommt, bevor es seine Uhr gestellt hat. Du könntest die Spannungsversorgung des Panel ausschalten, solange die CPU in Stop ist. Und zusätzlich mit einer Start-Einschaltverzögerung nach STOP->RUN länger als die Hochlaufzeit des Panels das Erzeugen von Meldungen unterdrücken.

Ich hätte aber gedacht, daß die Firmware der Siemens-Panele (z.B. TP177B) so schlau ist, sich NICHT auf den 1.1.1990 zu synchronisieren. :confused:
Oder kommen die Zeitstempel bei Dir woanders her?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hm, die Uhrzeit hole ich mir mit dem Bereichszeiger "Datum/Uhrzeit-Steuerung" aus der SPS, aus einem DB heraus. Darüber synchronisiert das Panel halt zyklisch die Uhr. Und ich vermute einfach mal, wenn es dies zum ersten Mal tut, dann steht noch der Anfangswert des Datentyps DATE_AND_TIME in diesem DB drin. Und der Anfangswert ist ja immer der 1.1.1990

Beim Neuübertragen der kompletten Station bleiben die Aktualwerte ja nicht erhalten sondern alle DBs werden auf die Anfangswerte zurückgesetzt.

Gruß

Jochen
 
Beim Neuübertragen der kompletten Station bleiben die Aktualwerte ja nicht erhalten sondern alle DBs werden auf die Anfangswerte zurückgesetzt.
Die Aktualwerte bleiben nicht erhalten - das stimmt.
Die Aktualwerte nach dem Übertragen sind aber nicht die Anfangswerte, sondern die im Offline-DB festgelegten Aktualwerte.
Ein Initialisieren der Aktualwerte mit den Anfangswerten passiert nur beim Urlöschen.

Du könntest noch versuchen, für den Anfangswert und den anfänglichen Aktualwert des Bereichszeigers im Offline-DB ein ungültiges DATE_AND_TIME festzulegen (z.B. alle 8 Byte auf 0), dann würde sich das Panel erst mit der Uhrzeit im Bereichszeiger synchronisieren, nachdem die CPU ein gültiges DATE_AND_TIME eingetragen hat. Das läßt Step7 aber nicht zu, wenn Du den Bereichszeiger im DB als DATE_AND_TIME deklarierst, sondern nur bei z.B. ARRAY OF BYTE.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Aktualwerte bleiben nicht erhalten - das stimmt.
Die Aktualwerte nach dem Übertragen sind aber nicht die Anfangswerte, sondern die im Offline-DB festgelegten Aktualwerte.
Ein Initialisieren der Aktualwerte mit den Anfangswerten passiert nur beim Urlöschen.

Du hast natürlich Recht, ich bin da manchmal immer noch mit der Ausdrucksweise ungenau.

Du könntest noch versuchen, für den Anfangswert und den anfänglichen Aktualwert des Bereichszeigers im Offline-DB ein ungültiges DATE_AND_TIME festzulegen (z.B. alle 8 Byte auf 0), dann würde sich das Panel erst mit der Uhrzeit im Bereichszeiger synchronisieren, nachdem die CPU ein gültiges DATE_AND_TIME eingetragen hat. Das läßt Step7 aber nicht zu, wenn Du den Bereichszeiger im DB als DATE_AND_TIME deklarierst, sondern nur bei z.B. ARRAY OF BYTE.

Harald

Das ist eine interessante Idee, ich werde das mal testen. Danke.

IBFS schrieb:
Das macht man ja auch nicht, ständig die DBs neu herunterzuladen.

Frank

Stimmt eigentlich auch wieder. Allerdings tu ich es meistens so, da ich ab und zu festgestellt habe, dass Änderungen nicht online waren, obwohl ich die entsprechenden Bausteine raufgeschoben hatte und mir der Bausteinvergleich gleiche Bausteine meldete, warum auch immer.

Danke Euch beiden

Gruß

Jochen
 
Zurück
Oben