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

Ergebnis 1 bis 6 von 6

Thema: S7: Umwandlung Real -> Date and Time -> Standardbaustein

  1. #1
    Registriert seit
    29.08.2007
    Ort
    Köln
    Beiträge
    22
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,
    gibt es einen Standardbaustein, um einen Sekunden Wert in Real in Date and Time umzuwandeln?
    Vielen Dank.
    Gruß
    Markus
    Zitieren Zitieren S7: Umwandlung Real -> Date and Time -> Standardbaustein  

  2. #2
    Registriert seit
    14.03.2012
    Beiträge
    60
    Danke
    11
    Erhielt 4 Danke für 4 Beiträge

    Standard

    DATE_AND_TIME definiert einen Bereich mit 64 Bits (8 Bytes) und wird in einem binärcodierten Dezimalformat gespeichert.
    Wenn dein Real Wert auch
    binär codiert ist kannst du das über ein DB machen

  3. #3
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    773
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    die ersten 4 Byte sind die Zeit (TOD) die anderen 4 Byte sind (DT). Um das herumzuwandeln gibt es da einige FC in der LIB
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  4. #4
    KingShango ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.08.2007
    Ort
    Köln
    Beiträge
    22
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wenn ich nun eine Zeitdifferenz wird ermitteln lasse, indem eine Date-And-Time-Variable (Startzeit) von einer anderen Date-And_time-Variable (Endzeit) über FC34 SB_DT_DT subtrahiert wird, gibt der Baustein Differenz im Time Format zurück. Wie kann ich dieses nach Date-And-Time konvertieren?
    Gibt es hierfür einen Baustein?
    Danke.
    Gruß
    Markus

  5. #5
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von KingShango Beitrag anzeigen
    ... gibt der Baustein Differenz im Time Format zurück. Wie kann ich dieses nach Date-And-Time konvertieren?
    Gibt es hierfür einen Baustein?
    Das könnte eventuell mit dem Baustein FC1 "AD_DT_TM" (ADD DT TIME) gehen, dieser addiert eine Zeitdauer (TIME) auf einen Zeitpunkt (DT).
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  6. #6
    Registriert seit
    07.06.2006
    Ort
    Bayern
    Beiträge
    624
    Danke
    27
    Erhielt 156 Danke für 139 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von KingShango Beitrag anzeigen
    Wenn ich nun eine Zeitdifferenz wird ermitteln lasse, indem eine Date-And-Time-Variable (Startzeit) von einer anderen Date-And_time-Variable (Endzeit) über FC34 SB_DT_DT subtrahiert wird, gibt der Baustein Differenz im Time Format zurück. Wie kann ich dieses nach Date-And-Time konvertieren?
    Gibt es hierfür einen Baustein?
    Danke.
    Gruß
    Markus
    Der Datentyp DT definiert ja jeweils ein fixes Datum - er ist nicht dafür gedacht eine Zeitdifferenz (z.B. 1 Monat, 6 Tage, 23 Stunden, 2 Minuten) anzugeben.
    Von daher gibt der Siemens FC34 die Zeitdifferenz im TIME-Format an.
    Das TIME-Format lässt sich aber relativ simpel zerlegen.
    Der Datentyp TIME ist ein vorzeichenbehafteter 32-Bit Integer-Wert, indem die Zeitangabe in Millisekunden gespeichert sind.
    Der maximale TIME-Wert ist somit auf T#24D_20H_31M_23S_647MS begrenzt - mehr geben die 31-Bit + 1 Bit Vorzeichen nicht her.
    Der Siemens FC34 gibt meines Wissens bei Überschreitung dieser Grenze einen Fehler aus.

    Wenn du jetzt den TIME-Datentyp zerlegen möchtest in Tage, Stunden, Minuten, Sekunden, Millisekunden, dann musst du ja nur wissen, wieviele Millisekunden ein Tag bzw. eine Stunde bzw. eine Minute, etc. hat.
    Ein Tag hat dann eben 86400000 Millisekunden - Eine Stunde 3600000 Millisekunden - usw.
    Wenn du jetzt die Time-Variable mit 86400000 dividierst, dann hast du schon mal die Tage - den verbleibenden Rest dividierst du dann noch mit 3600000 dann hast du die Stunden - usw.

    Rein theoretisch könntest du dir dann mit diesen Informationen zwar wieder einen DT-Datentyp (8-Byte Zeitstempel) basteln, der die Zeitdifferenz darstellt - das macht aber keinen Sinn und scheitert auch schon an der Jahresangabe.
    Beim Siemens Datentyp DT ist das Jahr minimal mit 1990 und maximal mit 2089 definiert.

    Mfg
    uncle_tom

Ähnliche Themen

  1. Beckhoff Date and Time an S7
    Von dr1101 im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 15.11.2013, 19:29
  2. Time and Date
    Von paula23 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 22.10.2008, 08:50
  3. Date/Time in Diagnoserepeater
    Von Pilami im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 26.09.2007, 14:58
  4. Date and Time im DB
    Von godi im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 19.05.2006, 15:56
  5. sps date and time ==> OP27
    Von Anonymous im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 10.11.2005, 15:30

Lesezeichen

Berechtigungen

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