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

Results 1 to 8 of 8

Thread: Zeitmessung im us bereich #Hilfe bei SysTimeGetUs()

  1. #1
    Join Date
    28.11.2017
    Posts
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin Ich schlage mich seit einer Woche mit einem Problem rum.

    Ich möchte eine Zeitmessung machen. Messe Systemzeit an Punkt A und an Punkt B. Die Differenz ergibt die Laufzeit.
    Soweit so gut.

    In meinem Programm habe Ich mit SysTimeGetMs() aus der SysTimeCore bereits eine Funktionierende aber nicht ausreichende Zeitmessung implementiert.
    Jetzt möchte Ich SysTimeGetUs() verwenden und habe keine Idee wie ich mit dier funktion umgehen soll.
    Im speziellen wie müssen die Pramameter übergeben werden. Welche Parameter müssen über geben werden?

    Ich verwende Codesys 3.5 Patch 2 und alles soll erstmal auf dem Imulator laufen.

    ICh bin für jede Hilfe Dankbar.

    mfg CodeSysStarter
    Reply With Quote Reply With Quote Answered: Zeitmessung im us bereich #Hilfe bei SysTimeGetUs()  

  2. "Hi
    so:

    1. SysTime library im Bibliotheksmanager hinzu
    2. Dekalration:

    Code:
    VAR
     dwTime: DWORD;
     st1, st2: SysTime;
     std: SysTimeDate;
     TimeStamp: SYSTIME;
     i: DINT;
     diValue1: DINT:=10000;
     diCounter: DINT;
     nState: INT;
    END_VAR
    Implementierung:

    Code:
    SysTimeGetUs(st1);
     
    //code to measure
    FOR i:=1 TO diValue1 DO
     diCounter:=diCounter+1;
    END_FOR
     
    
    SysTimeGetUs(st2);
    dwTime := ANY_TO_DWORD(st2 - st1);
    Grüße"


  3. #2
    Join Date
    11.07.2017
    Posts
    168
    Danke
    2
    Erhielt 26 Danke für 22 Beiträge

    Default

    Also soweit ich Dokumentation dazu gefunden habe (Google ist da nicht besonders hiflreich): SysTimeGetUs bekommt als in/out-Parameter die Variable, in der die Zeit gespeichert werden soll, und gibt als Rückgabewert einen Fehlercode.

  4. #3
    weißnix_ Gast

    Default

    Ist den die messende Task schnell genug für die Genauigkeitsanforderung?

  5. #4
    Join Date
    28.11.2017
    Posts
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Reden

    Quote Originally Posted by weißnix_ View Post
    Ist den die messende Task schnell genug für die Genauigkeitsanforderung?
    Also die zeitdifferenz ist im normalen durchlauf gleich 0 im debug moduss nicht. scheint also zu funktionieren. die übergabe Variable sind ihrgend wie auch pointer oder timer pointer das versteh ich gerade garnicht. Ein kleines Code Beispiel wäre sehr hilfreich

  6. #5
    Join Date
    28.11.2017
    Posts
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default

    Ja also ich hatte das mal porbiert wie folgt:

    VAR
    t1: TIMER;
    END_VAR

    ___________________________

    fehler := SysTimeGetUs(ADR (t1));

    dabei wirft der kompiler mir aber vor das Ich einen wert mit schreibzugriff über geben muss

  7. #6
    weißnix_ Gast

    Default

    Du musst mal nachsehen, welche Datentypen die Funktion haben möchte.
    Ichkenne die Funktion nicht, habe hier aber ein Beispiel mit deren Anwendung+ Variablendeklaration gefunden. Gemessen wird hier eine Codeausführungszeit.
    Last edited by weißnix_; 29.11.2017 at 00:02.

  8. Folgender Benutzer sagt Danke zu weißnix_ für den nützlichen Beitrag:

    CodeSysStarter (29.11.2017)

  9. #7
    Join Date
    24.07.2013
    Posts
    619
    Danke
    1
    Erhielt 173 Danke für 142 Beiträge

    Default

    Hi
    so:

    1. SysTime library im Bibliotheksmanager hinzu
    2. Dekalration:

    Code:
    VAR
     dwTime: DWORD;
     st1, st2: SysTime;
     std: SysTimeDate;
     TimeStamp: SYSTIME;
     i: DINT;
     diValue1: DINT:=10000;
     diCounter: DINT;
     nState: INT;
    END_VAR
    Implementierung:

    Code:
    SysTimeGetUs(st1);
     
    //code to measure
    FOR i:=1 TO diValue1 DO
     diCounter:=diCounter+1;
    END_FOR
     
    
    SysTimeGetUs(st2);
    dwTime := ANY_TO_DWORD(st2 - st1);
    Grüße
    Edwin Schwellinger
    3S-Smart Software Solutions GmbH

  10. Folgender Benutzer sagt Danke zu HausSPSler für den nützlichen Beitrag:

    CodeSysStarter (29.11.2017)

  11. #8
    Join Date
    28.11.2017
    Posts
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die Unterstüzung,
    @weißnix_ und @Edwin:

    Danke für die grandiose Hilfe:
    Der gebene Link war Super hilfreich und das Code Bsp noch viel mehr.
    Ich hatte erwarteet das Codesys alle Projekt bekannten Datentypen farblich hervorhebt ,aber das war wohl mein Trugschluss.
    Aufjedenfall läuft es jetzt.

    Danke für die schnelle und kompetente Unterstüzung

Similar Threads

  1. TIA E/A - Bereich bei CPs
    By Outrider in forum Simatic
    Replies: 4
    Last Post: 22.04.2016, 07:56
  2. Step 7 PCS7 Ungenauigkeit bei Zeitmessung
    By B1tst0rm in forum Simatic
    Replies: 28
    Last Post: 23.01.2016, 16:48
  3. Replies: 9
    Last Post: 05.04.2013, 09:01
  4. Replies: 22
    Last Post: 21.09.2012, 13:08
  5. Replies: 6
    Last Post: 24.02.2011, 21:07

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •