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

Ergebnis 1 bis 6 von 6

Thema: Uhzeit zusammensetzten in TOD

  1. #1
    Registriert seit
    28.04.2009
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ich habe die aktuelle Uhrzeit in einem DB jeweils einzeln als
    Stunde
    Minute
    Sekunde

    (wird empfangen von einem übergeordneten System (PC) )

    jeweils als Int. wert.


    Ist leider nur so möglich

    wie setzte ich die "einzelnen" Teile zusammen um ein S7 TOD zu erhalten ?


    im nächsten schritt muss auf die selbe weise Jahr Monat und Tag zu einem S7 Datum zusammengesetzt werden


    gibt es für das Problem schon nen fertigen Baustein oder muss "gebastelt" werden


    Danke schonmal an alle


    Heiko
    Zitieren Zitieren Uhzeit zusammensetzten in TOD  

  2. #2
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Hallo

    Standard-library

    IEC Function Blocks --> FC3,FC4,FC5,FC6,FC7,FC8

    Da sollte was passendes dabei sein.

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    ... ansonsten ist "etwas basteln" ja auch nicht so das Thema.

    TOD ist die Anzahl der Millisekunden, die seit 0:00 Uhr des aktuellen Tages vergangen sind.

    DATE sind die Tage, die seit dem 01.01.1990 vergangen sind ...

    Gruß
    Larry

  4. #4
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    weiterhelfen wird dir auch das
    musst halt nur 'rückwärts' denken
    Code:
          CALL  SFC    1
           RET_VAL:=MW240
           OUT0   :=#ag_jetzt_datum_zeit    //LB 0 bis 7; typ: dt
          NOP   0
    //variablen liegen im hex-format vor
          L     LB     0   
          T     DB80.DBB   10               //jahr
          L     LB     1   
          T     DB80.DBB   11               //monat
          L     LB     2   
          T     DB80.DBB   12               //tag
          L     LB     3   
          T     DB80.DBB   13               //stunde
          L     LB     4   
          T     DB80.DBB   14               //minute
          L     LB     5   
          T     DB80.DBB   15               //sekunde
          L     LB     6   
          T     DB80.DBB   16               //milisekunden
          L     LB     7   
          T     DB80.DBB   17               //linke tetrade: milisekunden; rechte tetrade: wochentag 1=sonntag
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  5. #5
    Registriert seit
    22.05.2005
    Ort
    sonniges Maifeld
    Beiträge
    1.067
    Danke
    77
    Erhielt 205 Danke für 159 Beiträge

    Standard

    So haben wir das damals gemacht: (So zu Zeiten der RK512 Kopplung)

    Code:
    // Uhrzeit übernehmen vom Leitsystem
    // auf neue Uhrzeit prüfen
    // Wort 14 wird auf FFFF gesetzt wenn neue Uhrzeit übertragen wurde
    
          L     "Zeit und Datum".Time_and_Date.U_Flag
          L     0
          <>I   
          SPBN  ende
    
    // Setzen der Uhrzeit
    
    // Wort 14 zurücksetzen auf 0
    
          L     0
          T     "Zeit und Datum".Time_and_Date.U_Flag
    
    // Jahr ausrechnen
    // IDS-System hinkt 28 Jahre hinterher
    // Jahr wird in Byte 0 und 1 übergeben
    
          L     "Zeit und Datum".Time_and_Date.Jahr
          L     28
          +I    
          L     2000
          -I    
          ITB   
          T     LB     0
    
    // Monat übergeben
    
          L     "Zeit und Datum".Time_and_Date.Monat
          ITB   
          T     LB     1
    
    // Tag übergeben
    
          L     "Zeit und Datum".Time_and_Date.Tag
          ITB   
          T     LB     2
    
    // Stunde übergeben
    
          L     "Zeit und Datum".Time_and_Date.Stunde
          ITB   
          T     LB     3
    
    // Minute übergeben
    
          L     "Zeit und Datum".Time_and_Date.Minute
          ITB   
          T     LB     4
    
    // Sekunde übergeben
    
          L     "Zeit und Datum".Time_and_Date.Sekunde
          ITB   
          T     LB     5
    
    // Neue Uhrzeit in CPU schreiben
    
          CALL  "SET_CLK"
           PDT    :=#Uhrzeit
           RET_VAL:=#val
    
    // Fertig
    
    ende: NOP   0
    Uhrzeit ist ´ne Temp. Variable vom Typ DateAndTime ab LB0 ...
    Geändert von Lars Weiß (22.08.2011 um 16:12 Uhr)
    "Man kann auf seinem Standpunkt stehen, aber man sollte nicht darauf sitzen" - Erich Kästner

  6. #6
    Sony15ab ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.04.2009
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Besten Dank an alle


    Heiko

Lesezeichen

Berechtigungen

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