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

Ergebnis 1 bis 4 von 4

Thema: Zeit messen

  1. #1
    Registriert seit
    06.01.2015
    Beiträge
    9
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    Ich möchte gerne bei meiner Programmsimulation die benötigte Zeit messen. Dabei würde ich einfach die Systemzeit vor und nach dem Programmablauf aufnehmen und dann voneinander subtrahieren, oder mit einer anderen Funktion irgendwie die Zeit messen.
    Dazu habe ich auch schon einige Beitrage gefunden, jedoch immer unter Benutzung von fremden Bibliotheken wie zb. der von Oscat, bei deren Einbindung in mein Codesys (3.5.5.0) ich aber immer scheitere.
    Nun habe ich einige schon implementierte Funktionen gefunden, wie z.B. SysTimeGetMs, SysTimeRtcGet oder SysRtcGetTime.
    Diese habe ich unter "Bibliotheksverwalter -> Bibliothek hinzufügen" auch hoffentlich richtig implementiert, jedoch wirft mir Codesys beim Programmstart immer einen Fehler aus.
    Der Rückgabetyp dieser Funktionen ist mal UINT, DATE_AND_TIME oder auch mal DWORD, je nachdem was in der Beschreibung im Bibliotheksverwalter steht, jedoch bekomme ich jedes mal beim Zuweisen der Funktion zu meiner Variablen des eigentlich richtigen Types eine Fehlermeldung wie z.B. diese: Typ 'SYSRTCGETTIME(sysrtc23, 3.4.0.0 (system))' kann nicht in Typ 'DATE_AND_TIME' konvertiert werden".
    Ich würde mich freuen, wenn mir jemand bei meinem Problem helfen könnte.
    Vielen Dank im Voraus.
    Mit freundlichen Grüßen
    Thorsten
    Zitieren Zitieren Zeit messen  

  2. #2
    Registriert seit
    21.09.2011
    Beiträge
    13
    Danke
    2
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hi,

    ich hab momentan kein Codesys zur Hand jedoch sollte folgendes Funktionieren:

    Code:
    dwOldSysTime := SysTimeGetMs(); // Merken der Systemzeit in Millisekunden, ich gehe davon aus es ist ein DWORD, daher muss dwOldSysTime ein DWORD sein
    
    // Hier könnte Code Stehen der gemessen werden soll....
    
    
    dwTimediff := SysTimeGetMs() - dwOldSysTime;  // Berechnung der Zeitdifferenz in Millisekunden


    Versuch es mal damit, bzw. mit ähnlichem Code. Falls das nicht geht, meldest dich einfach nochmal mit möglichen Fehlern, da ich es wie gesagt nicht testen konnte.


    Gruß Stefan

  3. #3
    Thorsten16 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    06.01.2015
    Beiträge
    9
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Gordrin,
    Die Funktion funktioniert wunderbar. Als ich diese Funktion ausprobiert habe, habe ich immer eine Zeitdifferenz von 0ms herausbekommen, weil das Programm wohl einfach so schnell abläuft.Wenn ich jedoch einen Haltepunkt aktiviere und kurz warte, bekomme ich eine Zeitdifferenz > 0 angezeigt.
    Vielen Dank für deine Hilfe.
    Gruß Thorsten

  4. #4
    Registriert seit
    26.01.2013
    Ort
    Hannover
    Beiträge
    105
    Danke
    3
    Erhielt 15 Danke für 10 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,
    ich würde die beiden Zeilen umgekehrt und direkt nacheinander schreiben, also erst die Berechnung und dann die Zeit für den nächsten Zyklus speichern. Das hat den Vorteil, dass du auch die Zeit für Systemfunktionen (Lesen der Eingänge, Schreiben der Ausgänge) mit erfasst.
    Gruß
    Holger

Ähnliche Themen

  1. Zeit messen mit SCL
    Von Casimyr im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 26.08.2011, 07:40
  2. Zeit Messen?!
    Von MikeJ im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 02.12.2010, 20:00
  3. Zeit - Rückwandbus messen
    Von dfpes im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 01.09.2010, 23:38
  4. 1ms Zeit messen?
    Von DennisBerger im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 17.05.2010, 12:42
  5. Wie Zeit messen im 0,1 ms Bereich
    Von maxmax im Forum Elektronik
    Antworten: 8
    Letzter Beitrag: 28.11.2007, 19:44

Lesezeichen

Berechtigungen

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