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

Ergebnis 1 bis 3 von 3

Thema: DT Differenz berechnen

  1. #1
    Registriert seit
    07.07.2011
    Ort
    Schrobenhausen/Schiefling
    Beiträge
    228
    Danke
    36
    Erhielt 29 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi all,
    brauche Hilfestellung bei folgendem Problem:
    Mit Scheduler habe ich einen Wecker gebaut und möchte nun die Zeit nach dem Wecksignal bekommen um bestimmte Funktionen in Abstand zum Wecksignal zu realisieren. (Für die Zeit vor dem Wecksignal ist ja eine Funktion im Scheduler bereits vorhanden).

    Ich habe folgendes versucht:

    1. SysRtcGetTime schreibe ich laufend in dtSystemzeit.
    Beim Wechsignal Move ich SysRtcGetTime in dtWeckzeit.
    soweit ok.
    Dann ein SUB: dtSystemzeit - dtWeckzeit => dtDiff
    Das fuktioniert nicht (anscheinend kommen Sekunden bei Stunden an und verhauen das ganze dt)
    Beim SUB kann ich aber nur einen DT ausgeben obwohl ich ja eigentlich nur TIME brauche.

    2. Versuch mit Konvertierung von dtSystemzeit und dtWeckzeit mit dt_to_int und SUB rechnet richtig
    aber bei MUL*1000 (ms in sek) und int_to_time kommen tausende von Stunden.

    Der FbBetrDauer ist mir zu kompliziert, da müsste ich die einzelnen Ausgangswerte nochmal zu TIME zusammensetzen.

    Wer hat den entscheidenden Tip?
    Gruß
    Zitieren Zitieren DT Differenz berechnen  

  2. #2
    Registriert seit
    26.08.2007
    Beiträge
    22
    Danke
    0
    Erhielt 5 Danke für 5 Beiträge

    Standard

    erst umrechnen zu TOD dann zum DWord, alles berechnen und wieder zurück

    tod_diff := DWORD_TO_TOD (TOD_TO_DWORD (DT_TO_TOD (dtSystemzeit)-DT_TO_TOD(dtWeckzeit ));

    1h = 3600000

    zB:
    eine Zeitabweichung (Offset) von UDC zum Lokalen Ort angegben in Stunden
    local_time := DWORD_TO_TOD ( ( TOD_TO_DWORD (DT_TO_TOD (utc))+3600000*TIME_ZONE_OFFSET));


    Gruß Markus

  3. Folgender Benutzer sagt Danke zu MarkusK für den nützlichen Beitrag:

    tomrey (13.02.2013)

  4. #3
    tomrey ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.07.2011
    Ort
    Schrobenhausen/Schiefling
    Beiträge
    228
    Danke
    36
    Erhielt 29 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke, habs gestern selbst rausgebracht, DT geht auch direkt nach DWORD und DWORD nach dem Rechnen in TIME.
    Hab am INT rumgezahnt bis ich das mit dem Überlauf kapiert habe...
    Gruß

Ähnliche Themen

  1. Operandenadressen berechnen
    Von MarkusP210 im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 12.10.2010, 17:04
  2. 2^x berechnen
    Von TimoK im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 23.02.2010, 09:31
  3. Mengenzähler mit Differenz
    Von hightower777 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 28.08.2009, 12:52
  4. Temperatur Differenz steurung für Siemens logo
    Von Anonymous im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 20.01.2005, 14:50
  5. Differenz von Doppelwort
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 19.07.2004, 10:01

Lesezeichen

Berechtigungen

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