# VBSkript Datum+Uhrzeit ins S7 Format wandeln



## moeins (1 Oktober 2008)

Ich habe mir schon die Finger wund gegoogelt aber nix passendes gefunden.

Ich möchte ein beliebiges Datum welches ich in einem HMI-WinCCFlexible Panel, oder einem PC eingebe oder berechne, z.B. 12.12.2008 per VBSkript wandeln und in einen Datenbaustein schreiben, so das die SPS es direkt im Format D#2008-12-12 laden kann.
Genauso möchte ich die Uhrzeit z.B. 15:23:33 nach TOD#15:23:33.0 wandeln.


----------



## MeTh (1 Oktober 2008)

Hallo,

googel mal nach 

*vbscript format(now*

Da kommt einiges. Mit Format kann man bei .Net z.B. so was machen:


```
swAuswertung.WriteLine(Format(Now, "HH:mm:ss") & "|" &  sMeldung)
```
 
Ergebnis ist dann z.B.

*19:15:10|MeldungXy *

Viel Erfolg beim Suchen.

LG MeTh.



moeins schrieb:


> Ich habe mir schon die Finger wund gegoogelt aber nix passendes gefunden.
> 
> Ich möchte ein beliebiges Datum welches ich in einem HMI-WinCCFlexible Panel, oder einem PC eingebe oder berechne, z.B. 12.12.2008 per VBSkript wandeln und in einen Datenbaustein schreiben, so das die SPS es direkt im Format D#2008-12-12 laden kann.
> Genauso möchte ich die Uhrzeit z.B. 15:23:33 nach TOD#15:23:33.0 wandeln.


----------



## moeins (1 Oktober 2008)

Hallo,

Danke aber das ist nicht mein Problem. Ich möchte den Wert in einen Datenbaustein der S7 schreiben, so das die SPS den als TOD#... bzw. D#... lesen kann.
Soweit ich weiss sind das DINT bzw. INT Werte, ich müsste wohl über eine komplizierte Berechnung auch die Schaltjahre einrechnen, aber wie ??? Keine Ahnung ?!?


----------



## Larry Laffer (1 Oktober 2008)

Hallo,
die Berechnung ist gar nicht so schwierig ...

Das Date-Format der SPS ist die Anzahl der Tage, die seit dem 01.01.1990 vergangen sind. Hier kannst du es dir bei der Schaltjahres-Berechnung einfach machen (alle Jahreszahlen MOD 4 = 0 sind Schaltjahre).

Das Time_of_Day-Format der SPS enthält die Anzahl der Millisekunden, die seit 0:00 Uhr vergangen sind.

Gruß
LL


----------



## moeins (1 Oktober 2008)

Hallo,

Danke für den Hinweis. Ich habe gerade einen Trick gefunden wie es noch einfacher geht.
Visualbasic bietet ja den DATEDIFF Befehl an. Um das heute Datum ins S7 Format zu bringen macht man das dann mit : 


```
DateDiff("d","01.01.1990",Now)
```
erzeugt dann im Datenbaustein :


```
D#2008-10-01
```


Bei der Uhrzeit ist es genauso einfach :


```
DateDiff("s","00:00:00",Time)* 1000
```

Gruss
moeins


----------

