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

Ergebnis 1 bis 5 von 5

Thema: Zeit zählen

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja hi unzwar bin fast am verzweifeln kann mir da jemand bitte helfen.. Ich hab mein programm in AWL geschrieben bin soweit fertig.. ich muss nurnoch die zeit messen wie lang ein Signal ansteht. Wie mache ich das am besten ? Habe eine CPU313C. Danke schonmal im vorraus
    Zitieren Zitieren Zeit zählen  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.177
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard

    Um welchen Zeitbereich geht es? Millisekunden? Minuten? Stunden?

    Du könntest
    - S7-Timer oder IEC-Timer laufen lassen und die abgelaufene Zeit verrechnen
    - oder mit Flankenerkennung und SFC64 die Start- und Endzeitpunkte erfassen und subtrahieren
    - oder OB1_PREV_CYCLE addieren
    - oder ...

    Hier ist ein Beispiel für eine Zeiterfassung mit OB1_PREV_CYCLE in AWL. Im letzten Netzwerk "Info: Calculate time duration..."
    Für #REQ_get müßtest Du Dein Signal einsetzen und statt SPBN müßtest Du SPB nehmen, dann erfasst der Code die Zeitdauer, wie lange ein Signal 1-Zustand hat. Wenn Du den Code nicht im OB1 platzierst, dann noch im OB1 die Lokalvariable #OB1_PREV_CYCLE auf eine globale Variable kopieren (z.B. auf ein Merkerwort).

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    GurkenBrannt ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.07.2015
    Beiträge
    6
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke für die schnelle antwort.
    Also ich habe ein band es fahren palletten die nicht immer gleich lang sind darauf und ich habe einen optischen sensor. Ich möchte da jetzt das wenn der sensor die pallete erkennt eine zeit startet und wenn die pallette vorbei kommt soll sie aufhören zu zählen und das band soll stoppen dann soll die zeit durch 2 geteilt werden und es soll die geteilte zeit wieder zurück fahren. Rechnen und alles kann ich nur wie schreibe ich das mit zeit starten und stoppen ? Ich glaub du hast den falschen link gewält komme da bei bus raus

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.177
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard

    OK, Lesehilfe :
    Zitat Zitat von PN/DP Beitrag anzeigen
    Hier ist ein Beispiel für eine Zeiterfassung mit OB1_PREV_CYCLE in AWL. Im letzten Netzwerk "Info: Calculate time duration..."
    Das meint diesen Code:
    Zitat Zitat von PN/DP Beitrag anzeigen
    Code:
    NETWORK
    TITLE =Info: Calculate time duration of 1 communication cycle
    
          L     #ComTime_Counter ;
    
          U     #REQ_get ;
          SPBN  CNT ;
          T     #ComTime_Last ;
          L     0 ;
          T     #ComTime_Counter ;
    
    CNT:  L     "OB1_PREV_CYCLE" ; //MW8: Copy of #OB1_PREV_CYCLE
          +I    ;
          T     #ComTime_Counter ;
    
    //watch ComTime_Last (ms)
          L     #ComTime_Last ;
    
    END_FUNCTION_BLOCK


    Inklusive der 2 beschriebenen Änderungen sollte Dein Code etwa so aussehen:
    Code:
    NETWORK
    TITLE =Info: Calculate the duration of  a 1-signal
    
          L     #Time_Counter ;
    
          U     #MySignal ;
          SPB   CNT ;
          T     #Time_Last ;
          L     0 ;
          T     #Time_Counter ;
    
    CNT:  L     "OB1_PREV_CYCLE" ; //MW8: Copy of #OB1_PREV_CYCLE
          +I    ;
          T     #Time_Counter ;
    
    //watch Time_Last (ms)
          L     #Time_Last ;
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.177
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du müßtest Dir noch ein Wegkopieren des #Time_Counter oder #Time_Last bei fallender Flanke von #MySignal einbauen, das Zählergebnis ist nur 1 Zyklus lang vorhanden und danach sind beide Variablen 0. Das Beispiel zeigt aber das Prinzip des Addierens der Zykluszeit in AWL.

    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. FM 350-2: 8 x zählen
    Von kluk im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 24.07.2013, 10:05
  2. Antworten: 0
    Letzter Beitrag: 19.12.2011, 17:42
  3. CPU314c: Zählen
    Von spsfreak12345 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 15.07.2010, 12:45
  4. Zeit Zählen, anhalten und weiterzählern
    Von Waelder im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 07.06.2005, 17:36
  5. zählen
    Von fbeine im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 10.05.2005, 10:34

Stichworte

Lesezeichen

Berechtigungen

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