TIA TIA WinCC-Professional - Übertrag aktuelles Jahr in Variable mit VB-Script

Stefan B.

Level-2
Beiträge
46
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Kollegen.

Bin heute von einem Servicetechniker auf ein Problem aufmerksam gemacht wurden.

Wir verwenden zum Uhrzeitstellen der CPU Uhr ein kleines VB-Script. Bis jetzt hat das immer einwandfrei funktioniert.

Script.JPG


Seit kurzem wird das Jahr von WinCC nicht mehr in die Variable übertragen. Somit wird die CPU-Uhr nicht mehr richtig gestellt.
Alle anderen Funktionen wie Stunden, Minuten, Quartal usw. funktionieren, nur der Ausdruck "YYYY" nicht.

Hat schon jemand das gleich Problem gehabt ?


Gruß Stefan



TIA 15.1 - WinCC Professional auf PC - CPU 314C-2DP
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie ist die HMI-Variable "DB172_Jahr" projektiert?
Wird das Jahr wirklich nicht übertragen, oder kommt es vielleicht nur etwas später in der SPS an?
Wartet die SPS beim Uhrzeitstellen etwas nachdem sie feststellt, daß "DB172_Uhr_stellen" = True ist? Es ist nämlich nicht garantiert, daß der Wert in "DB172_Jahr" schon geschrieben wurde, wenn "DB172_Uhr_stellen" = True in der SPS ankommt.

Der Skript-Code ist allerdings auch nicht ganz sauber. Zwischen der ersten Zeile und der 6. Zeile kann sich die Uhrzeit und das Datum ändern. Es darf nur einmal "Now" abgefragt werden. Und wo ist die BCD-Wandlung? Macht das die SPS? Macht die SPS vielleicht einen Fehler beim Übertragen des Jahr in die Date_And_Time-Variable für SFC0 SET_CLK?

Verwendet Ihr tatsächlich eine WinCC Professional Runtime? Da könnte man die DateTime-Bestandteile als Rohvariable übertragen, um sicher zu gehen, daß sie gemeinsam in der SPS ankommen. Oder ein C-Skript und SetTagWait verwenden.

Bei WinCC Advanced Runtime könntet Ihr eine DateTime-Variable anlegen und einfach schreiben:
Code:
SmartTags("DB172_DateTime") = Now
SmartTags("DB172_Uhr_stellen") = True

Harald
 
Guten Morgen.

Danke für die Rückmeldungen

Das mit dem "Einzelbuchstaben" habe ich auch schon probiert, hat aber allerdings eine andere Funktion (=year of the year, was immer das auch heißt ?)
Die BCD-Wandlung mache ich in der HMI-Variable.

Der Zeitversatz dürfte auch keine Rolle spielen, da es sich nur um wenige msec handelt. Ich habe das Rücksetzen auch schon verzögert, allerdings müsste nach 2-3 Sek die Variable geschrieben sein.:)

Alle VB Funktionen, die man bei DatePart verwenden kann funktionieren, bis auf "YYYY". Hier bleibt die Variable einfach leer.

Ich habe mir mal in einer VM ein TIA V14 installiert und probiere es damit mal aus. Es hat ja schonmal funktioniert ….:eek:

Werde berichten

Gruß Stefan
 
Zurück
Oben