Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Zykluszeit auslesen ???

JonasM
2006-03-08
2008-02-15
  • JonasM - 2006-03-08

    Wie bzw. Wo kann Ich die Zykluszeit im Onlinemodes sehen???

    Ich hab immerwieder mal danach gesucht, aber in der Hilfe ist nichts darüber zu finden.

    Danke im Vorraus!!!

     
  • Anonymous - 2006-03-09

    Originally created by: joohrte

    Die abfrage der Zykluszeit ist vom Zielsystem abhängig.

    z.B. beim Möller kann dieses über ein PLC-Browser abgefragt werden.

    Also welches Zielsystem hast du ?

     
  • Chräshe - 2006-03-09

    Hallo Jonas,

    Die Funktionalität hab ich beim 750-841 von WAGO auch vermisst. Dann hab ich mir halt einen Ausgang zyklusabhängig aktiviert und mit einem Oszi gemessen.

    Die Funktion hab findest du im Anhang.

    Frohes schaffen

    Chräshe

     
  • Chräshe - 2006-03-09

    Hallo Jonas,

    Die Funktionalität hab ich beim 750-841 von WAGO auch vermisst. Dann hab ich mir halt einen Ausgang zyklusabhängig aktiviert und mit einem Oszi gemessen.

    Die Funktion hab findest du im Anhang.

    Frohes schaffen

    Chräshe

    IMG: ZYKLUS.jpg

     
  • Anonymous - 2006-03-09

    Originally created by: keinname

    ZYKLUS.zip [623 Bytes]

     
  • JonasM - 2006-03-09

    Hallo, Danke für die Antwort!

    Ich benutze gerade diese SPS 750-841 von Wago.

    Mit dem Oszi ist natürlich eine Möglichkeit, aber trotzdem nicht ideal.

    Ein Oszi steht mir leider zur Zeit nicht zur Verfügung, weil ich Zuhause arbeite.

    In meinem Projekt benutze ich sehr viel Schleifen, und da hätte mich die durchschnittliche Zykluszeit interessiert.

    Falls es doch noch eine andere Möglichkeit weiß, so lasst es mich bitte wissen.

     
  • Jan Homann - 2006-03-09

    Hi Jonas,

    ich habe auf ner 750-842 versucht die Zykluszeit mit GET_MAX_CYCLE() bzw GET_ACT_CYCLE() aus der SYSTEM.lib zu ermitteln. Ich weiss aber noch nicht, ob ich damit so richtig lag da einige male die minimale Zykluszeit mit einigen Minuten angezeigt wurde.

    Gruss

    Jan

     
  • Anonymous - 2006-03-13

    Originally created by: -AB-

    probier es mal mit der Bibliothek

    "SysTaskInfo.lib" von Wago.

    Die Bibliothek wird normalerweise von Wago mit ausgeliefert.

    Sie ist von CoDeSys und wird auch von anderen SPS Herstellern mit ausgeliefert (z.B. Moeller)

    Damit kannst du dir die aktuelle, längste, kürzeste, durchschnittliche,.... Zykluszeit anzeigen lassen.

     
  • MisterX1000 - 2006-03-14

    Hallo zusammen,

    habe gerade den letzten Beitrag gelesen und wüsste gerne wie ich die Bausteine aus der "SysTaskInfo.lib" beschalten muss!

    Da sind die Bausteine "CurTime" und "CurTimeEx" drin. Und die wollen von mir:

    "SystemTime"

    beim "CurTime" Baustein

    bzw.

    "SystemTime" und "TimeDate"

    beimCurTImeEx

    wie muss ich denn die im PLC_PRG beschalten damit ich die Zykluszeit sehen kann???

    Was ist überhaupt der Unterschied zwischen den zweien?

    Hoffe die Frage ist nicht zu blöd , aber mit sowas kenn ich mich gar nicht aus!

    Vielen Dank

    Alex

     
  • Jens Kreyßig - 2006-03-15

    So eine Unterstützung fehlt auch beim SCM03-C iPCL-Modul der Firma EXOR ...

    Auf Anfrage bei 3S Software hat man mir aber ein kleines Beispielprogram zur "SysTaskInfo.lib" geschickt. Ich häng es einfach mal an.

    Mfg Jens

    Beispiele.zip [13.22 KiB]

     
  • Erik Böhm - 2006-03-15

    Hallo

    Ich mach das einfach so:

    PROGRAM PLC_PRG

    VAR

    fCounter: REAL := 0;

    Timer: TON;

    fCycleTimeInMs: REAL := 0;

    END_VAR


    fCounter := fCounter + 1.0;

    Timer(IN := TRUE,pt:=t#1s);

    IF Timer.Q THEN

    fCycleTimeInMs  := 1000*(1/fCounter);
    
    fCounter    := 0;
    
    Timer(in:=FALSE);
    

    END_IF

    Das ist vielleicht nicht hochgenau, sollte aber für die meisten Zwecke reichen.

    Falls benötigt kann das Ergebnis ja noch in ein Array kopiert werden, um z.B. die letzten 100 Zykluszeiten einsehen zu können.

     
  • Otmar Fössing - 2006-03-17

    Es geht auch noch einfacher:

    die Funktion TIME() liefert die Zeit in ms seit Boot der Steuerung zurück.

    VAR

    T_Start, T_Cycle : TIME ;

    END_VAR

    ( in der ersten Zeile des Programms )

    T_Start := TIME() ;

    ( ... hier steht der Rest des Programms *)

    ( in der letzten Zeile des Programms )

    T_Cycle := TIME() - T_Start ;

     
  • Oberchefe - 2006-03-19

    Der letzte Vorschlag liefert die Zeit, die für die Abarbeitung des Programms benötigt wird, die Zeit für einen Zyklus dürfte aber höher liegen weil nach dem Abarbeiten des Programms und vor Abarbeiten des nächsten Programm Scans oftmals erst noch der I/O Update erfolgen muß.

     
  • CuBe - 2006-03-20

    Na dann schreiben wir

    VAR
    T_Start, T_Cycle : TIME := T#0ms;
    END_VAR
    T_Cycle := TIME() - T_Start ;
    T_Start := TIME() ;
    (*Rest vom Code*)
    

    und schon sollts klappen. Muss man nurnoch die Zeit zwischen den Befehlen berücksichtigen...
    Das ist mir gerade zu kompliziert... in ST

    darum hier in AWL:

    VAR
       T_Start : TIME := T#0ms;
       T_Start_help : TIME := T#0ms;
       T_Cycle : TIME := T#0ms;
    END_VAR
       TIME
       ST      T_Start_help
       SUB      T_Start
       ST      T_Cycle
       LD      T_Start_help
       ST      T_Start
    
     
  • radiator - 2006-07-12

    hallo jonasM

    vielleicht ist es schon etwas spät für eine antwort auf deine frage,

    aber wago bietet bei der 841 ein sehr nützliches kleines tool.

    geh mal auf die registerkarte plc-browser (online-modus) und gib in die obere zeile "tsk" ein. mit druck auf enter werden alle zykluszeiten ausgeworfen.

    hier kann man auch andere nützliche sachen machen. klick auf "..." liefert eine liste der möglichen befehle. einfach mal ausprobieren.

    hoffe dir damit geholfen zu haben.

     
  • Koopi - 2007-12-23

    hallo ihr,

    hab da mal ein paar fragen zur Zykluszeit.

    1. kann es sein das die befehle unter dem PLC-Browser nur mit der Hardware funktionieren und nicht im Simmulationsmodus? denn beim befehl tsk passiert bei mir nichts.

    2. dann gibt es ja unter system.lib den Baustein GET_MAX_CYCLE. Wie muss ich den einbinden? Es müsste doch ausreichen, wenn ich den baustein in mein bereits fertiges PLC_PRG packe oder? HAbe für den RESET eine Bool variabe deklariert und für den Ausgang eine Time variable

    3.Das AWL - Script von erik funktioniert bei mir bestens. bis auf die Zeile fCycleTimeInMs := 1000*(1/fCounter); habe ich auch alles verstanden.

    was in der zeile mathematisch gemacht wird weiss ich , aber was hat die rechnung mit der zykluszeit zu tun? hab auch schon bei google gesucht aber nichts gefunden.

    na dann besten dank schon mal und frohe feiertage

     
  • willigo - 2007-12-24

    Hallo Koopi,

    Erik zählt ganz einfach die Zyklen pro Sekunde und erhält damit die Abarbeitungsfrequenz. Aus dem Physikunterricht wissen wir:

    T=1/f.

    Um das ganze dann auf der Basis von ms zu haben, muss das Ergebnis noch mit 1000 multipliziert werden.

    Euch allen ein Frohes Fest.

    Mathias

     
  • Koopi - 2007-12-28

    daran hätte ich ja auch denken können, aber manchmal kommt man einfach nicht auf die einfachsten dinge.

    jetzt habe ich eine neue frage

    ich muss für ein projekt die fachsprachen CFC und FBD vergleichen, also auch die zykluszeiten.

    ich habe bei beiden die gleiche zykluszeit raus. müsste aber nicht FBD schneller arbeiten? da hier eine eindeutige Netzwerkstruktur vorhanden ist, nachdem es abgearbeitet wird. bei CFC hingegen kann man ja die Blöcke frei setzen.

    Gruss

     
  • gravieren - 2007-12-28

    Hi

    Zitat:
    ich habe bei beiden die gleiche zykluszeit raus.

    Grosse Unterschiede dürften hier nicht sein

    Zitat:
    müsste aber nicht FBD schneller arbeiten? da hier eine eindeutige Netzwerkstruktur vorhanden ist, nachdem es abgearbeitet wird. bei CFC hingegen kann man ja die Blöcke frei setzen.

    Das Programm wird Compiliert --> CPU hat Code "ohne Netzwerkstruturen" und Kommentare.

    Das heist --> 10.000 Kommentarzeilen machen das Programm auch nicht langsamer

    P.S.: Mein Liebling ist ST.

    P.P.S.: Ziehe dir mal die OSCAT-Lib "rein", hat auch einiges zum Thema Zeitmessungen ...

     
  • Koopi - 2008-01-03

    macht sinn, ähnliches hat mir auch codesys bestätigt.

    die oscat.lib kenne ich auch, aber beim compilieren bekomme Fehlermeldungen angezeigt und keine lust diese durch zu sehen. hast du vllt. eine lib ohne fehlermeldung?

    gruss

     
  • Ralph Holz - 2008-01-04

    Hallo Koopi,

    Koopi hat geschrieben:
    1. kann es sein das die befehle unter dem PLC-Browser nur mit der Hardware funktionieren und nicht im Simmulationsmodus? denn beim befehl tsk passiert bei mir nichts.

    Ist absolut korrekt die Simulation kann unmöglich das orginal Laufzeitverhalten der Steuerung ausgeben. Syslibs funktionieren in Simulation nicht weil sie Systembezogen sind. Laufzeitmessungen (auch vergleichende) müssen immer auf dem Zielsystem gemacht werden die Simulation ist dafür absolut ungeeignet. Der Code wird immer exact für deine Steuerung kompiliert.

    Gruß

    Ralph

     
  • Koopi - 2008-01-09

    Fragen zur Zykluszeit.

    erst einmal ein fettes lob an die regelmäßigen besucher dieses forum´s.

    ich habe die zykluszeit mit dem ST Script von Eric und mit dem Bausstein aus der oscat.lib gemesen. mein programm FBD umfasst ca. 42 Bausteine. cycle_time ist als letzter baustein im netzwerk

    das ST - Script über Taskmanager verknüpft ergab 90 ms

    der baustein

    ct-min 61ms

    ct-max 320ms

    ct-last 100ms

    1. ct-max : ist das die max. Zeit die auftreten kann und dementsprechend ct-last die zu letzt gemesende zeit? wenn ja, dann würde ct-last ja fast mit dem ST-Script hingekommen.

    2. ist es abhängig wie ich das ST Script im Taskmanager einbinde?

    das programm läuft bei mir freilaufend mit prio 1 und das ST Script zyklisch prio 1 ohne eigenschaften

    1. wie verhält sich der CYCLE Baustein im CFC? Muss dieser dort auch als letzter Baustein eingebunden werden?

    danke schon mal im voraus

    gruss aus berlin

     
  • mactoolz - 2008-02-15

    Hallo,

    sorry das ich was da zwischen werfe, wie kann man den eingestellten Zyklusintervall ermitteln. ???

    MacToolz

     

Log in to post a comment.