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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: wo versteckt WAGO die Millisekunden?

  1. #1
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    mit dem Code
    Code:
    VAR
        Zykluszeit_T       :    TON;
        Zykluszeit_DWORD   :    DWORD;
    END_VAR
    
    
    Zykluszeit_DWORD       :=    TIME_TO_DWORD ( Zykluszeit_T . ET ) ;
    Zykluszeit_T (    IN   :=    FALSE ) ;
    Zykluszeit_T (    IN   :=    TRUE ,
                    PT     :=    T#100ms ) ;
    in der PLC_PRG sollte doch bei jedem neuen Zyklusbeginn in Zykluszeit_DWORD die vergangenne Zeit des letzten Zyklus in ms stehen?

    Doch Fehlanzeige! Da steht 0ms, was mache ich falsch? Oder sehe ich den Wald vor lauter Bäumen nicht mehr?

    Kann mir da bitte jemand weiterhelfen?!

    Schöne Ostern
    Tom
    Zitieren Zitieren wo versteckt WAGO die Millisekunden?  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.338
    Danke
    932
    Erhielt 3.333 Danke für 2.691 Beiträge

    Standard

    Ist Deine Zykluszeit vielleicht kürzer als 1ms?
    Oder geht vielleicht folgendes:
    Code:
    Zykluszeit_T (    IN   :=    TRUE ) ;
    Zykluszeit_DWORD       :=    TIME_TO_DWORD ( Zykluszeit_T.ET ) ;
    Zykluszeit_T (    IN   :=    FALSE ) ;
    Zykluszeit_T (    IN   :=    TRUE ,
                    PT     :=    T#100ms ) ;
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    Registriert seit
    29.09.2014
    Ort
    Hessen
    Beiträge
    102
    Danke
    4
    Erhielt 22 Danke für 20 Beiträge

    Standard

    Für eine Zykluszeit bietet sich die Funktion time() an.

    Z.B.:
    tStart := TIME();
    (* PROGRAMM CODE *)
    tEnde := TIME();
    tZyklus := tEnde - tStart;

    Bei dir wird der Eingang des ton sofort wieder zurückgesetzt oder war das nur beispielhaft?
    If you always do what you’ve always done, you’ll always get what you’ve always got.
    „Wer immer tut, was er schon kann, bleibt immer das, was er schon ist.“

    Henry Ford

  4. #4
    Tom... ist offline Benutzer
    Themenstarter
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Ist Deine Zykluszeit vielleicht kürzer als 1ms?
    Nein.

    Code:
    GET_PLC_ACT_CYCLE ( reset := FALSE )
    schwankt zwischen 7 und 9 ms.
    Außerdem läuft PLC_PRG in einer Zeitscheibe von 20ms. Ich sollte also eigentlich immer genau diese 20ms angezeigt bekommen, denn weiter kommt T nicht...

    Zitat Zitat von lord2k3 Beitrag anzeigen
    Bei dir wird der Eingang des ton sofort wieder zurückgesetzt oder war das nur beispielhaft?
    Auch nein.
    Die erste Zeile Code in der PLC_PRG "merkt" sich, wie lang T gelaufen ist ( bei mir also die vergangene Zykluszeit ).

    Code:
    Zykluszeit_DWORD        :=    TIME_TO_DWORD ( Zykluszeit_T . ET ) ;
    Mit den folgende Zeilen

    Code:
    Zykluszeit_T (    IN            :=    FALSE ) ;
    Zykluszeit_T (    IN            :=    TRUE ,
                    PT            :=    T#100ms ) ;
    Wird die Zeit gelöscht und wieder neu gestartet.
    Danach folgt mein ganzer Programmcode.
    Ist PLC_PRG zu Ende, komme ich von oben wieder rein und merke mir wieder, wie weit T gelaufen ist u.s.w.

    So habe ich mir das wenigstens gedacht, funktioniert so aber nicht?!

  5. #5
    Tom... ist offline Benutzer
    Themenstarter
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Code:
    var
    Zyklus ,
    Speicher : Time ;
    end_var ;
    
    Zyklus := TIME ( ) - Speicher ;
    Speicher := TIME ( ) ;
    funktioniert übrigens. Speicher schwankt zwischen 20 und 21 ms.

    Erklärt nicht, warum der Rest mit dem TON Timer nicht funktioniert.


    TIME ( ) zeigt ca. 13545 Minuten. Seit wann ist das? Sollte TIME nicht die seit 00:00:00 vergangene Zeit in ms anzeigen? Man kann TIME auch keinen Parameter mitgeben?!

  6. #6
    Registriert seit
    29.09.2014
    Ort
    Hessen
    Beiträge
    102
    Danke
    4
    Erhielt 22 Danke für 20 Beiträge

    Standard

    time*—*sollte den aktuellen Unix-Timestamp/Zeitstempel zurückgeben
    If you always do what you’ve always done, you’ll always get what you’ve always got.
    „Wer immer tut, was er schon kann, bleibt immer das, was er schon ist.“

    Henry Ford

  7. #7
    Tom... ist offline Benutzer
    Themenstarter
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Hallo miteinander,
    ich hab es jetztz so gemacht:
    Code:
    PROGRAM PLC_PRG
    VAR
        Zyklus             :    TIME ;        (* zyklische Laufzeit von PLC_PRG *)
        Laufzeit        :    TIME ;        (* Laufzeit, die der Code benötigt *)
        Speicher         :    TIME ;        (* Zwischenspeicher der Systemzeit *)
    END_VAR
    
    Zyklus := TIME ( ) - Speicher ;
    Speicher := TIME ( ) ;
    .
    .
    mein ganzer Code
    .
    .
    Laufzeit := TIME ( ) - Speicher ;
    und das funzt prima.
    Zyklus zeigt genau die eingestellten 20ms und Laufzeit mit 6 bis 7ms, was ich davon bis jetzt an Zeit benötige.

  8. #8
    Registriert seit
    10.05.2005
    Beiträge
    2.005
    Danke
    220
    Erhielt 234 Danke für 205 Beiträge

    Standard

    Zitat Zitat von Tom... Beitrag anzeigen
    in der PLC_PRG sollte doch bei jedem neuen Zyklusbeginn in Zykluszeit_DWORD die vergangenne Zeit des letzten Zyklus in ms stehen?
    Kann mir da bitte jemand weiterhelfen?!
    Hi Tom

    Ist das eine Übung ?

    Oder willst du das für deine Zylus-Zeitmessungen realisieren.

    Es ist möglich, die Zykluszeit anzuzeigen, ebenso die min.max, Zykluszeit, ebenso den Jitter.
    Und das alles, ohne eine Zeile Programm zu schreiben !
    Karl

  9. #9
    Tom... ist offline Benutzer
    Themenstarter
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Nein, keine Übung. Ich kann jetzt mit 100 * ( Laufzeit / Zyklus ) die Auslastung meiner CPU in % anzeigen.
    Natürlich kann man für alles auch immer eine fertige bib verwenden, aber wer will das schon, wenn es mit drei Zeilen Code auch erledigt ist...
    BTW wie bekommt man den Jitter?

    Grüße
    Tom

  10. #10
    Registriert seit
    10.05.2005
    Beiträge
    2.005
    Danke
    220
    Erhielt 234 Danke für 205 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Tom... Beitrag anzeigen
    BTW wie bekommt man den Jitter?
    Keine Ahnung.
    Das macht die LIB von Wago.
    Karl

Ähnliche Themen

  1. Step 7 Millisekunden ind Stunden/Minuten umrechnen
    Von dizzi33 im Forum Simatic
    Antworten: 21
    Letzter Beitrag: 05.12.2014, 07:55
  2. WINCCFlex Uhrzeit in Millisekunden
    Von sailor im Forum HMI
    Antworten: 3
    Letzter Beitrag: 05.03.2012, 12:37
  3. Antworten: 1
    Letzter Beitrag: 06.07.2009, 17:42
  4. Millisekunden abschneiden
    Von delacasa im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 10.01.2007, 21:16
  5. Antworten: 3
    Letzter Beitrag: 15.03.2006, 19:04

Stichworte

Lesezeichen

Berechtigungen

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