Systemzeit auslesen und in DB ablegen

stb_abe

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

Ich habe nun das sämtliche Forum durch geackert um eine Lösung zu finden. Leider vergebens.

CPU: S7 314 CPU

Ich möchte mit einer pos. Flanke (bestimmtes Ereignis) die aktuelle Uhrzeit in einen DB ablegen.
Diese Uhrzeit (Format Date_And_Time) wird mit ein paar anderen Artikeldaten (Barcode, usw.) in diesem DB für einen OPC Server abgelegt.

Ich habe den SFC 1 (Read CLK) verwendet um die aktuelle Systemzeit auszulesen. Leider steht immer folgender Wert im DB10.DateAndTime: DT#90-1-1-00:00:00
PHP:
      CALL  "READ_CLK"
       RET_VAL:=#RetVal                                       // temp Format INT
       CDT    :=DB10.DateAndTime                     //Format Date_And_TIME
      NOP 0
Die Uhr wurde folgendermaßen eingestellt
Unter Simatic-Manager -->Zielsystem-->Diagnose/Einstellungen-->Uhrzeit stellen. Dort läuft die Zeit.

Mit dem SFC 1 CDT (Date_and_Time) kann ich ja direkt in den DB (ebenfalls Date_and_Time), oder nicht?

Ich benötige die Uhrzeit (Date_and_Time) in einem Stück, nicht aufgetrennt als Uhrzeit und Datum.

Was für Möglichkeiten habe ich noch? Wie kann ich das Date_and_Time per bestimmten Eingangssignal auslesen?

Muss die Systemzeit irgendwo noch aktiviert werden?

Ich danke euch für eure Hilfe und hoffe auf eine rasche Antwort.
 
Zuletzt bearbeitet:
Ich denke die funktion ist da mit irgendwas nicht zufrieden und meldet dir den Fehler mit RetVal.

Was kriegst du denn für einen RetVal und was sagt die F1 Taste dazu?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
PS: Die Uhrzeit musst du nicht starten, die läuft einfach...

Musst aber bei kleinen Steuerungen aufpassen, ich weiss jetzt nicht auswendig ob die 314 eine gepufferte Uhrzeit hat oder ob die stehen bleibt wenn Strom weg (findest du aber im Datenblatt).

ausserdem laufen die Simatic Uhren (vorallem bei den kleinen Steuerungen) nicht wahnsinnig präzis, da kannst du gut ein paar Sekunden abweichung haben nach einer Woche...
 
Hi,

...Ich möchte mit einer pos. Flanke (bestimmtes Ereignis) die aktuelle Uhrzeit in einen DB ablegen.
Diese Uhrzeit (Format Date_And_Time) wird mit ein paar anderen Artikeldaten (Barcode, usw.) in diesem DB für einen OPC Server abgelegt.

Ich habe den SFC 1 (Read CLK) verwendet um die aktuelle Systemzeit auszulesen. Leider steht immer folgender Wert im DB10.DateAndTime: DT#90-1-1-00:00:00...

ein Wert vom Typ Date_and_Time kann in Step7 nicht Online beobachtet werden.
Da es ein zusammengesetzter Datentyp ist. Du kannst folgendes machen:
Eine VAT-Tabelle anlegen und die einzelnen Bytes von DT anzeigen lassen.

Gruss Daniel
 
Leider steht immer folgender Wert im DB10.DateAndTime: DT#90-1-1-00:00:00
Wie kommst Du darauf? Hast Du den DB10 geöffnet und auf die Brille geklickt?
Das funktioniert nicht, Date_And_Time-Variablen kann man so nicht beobachten.
Du müßtest den DB10 Online öffnen und beobachten oder besser eine Variablentabelle
öffnen und die 8 Byte ab der Adresse von DB10.DateAndTime (z.B. DB10.DBD0 und DB10.DBD4)
im Format HEX beobachten.

Muss die Systemzeit irgendwo noch aktiviert werden?
Nein. S7-300-Uhren laufen immer. Außerdem siehst Du die Uhr bei "Uhrzeit stellen" doch laufen.
Zur Sicherheit kannst Du in den OB1 schreiben "L LD16" und dann diese Zeile beobachten.
Da siehst Du die Minuten, Sekunden und Millisekunden laufen (von #OB1_DATE_TIME).

Wie kann ich das Date_and_Time per bestimmten Eingangssignal auslesen?
Code:
      U     E0.0
      FP    M0.0
      SPBNB _123
      CALL  "READ_CLK"
       RET_VAL:=#RetVal
       CDT    :="DB10".DateAndTime
_123: NOP 0

Harald
 
Zurück
Oben