Aus Variable DATE Jahr, Monat & Tag auslesen

webinspirit

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

ich habe ein Problem das ich aus einer Variable Date das Jahr, den Monat und den Tag einzelln auslesen muss da WinCC nicht den Typ Date aus der SPS auslesen kann.

Ich weiß das die Variable eine Ganzahl ist die die Tage seit dem 1.1.1990 enthält. Jetzt kann ich das Jahr ohne Probleme auslesen.
Aber jetzt kommt mein Problem.
Ich habe noch 105 aus dem aktuellen jahr, und das ist heute der 11.04.
Nur weiß ich jetzt nicht mehr weiter wie ich das aus den 105 Tagen berechnen kann???

Oder gibt es da eine einfachere Variante??

Vielen Dank
gruß
webi
 
Hallo Webi,

das einfachste ist das Date mit der Funktion "D_TOD_DT" aus der Standard Library "IEC Function Blocks" in ein DATE_AND_TIME zu wandeln.

Aus dem DATE_AND_TIME dan die einzelnen Bytes auslesen.

Code:
 Bytes Inhalt  Bereich
    0       Jahr    1990 ... 2089
    1       Monat 01 ... 12
    2       Tag    1 ... 31
    ....

Gruss Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Daniel,

schon mal Danke für deinen Tipp
Habe ich auch schon eingebaut.
Jetzt habe ich noch eine Frage.
Habe jetzt die DATE_AND_TIME Variable als Temporäre Variable in einem FC.
Kann ich diese Temporäre auch byteweise ansprechen?
 
Ja geht eigentlich ganz einfach mit

Code:
      L     P##dtCDT                    //Lade Adresse von DATE_AND_TIME 
      LAR1                              //in AR1

      L     B [AR1,P#0.0]               //Jahr im BCD Format
      BTI                               //wandeln nach 
      T     #iYEAR                      //Integer

      L     B [AR1,P#1.0]               //Monat im BCD Format
      BTI                               //wandeln nach
      T     #iMonth                     //Integer

      L     B [AR1,P#2.0]               //Tag im BCD Format
      BTI                               //wandeln nach
      T     #iDay                       //Integer

das wars eigentlich schon nur Aufpassen bei dem Format da dies BCD-Codiert ausgegeben wird und falls anders benötigt gewandelt werden muss. Siehe oben z.B. Integer.

Gruss Daniel
 
Halt jetzt bin ich von mir ausgegangen, im Obigen Bsp. bist Du unabhängig von der Adresse wo die DATE_AND_TIME Variable liegt. Wenn aber FUP oder KOP bevorzugt wird muss die Adresse angegeben werden dies wäre wenn z.B. die Variable DT die erste ist LB0 fürs Jahr, LB1 Monat und LB2 der Tag.
Den Anfang der Variable siehst man aber in Deklaration.

Gruss Daniel
 
Zurück
Oben