Datentyp DATE zerlegen

Kuni

Level-1
Beiträge
39
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Abend zusammen,

Steuerung: CPU 315-2 PN/DP
Software: Simatic Manger V5.5

kann ich das Datentyp DATE zerlegen das heißt jede einzelne Zahl in ein Byte Transferieren?
Ich muss das Datum Zahl für Zahl einer Steuerung schicken.

Danke für eure Hilfe

Gruß Kuni
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich habe mir mal den letzten Link angeschaut.

Nachsatz:
Auf Anregung von Ingeborg, die da in dem Script noch einen Bug (!!!) entdeckt hat, habe ich das Ganze noch einmal überarbeitet.
Es arbeitet nun bis zum 31.12.2099 (nach menschlichem Ermessen) fehlerfrei. Danach nicht mehr, da Siemens ab 2099 mit dem DATE-Format einen Fehler macht.

Mal mit einfachen Worten, obwohl es mich wohl nicht mehr belasten wird :ROFLMAO: :

Also, welchen Fehler macht "S" ab 2099 ?

Gruss
 
... weiß ich jetzt so "ad hoc" auch nicht mehr - ist ein bißchen lange her ... ;)

Ich denke aber mal, dass es damit zu tun hat, dass ja die Anzahl der Tage seit einem Datum x (01.01.1990) dargestellt werden und das in einem INT - der ist dann irgendwann einmal verbraucht.
Es kannn aber auch sein, dass der DATE selber das nicht darstellen kann - oder nicht richtig ...

Gruß
Larry
 
Also, welchen Fehler macht "S" ab 2099 ?
Ich meine, das DATE-Format hat keinen Fehler. Es beinhaltet bis zum höchstzulässigen Datum 31.12.2168 korrekt die Anzahl Tage seit dem 01.01.1990 (es sind 65378 Tage).

Mit einer Modifikation müßte das DATE-Zerlegungs-Skript von LL auch bis zu D#2168-12-31 funktionieren:
Code:
   Schaltjahr := 0 ; IF (Jahr MOD 4) = 0 [COLOR="#800000"]AND (Jahr <> 2100)[/COLOR] THEN Schaltjahr := 1 ; END_IF ;

Möglicherweise hat bei der Skript-Funktion noch niemand den kompletten Wertebereich des DATE-Formates benötigt, weil wenn das DATE aus einem DATE_AND_TIME stammt, dann ist eh' schon beim 31.12.2089 Schluß ...

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe jetzt leider kein Step7 zur Verfügung, meine aber, diese Programmzeile muß wohl auch noch angepasst werden für Jahre ab 2100:
Code:
   Anz_SJ := (Diff_J + 2) / 4 ;

Harald
 
Zurück
Oben