Step7 DINT_TO_DATE

sha

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

ich möchte ein Datum im DINT-Format in das Siemens Date-Format konvertieren.
Das Datum im DINT-Format liegt wie folgt vor : YYYYMMDD, d.h. z.B. 20060426.

Lege ich diesen Wert (20060426) an die Funktion DINT_TO_DATE bekomme ich ein falsches Datum.

Was habe ich hier falsch gemacht?

Für schnelle Hilfe wäre ich dankbar.

Gruss Arne
 
Dazu steht gar nichts in Hilfe-Datei und Handbuch. Ich würde mal mit anderen Zusammensetzungen experimentieren, oder hast du irgendwo was darüber, wie in welcher Reihenfolge die Datumsangabe erfolgen muß?
 
"DINT_TO_DATE" wandelt lediglich den Datentyp. Das Bitmuster bleibt unverändert, ähnlich wie bei "WORD_TO_INT".


Gruß, Onkel
 
Dann muß man sich also Date ansehen und die Angaben entsprechend zusammensetzen.

Step7-Hilfe:

Datentyp Länge (Bit) Format
DATE_AND_TIME 64 Jahr-Monat-Tag-h:min:s:ms
oder
DT Beispiel für das Format
DT#1995-02-02-08:30:01.999

Bytes Inhalt Bereich
0 Jahr 90 ... 89, d.h. die Jahre 1990 bis 2089
1 Monat 01 ... 12
2 Tag 1 ... 31
3 Stunde 0 ... 23
4 Minute 0 ... 59
5 Sekunde 0 ... 59
6 2 MSD von ms 00 ... 99
7 (4 MSB) LSD von ms 0 ... 9
7 (4 LSB) Wochentag 1 ... 7 (1 = Sonntag)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
sha schrieb:
ich möchte ein Datum im DINT-Format in das Siemens Date-Format konvertieren.
Das Datum im DINT-Format liegt wie folgt vor : YYYYMMDD, d.h. z.B. 20060426.

Lege ich diesen Wert (20060426) an die Funktion DINT_TO_DATE bekomme ich ein falsches Datum.

Es gilt folgendes zu beachten:

Eine Variable mit dem Datentyp DATE (Datum) wird in einem Wort als vorzeichenlose Festpunktzahl abgelegt. Der Inhalt der Varibablen entspricht der Anzahl der Tage seit 01.01.1990. Die Darstellung enthält das Jahr, den Monat und den Tag, jeweils getrennt durch einen Bindestrich.

Beispiele:

D#1990-1-1 (= 0 DEZ)

D#1991-1-1 (= 365 DEZ)

Der Befehl DINT_TO_DATE macht nun folgedes:

MD10=365 (DEZ) -> DINT_TO_DATE -> D#1991-1-1 (= 365 DEZ)

MD10=5959 (DEZ) -> DINT_TO_DATE -> D#2006-4-26 (=5959 DEZ)

Gruß Kai
 
Zurück
Oben