LabVIEWForum.de - Timing über lange Zeit

LabVIEWForum.de

Normale Version: Timing über lange Zeit
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen.
Mein Programm das ich schreiben soll, wird auf einem Rechner durchgehend laufen. Das Programm bekommt von Zeit zu zeit einen Auftrag und dieser ist in einen oder mehrere Schritte unterteilt, die Steuerung und alles geschieht programmtechnisch.
Ein Probelm jedoch ist die Zeit.
Da ein Auftrag recht lang dauern kann, auch über Tage. Das macht das Timing zum Probelm, da ich nicht Tick-Count benutzen kann. Ich würde jetz spontan dann mit der aktuellen Zeit arbeiten.
Das sieht dann etwa so aus:

*EDIT* Ok... Snippits haben noch Probleme^^

Lv09_img2
[attachment=25189]

Nur läuft das nicht ganz so rund wie ichs gern hätte.
Die Zeit soll am besten Millisekundengenau sein, da ich zu den Messwerten(die hier keine Rolle spielen) die Zeit speichern soll und die Anzahl der Millisekunden eintragen muss... Wenn das ein bisschen schwankt nicht so schlimm.
Ein Schritt und ein Schleifendurchlauf kann in der Zeitlänge variieren. Das Problem ist, wenn die Schleifendurchläufe lang sind ist die Zeit passend genau.
Wenn die Schleifendurchlaufzeit jedoch in den Bereich unter 50ms etwa gehen läuft die Programmlaufzeit richtig und die Schlittlaufzeit hinkt hinterher ( 10-15%! )
Was kann ich tun?

Thomas
' schrieb:Ein Schritt und ein Schleifendurchlauf kann in der Zeitlänge variieren. Das Problem ist, wenn die Schleifendurchläufe lang sind ist die Zeit passend genau.
Wenn die Schleifendurchlaufzeit jedoch in den Bereich unter 50ms etwa gehen läuft die Programmlaufzeit richtig und die Schlittlaufzeit hinkt hinterher ( 10-15%! )
Was kann ich tun?

ein RT-System verwenden ... genau dafür sind die da ...

ansonsten ist dein Ansatz das Timing über die Rechner-Zeit zu synchronisieren schon der beste mir bekannte Ansatz. Der Tic-Counter ist für sowas nicht gedacht und gemacht, wie du schon selbst festgestellt hast.

Die Rechner-Zeit solltest du ab und zu (jede Stunde z.B.) mit einer Atom-Uhr abgleichen, damit du immer einen möglichst genauen Zeitstempel auf dem RT-Rechner hast, aber Vorsicht: wenn du die System-Zeit neu setzt (das ist dann ja quasi wie eine globale Variable) veränderst du natürlich auch das Ergebnis deiner Differenzen (letzte Zeit minus aktuelle Zeit): wenn die Rechner-Uhr vor geht, wird ein Schritt u.U. deutlich schneller ausgeführt wenn du die Rechner-Zeit aktualisierst, wenn die Rechner-Uhr nach geht wird das u.U. sehr lang dauern bis der nächste Schritt ausgeführt wird. Da muss man sich noch was geeignetes einfallen lassen um diesen Effekt zu kompensieren.
Hallo.
Danke schon mal für die Antwort.Smile
Da ich kein RT-System zur verfügung habe und das wohl auch nicht bekommen werde^^, werde ich wohl damit leben müssen und in die Dokumentation aufnehmen, wie ich die Zeitmessenung mache. Wird wohl auf ne Verzögerung hinauslaufen.
Referenz-URLs