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

Ergebnis 1 bis 5 von 5

Thema: Berechnungen im SCL zu einer fest gelegten Uhrzeit

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen!

    Ich habe folgendes Problem:
    Ich möchte, dass zu einer bestimmten Uhrzeit in einem SCL Berechnungen erfolgen sollen

    Der Code sieht folgendermaßen aus:
    Geisterstunde := TIME_OF_DAY#00:00:0.0; // Geisterstunde entspricht 0.00 Uhr Mitternacht

    i := READ_CLK(CDT := CPUDaTi); // Aktuelle(s) CPU-Zeit und Datum im Format DT#1990-01-01-00:00:00:000 erfragen
    TimeOfDay := DT_TOD(IN :=CPUDaTi); // Aktuelle CPU-Zeit im Format TOD#00:00:00.000 erfragen


    IF TimeOfDay = Geisterstunde THEN
    ...mach das und das...

    Das Problem liegt darin, dass aufgrund der Zykluszeit die Abfrage auf exakt 0:00 Uhr gelingt, da man immer ein paar ms daneben liegt.

    Wie kann ich das richtig umsetzen?

    Vielen Dank für eure Hilfe m Voraus!
    Zitieren Zitieren Berechnungen im SCL zu einer fest gelegten Uhrzeit  

  2. #2
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.652
    Danke
    310
    Erhielt 1.494 Danke für 1.259 Beiträge

    Standard

    Ganze einfach wäre nun (TOD / 1000) * 1000, damit eliminierst du die ms.
    Allerdings benötigst du dann beim IF vielleicht noch eine Flanke, wenn die Berechnung wirklich nur einmalig ausgeführt werden soll.
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  3. #3
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.424
    Danke
    710
    Erhielt 612 Danke für 469 Beiträge

    Standard

    Exakt auf Zeit geht einfach nicht. Aber wenn du einfach direkt nach dem Wechsel die Ausführung machen willst, dann mit einem Hilfmerker.

    Ich mach das so.
    Code:
      // Transfer to Dayvalue und convert to kWh. Actual Value / actual Sec of Hour = Dayvalue in kWh
      IF USINT_TO_INT(#dateandtime.DAY) <> #sTag THEN
          FOR #index := 0 TO 24 DO
              #Tageswert.stunde[#index].woSaving := 0;
              #Tageswert.stunde[#index].wSaving := 0;
          END_FOR;
          #sTag := USINT_TO_INT(#dateandtime.DAY);
      END_IF;
    Das wäre jetzt ein einfacher Tageswechsel. Du kannst da natürlich noch die Stunde dazunehmen.

    mfG René

  4. #4
    Registriert seit
    14.04.2014
    Beiträge
    34
    Danke
    15
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Stichwort: Uhrzeitalarm-OB (OB10-OB17, je nach CPU)

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    10.081
    Danke
    838
    Erhielt 2.968 Danke für 2.392 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du könntest Dir merken ob die Aktion bereits durchgeführt wurde. Oder wann (an welchem Tag) die Aktion das letzte mal ausgeführt wurde (siehe #3 von vollmi). Und dann nur ausführen, wenn "heute noch nicht ausgeführt" wurde.

    Code:
    WENN Uhrzeit >= Ausführungszeitpunkt  //oder in einem Zeitfenster von...bis
      WENN NICHT wurde_ausgeführt DANN
        wurde_ausgeführt := TRUE;
        Tue_was ... ;
      ENDE_WENN;
    SONST
      wurde_ausgeführt := FALSE;  //außerhalb des Zeitfensters wieder rücksetzen
    ENDE_WENN;
    Wenn die Aktion exakt um Mitternacht sein soll (also Beginn des neuen Tages), dann reicht es oft, nur den Tag des Datums auszuwerten - wenn aber das SPS-Programm um Mitternacht nicht lief, dann wird die Aktion beim nächsten Programmstart zu irgendeiner Uhrzeit ausgeführt.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 04.03.2016, 07:29
  2. Antworten: 6
    Letzter Beitrag: 16.12.2015, 15:57
  3. TIA TIA Portal V12 SCL Datum Uhrzeit Kombinieren
    Von steffen21m im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 30.01.2014, 22:26
  4. Uhrzeit vergleich in einer FC
    Von rule im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 06.12.2012, 16:46
  5. Uhrzeit bei einer S7-300
    Von steffen21m im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.09.2007, 06:00

Stichworte

Lesezeichen

Berechtigungen

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