Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: Von einem Datum einen Tag abziehen

  1. #11
    Registriert seit
    28.05.2008
    Beiträge
    40
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Sven_HH Beitrag anzeigen
    Ich denke mal er hat das DATE Format mittels FC6 DT_DATE aus dem Date and Time Format gezogen.

    Das sollte deine Frage beatworten...

    Gruß
    Sven_HH
    Genau. Das habe ich als erstes gemacht.
    CALL "READ_CLK"
    RET_VAL:=#Fehler
    CDT :=#Zeit_Tag
    CALL "DT_DATE"
    IN :=#Zeit_Tag
    RET_VAL:=#Tag

  2. #12
    Registriert seit
    28.05.2008
    Beiträge
    40
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Sarek Beitrag anzeigen
    Date-Format bezeichnet die Anzahl der Tage seit dem 1.1.1990

    d.h. wenn du einen Tag abziehen willst dann gehts ganz einfach mit
    ner INTEGER Subtraktion

    L #Datum
    L 1
    -I
    T #Datum_neu
    Der Tip von Sarek scheint zu klappen. Habe gerade mal die Systemzeit auf den 01.01.2009 geändert und im DB steht jetzt der 31.12.2008.
    Hätte nicht gedacht, daß das so einfach wäre.

    D.h. in dem Dateformat der S7 sind schon alle Schaltjahre hinterlegt? Also er muß ja wissen, ob vor dem 1.3.2034 der 29. oder 28.02. war. Bis zu welchem Jahr denn?

  3. #13
    Registriert seit
    11.12.2007
    Beiträge
    189
    Danke
    54
    Erhielt 33 Danke für 32 Beiträge

    Standard

    Warum nacht ihr nicht nenn vergleich auf TOD z.B. auf >= 23:59:59,700
    Dann könntest Du dir das abziehen eines Tages ersparen

  4. Folgender Benutzer sagt Danke zu Sven_HH für den nützlichen Beitrag:

    Tompson (14.01.2009)

  5. #14
    Registriert seit
    11.12.2007
    Beiträge
    189
    Danke
    54
    Erhielt 33 Danke für 32 Beiträge

    Standard

    Zitat Zitat von Tompson Beitrag anzeigen
    ... Bis zu welchem Jahr denn?
    Laut Hilfe: "DATE liegt zwischen den Grenzen DATE#1990-1-1 und DATE#2089-12-31. "

  6. #15
    Registriert seit
    28.05.2008
    Beiträge
    40
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das wäre zu einfach.

    Nein Quatsch. Die Funktion gibt es schon länger, nur ist der Fehler noch keinem aufgefallen. Und als ich das eben erfahren habe, habe ich soweit gar nicht gedacht, die Abfrage für den Routineaufruf einfach zu ändern.

    Aber das werde ich wohl machen. Trotzdem ist es interessant zu wissen, daß das Datum eigentlich ein Int-Wert ist.
    Danke noch mal.

  7. #16
    Registriert seit
    28.05.2008
    Beiträge
    40
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Werde doch die
    L 1
    -I
    Variante nehmen, da mir die Zeit da gar nicht zur Verfügung steht. Könnte sie natürlich auch noch aus der Variablen #Zeit_Tag ziehen, aber ich glaube, das das Abziehen eines Tages weniger Rechenaufwand ist.

  8. #17
    Registriert seit
    11.12.2007
    Beiträge
    189
    Danke
    54
    Erhielt 33 Danke für 32 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    die Zeit (TOD) kannst Du dir genau wie das Datum auslesen, nur halt mit dem FC8 DT_TOD. Sie hat 32bit länge und kann mit CMP <=> D ausgewertet werden.

    Aber das nur ebenbei... einfacher ist sicher die von Dir gewählte -1 Variante.

    Gruß
    Sven_HH

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 25.10.2011, 13:22
  2. Antworten: 9
    Letzter Beitrag: 12.04.2010, 13:52
  3. Datum und Uhrzeit aus einem OP lesen
    Von pfloh im Forum Simatic
    Antworten: 26
    Letzter Beitrag: 25.03.2009, 03:11
  4. Baugruppe gestört bei abziehen vom PC
    Von guggy im Forum Feldbusse
    Antworten: 7
    Letzter Beitrag: 17.10.2008, 08:30
  5. Antworten: 2
    Letzter Beitrag: 16.11.2006, 17:45

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •