Step 7 Uhzeitsynchronisation HMI CPU

Junge

Level-2
Beiträge
226
Reaktionspunkte
17
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Leute,

Uhrzeitsynchronisation ..schon wieder.

Soweit ich das alles richtig verstanden habe und die anderen Beiträge hier im Forum gefunden habe muss ich folgendes machen:

1. Ab S7 v5.3 Unter Zielsystem Uhrzeit und Datum stellen
2. Dann DB erstellen mit einer Variablen "Date and Time"
3. In diese kann ich mir dann (im 1Sekunden Takt) über SFC1 das Datum und die Zeit der CPU auslesen.

und dann komme ich nicht weiter

Anschließend wollte ich im HMI unter Verbindungen den Bereichszeiger für die Zeit und das Datum einfügen.

Nun denn, im Feld Bereichszeiger sind bereits 3 Variablen vorhanden
"Bildnummer"
"Dautm/Uhrzeit Steuerung"
"Projektkennung"
Die Adresse dieser Variablen liegen alle im DB1 ... der aber garnicht in der CPU vorhanden ist.


-und ich dachte dass ich da meine 4 Variable aus einem anderen DB mit reinsetzten kann aber es geht nicht. Bzw. wie weise ich meine neue Zeit Variablen dem Bereichszeigerfeld zu?!
-Muss meine Variable im DB1 liegen? ...kann ich mir nicht vorstellen, da dieser ja auch garnicht in der CPU existiert.

bin für jeden Tipp Dankbar


----------------------------


Die Variablen sind schon Standardmäßig drin und haben optional den DB1 zugewiesen?
Wenn ich jetzt meine Zeit/Datum DB dem richtigen Bereichzeiger gebe, sollte es ja funktionieren....
 
Zuletzt bearbeitet:
Ich vermute mal daß Du mit WinCC flexible irgendein Panel mit einer S7-300-CPU synchronisieren willst?
(genauere Angaben von Dir wären hilfreich)

Du mußt einfach nur in dem Bereichszeiger "Datum/Uhrzeit Steuerung" die Adresse Deines Bereichszeigers eintragen.

Achtung, der Bereichszeiger "Datum/Uhrzeit Steuerung" hat 6 Words. Nur eine DATE_AND_TIME-Variable reicht nicht. Der Bereichszeiger "Datum/Uhrzeit Steuerung" hat folgenden Aufbau:
Code:
AreaPointerDtPLC    STRUCT                               AreaPointer date/time PLC
 DateTimePLC         DATE_AND_TIME  DT#90-1-1-0:0:0.000  current PLC-date and -time
 Res_08              BYTE           B#16#0
 Res_09              BYTE           B#16#0
 Res_10              BYTE           B#16#0
 Res_11              BYTE           B#16#0
                    END_STRUCT

In der SPS trägst Du in jedem Zyklus die Uhrzeit der CPU in den Bereichszeiger ein. Dafür kann man SFC1 nehmen, oder die Uhrzeit aus #OB1_DATE_TIME kopieren.
Hier mal ein Beispiel für WinCC flexible und eine S7-300 in Step7 classic: Einfache Uhrzeitsynchronisation, für mehrere Panels geeignet

Besser: damit das Panel auch in der Sommerzeit die richtige Uhrzeit hat, den FC61 BT_LT nehmen oder meinen abgespeckten BT_LT_3

Vielleicht kann Dein unbekanntes Panel auch selber direkt eine Uhrzeit-Synchronisation mit einem NTP-Server? Vielleicht auch schon inkl. Sommerzeit-Umschaltung? Dann brauchst Du in der SPS nichts programmieren, nur das Panel entsprechend einrichten.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Tut mir leid, es war heute morgen alles ein bisschen Knapp in der Zeit ich konnte mich auch nicht richtig gut auf das Thema vorarbeiten, so dass ich wie ich jetzt auch gemerkt habe eine sehr plume Frage gestellt habe.

Das TP ist ein MP277.

Ich hab es auch genauso wie du geschrieben hast, bereits gemacht. Dem Bereichszeiger auch mit meiner Variable verknüpft. Trotzdem gibt es da noch eine kuriose Sache.

Die Variable, in der auch meine Zeit und Datum steht, nutze ich als Allg. Anzeige in meinem Startbild für Uhrzeit und Datum und da passt auch alles.
Jetzt ist es aber so, dass mein Wert von Zeit und Datum die ich mir in meinem Skript mit [T=now] einlese (da hattest du mir ja auch schon geholfen) nicht das gleiche Datum hat, sondern ein komplett anderes Datum aufweist-beginnt bei xx.xx.1890 (also sehr viel anders). Wo kann da der Fehler liegen?
 
Zuletzt bearbeitet:
Ich würde mal vermuten dann stimmt immernoch was nicht mit deinem Bereichszeiger. Wenn du die PLC Variable, in die du die Uhrzeit einliest zur Anzeige nimmst hat das ja nichts mit der HMI-Uhrzeit zutun. Aber wenn du die Uhrzeit dann in deinem Skript einliest wird eben genau die Uhrzeit verwendet. Würde daher nochmal schauen ob du die Variable dem Bereichszeiger auch richtig zugeordnet hast ( evtl. nach der Date and Time Variablen deine Reserve gelassen hast wie von Harald beschrieben). evtl auch mal nach dem Erfassungszyklus schauen, Standartmäßig 1 minute vielleicht bist du einfach nur zu schnell mit dem testen :D

Gruß
Phil
 
Das TP ist ein MP277.
[...]
Jetzt ist es aber so, dass mein Wert von Zeit und Datum die ich mir in meinem Skript mit [T=now] einlese (da hattest du mir ja auch schon geholfen) nicht das gleiche Datum hat, sondern ein komplett anderes Datum aufweist-beginnt bei xx.xx.1890 (also sehr viel anders).
Dann wird es vielleicht langsam Zeit, daß Du uns mal komplett aufklärst, womit Du programmierst.

Benutzt Du WinCC flexible oder irgendein TIA oder was? (genaue Version bitte)
Was für eine SPS-CPU hast Du? Womit programmierst Du die? (genaue Angabe bitte)

Hast Du außer dem Bereichszeiger noch eine weitere Uhrzeit-Synchronisation aktiviert?
Sind hinter der DATE_AND_TIME-Variable im Bereichszeiger noch 4 Bytes mit Inhalt 0 vorhanden? Ist der DB in die CPU geladen?
Erhältst Du von Deinem Programmiersystem irgendwelche Warnungen bzgl. Uhrzeit?

Irgendwie habe ich im Hinterkopf, daß Siemens ab irgendeinem TIA was geändert hat und Uhrzeitsynchronisation per Bereichszeiger bei bestimmten Bedingungen nicht mehr ausgeführt wird.


Die Variable, in der auch meine Zeit und Datum steht, nutze ich als Allg. Anzeige in meinem Startbild für Uhrzeit und Datum und da passt auch alles.
Bei dem Ausgabefeld sollte man angeben können, daß es die Systemzeit ausgibt und nicht den Wert einer Variable. Dann siehst Du die Uhrzeit Deines Panels.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich bin derzeit etwas hart eingespannt, so dass ich nicht so schnell antworten kann.

Benutzten tu ich Wincc Flex mit S7 v5.5, die Steuerung ist eine cpu 314c-2 pn/dp das ganze ist dann mit Ethernet an das Panel MP277 verbunden.
Es wird keine weitere Uhrzeit Synchronisation verwendet oder ist irgendwo aktiv.
Der DB hat eine Struktur in dem ich Die Variable DateTime erstellt habe als Typ Date_AND_TIME und in der Struktur ist ein array[0..3] als byte


Es erscheinen auch keine Fehlermeldung oder Ähnliches.

..evtl auch mal nach dem Erfassungszyklus schauen, Standartmäßig 1 minute vielleicht bist du einfach nur zu schnell mit dem testen :grin:
...daran könnte es natürlich auch gelegen haben.

ich werd das nochmal genau unter die Lupe nehmen. Danke nochmal für die Hinweise.
 
Zuletzt bearbeitet:
Hab das Problem gefunden. Es war soweit alles richtig Übertragen wie auch eingestellt. Nur ich hatte noch einen klitze kleinen Fehler im Script.


---CLOSED---
 
Zurück
Oben