# WinCC & Uhrzeiten



## jackjones (9 Oktober 2008)

Hallo,
ich habe ein Bild in Wincc in dem man einige Zähler sieht (Statistiken).
Auf dem Bild gibt es auch die Möglichkeit die Zähler auf 0 zu setzen. 
Nun möchte ich noch eine Zeile mit einbinden, in welcher der letzte Reset angegeben ist.
Ich habe für das Zurücksetzen der Zähler einen Button programmiert, welcher 5s lang ein Bit in einem DB auf 1 setzt.
Mit welchem befehl bekomme ich die aktuelle Uhrzeit? Diese würde ich dann in eine Lokale Variable ablegen und diese anzeigen lassen. 

Andernfalls könnte ich auch die Uhrzeit in der CPU übertragen, aber das sehe ich nicht als Vorteilhaft an.

Grüße aus Bremen


----------



## Kai (9 Oktober 2008)

Hier mal ein Programmbeispiel, um in WinCC das aktuelle Datum und die aktuelle Uhrzeit des Computers in zwei internen Variablen zu speichern:

Du legst zunächst zwei interne Variablen vom Datentyp "Textvariable 16-Bit Zeichensatz" an. 

Dann projektierst Du an einem Button das folgendes VBScript, welches beim Drücken einer Maustaste ausgeführt wird:


```
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)  
 
' Funktion Date()
'
' Liefert das aktuelle Datum des Computers
 
' Funktion Time()
'
' Liefert die aktuelle Uhrzeit des Computers
 
Dim Datum, Uhrzeit
 
Set Datum = HMIRuntime.Tags("Datum")
 
Set Uhrzeit = HMIRuntime.Tags("Uhrzeit")
 
Datum.Write Date()
 
Uhrzeit.Write Time()
 
End Sub
```
 
Gruß Kai


----------



## jackjones (9 Oktober 2008)

Danke Kai!
Nun habe ich natürlich noch ein Problem mit der Ausgabe.
Ich habe ein EA-Feld angelegt und es als Ausgabe deklariert. Variable ist Datum und Ausgabeformat ist String. Ist das richtig?
ich bekomme keinen Wert angezeigt.auf den Button habe ich bereits geklickt.
Oder muss die Ausgabe als Textfeld erfolgen?

Vielen Dank, für deine Hilfe! Echt super Strukturiert.


Grüße aus Bremen


----------



## Kai (9 Oktober 2008)

Nachfolgend noch mal zwei Beispiele für die Projektierung der EA-Felder für die Ausgabe des Datums und der Uhrzeit.

Gruß Kai


----------



## jackjones (9 Oktober 2008)

Ich habe es exakt so projektiert, auch vorher schon. Aber es funktioniert nicht. Ich bekomme keine Ausgabe. 
Ist das Script richtig? 
Ist der write Befehl wirklich richtig so?


Danke...


----------



## Kai (9 Oktober 2008)

Im MS VBScript Sprachverzeichnis werden die Date-Funktion und die Time-Funktion ohne Klammer geschrieben. 

Du könntest also mal folgendes VBScript ausprobieren:


```
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y) 
 
' Date-Funktion
'
' Gibt das aktuelle Systemdatum zurück
 
' Time-Funktion
'
' Gibt die aktuelle Systemzeit zurück
 
Dim Datum, Uhrzeit
 
Set Datum = HMIRuntime.Tags("Datum")
 
Set Uhrzeit = HMIRuntime.Tags("Uhrzeit")
 
Datum.Write Date
 
Uhrzeit.Write Time
 
End Sub
```
 
Gruß Kai


----------



## jackjones (9 Oktober 2008)

Ich versuch es morgen früh, wenn ich wieder in der Firma bin.
Ist ja zum Glück nichts wichtiges. Danke für deine Bemühungen. Ich gebe morgen sofort bescheid. Denke das wird es aber sein. 

Danke Danke Danke  Und gute NAcht


----------



## jackjones (10 Oktober 2008)

Hat leider so nicht funtkioniert. 
Habe mir nun ein C-Script geschrieben, das funktioniert.
Vielen Dank trotzdem!


----------



## Kai (10 Oktober 2008)

Das verstehe ich nicht, bei mir funktionieren beide VBScripte ohne Probleme.

Welche Versionen von Windows, WinCC und WSH (Windows Script Host) sind denn auf Deinem Rechner installiert?

Auf meinem Rechner sind Windows 2000 SP4, WinCC V6.0 SP3 und WSH V5.6.0.8225 installiert.

Gruß Kai


----------



## Kai (10 Oktober 2008)

Um zu überprüfen, welche WSH-Version und welche VBScript-Version auf Deinem Rechner installiert sind, und ob die Date-Funktion und die Time-Funktion funktionieren, kannst Du folgendes machen:

- Die Datei WSH.txt auf den Desktop von Deinem Rechner kopieren.

- Die Datei WSH.txt umbenennen in WSH.vbs .

- Mit einem Doppelklick auf die Datei WSH.vbs das folgende VBScript ausführen:


```
WScript.Echo WScript.Name & " Version " & WScript.Version
 
WScript.Echo ScriptEngine & " Version " & ScriptEngineMajorVersion & "." & _ 
ScriptEngineMinorVersion & "." & ScriptEngineBuildVersion
 
WScript.Echo "Datum " & Date & "  Uhrzeit " & Time
```
 
Es werden die auf Deinem Rechner installierte WSH-Version und VBS-Version, sowie das aktuelle Systemdatum und die aktuelle Systemzeit ausgegeben.

Gruß Kai


----------

