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

Ergebnis 1 bis 6 von 6

Thema: Aktuelle CPU Uhrzeit vergleichen in SCL

  1. #1
    Registriert seit
    09.07.2013
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich will die aktuelle CPU Uhrzeit mit einer vorgegeben Uhrzeit vergleichen. Dies funktioniert aber nur manchmal.
    Das Auslesen der Uhrzeit erfolgt über die SFC1. Dies funktioniert einwandfrei. In der Variable Uhrzeit vom Typ TIME_OF_DAY steht also die Uhrzeit der CPU mit Millisekunden.
    Die statische boolsche Variable Var2 soll um 23:59:00 gesetzt werden. Dies funktioniert aber nur manchmal. Ich weiss nicht warum es mal funktioniert und meistens aber nicht.
    Hier ein Ausschnitt des Quellcodes.

    READ_CLK_RETVAL := SFC1 (CDT := System_DT ) ; // Aufruf Systemfunktion zum Auslesen der Systemzeit und Datum
    Datum := DT_DATE(IN := System_DT); // FC26 extrahiert aus Datum und Zeit das Datum
    Uhrzeit := DT_TOD(IN := System_DT); // FC28 extrahiert aus Datum und Zeit die Zeit

    ///////////////////////////////////////////////////////////////////////////////////////////////
    // Uhrzeit kurz vor Mitternacht //
    ///////////////////////////////////////////////////////////////////////////////////////////////
    Var2 := Uhrzeit = TOD#23:59:00;
    Zitieren Zitieren Aktuelle CPU Uhrzeit vergleichen in SCL  

  2. #2
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.218
    Danke
    235
    Erhielt 325 Danke für 298 Beiträge

    Standard

    Du musst vermutlich vorher die ms ausblenden.
    TOD hat ja das Format
    TOD#23:59:59.999

    Wenn Du auf == abfragst wird das meistens nicht klappen, das es ja 23:59:00.123 sein kann, zum Zeitpunkt des SFC1 Aufrufes.



  3. #3
    stinker06 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.07.2013
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke, soweit hab ich auch schon gedacht. Deswegen hab ich auch dabei geschrieben das die Uhrzeit mit Millisekunden gespeichert wird. Ich hab nur noch nix gefunden wie ich die Millisekunden ausblende.
    Muss ich wohl noch bischen googeln.

  4. #4
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.218
    Danke
    235
    Erhielt 325 Danke für 298 Beiträge

    Standard

    einfach vor der wandlung die millisekundenbytes auf null setzen

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.202
    Danke
    389
    Erhielt 2.297 Danke für 1.911 Beiträge

    Standard

    ... oder nach der Wandlung (wenn es ein TOD ist) herausrechnen :
    Code:
    L #mein_TOD
    L 1000
    /D
    L 1000
    * D
    T #mein_TOD
    sorry - war ja SCL gefragt :
    Code:
    mein_TOD := DINT_to_TOD ((TOD_to_DINT (mein_TOD) / 1000) * 1000) ;
    Geändert von Larry Laffer (23.08.2016 um 20:42 Uhr)

  6. #6
    stinker06 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.07.2013
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hat funktioniert, danke.

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 04.12.2014, 11:38
  2. TIA aktuelle Zykluszeit mit der Letzten vergleichen
    Von bkizilkaya im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 20.11.2013, 00:07
  3. Sfc1 / aktuelle Uhrzeit auslesen
    Von Jeremy3 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.12.2012, 11:48
  4. Datum und Uhrzeit vergleichen mit einer CPU 318
    Von uwemiess im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 22.04.2005, 09:35
  5. Antworten: 9
    Letzter Beitrag: 27.09.2004, 14:24

Lesezeichen

Berechtigungen

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