LabVIEWForum.de - TIMING PROBLEME

LabVIEWForum.de

Normale Version: TIMING PROBLEME
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo LV Gemeinde,

ich habe ein Problem:)und zwar baue ich mit hilfe von LV einen Messaufbau auf in dem ich Messschritte auch zeitlich beenden möchte.
ich habe mir da zwar etwas gebastelt leider bekomem ich Abweichungen und zwar je grösser die verstrichene Zeit ist desto grösser auch die Abweichung.

Ich beschreibe euch mal den Aufbau, bitte fragt mich wenn etwas unklar ist:
Das ganze besteht aus 3 "Schleifen" aussen ist eine While Schleife inner Mitte eine "True & False Schleife" bessergesagt nen CASE und als drittes eine gestapelte Sequenz.
Von ganz aussen gebe ich den Startzeitwert vor ( 00:00:00,000 ). Der Casefall wird durch einen Boolschen Taster gegeben. Nun sind wir ja in der While SChleife und in dem TRUE Fall der Caseschleife in diesem Fall befindet sich die Sequenz mit 2 Sequenzen die gestapelt sind. In der ersten Sequenz warte ich 1ms bevor es in die 2te geht dort addiere ich auf den Zeitwert immer 1ms drauf und vergleiche diese mit der vorgegebenen Messzeit.

Nun die Frage warum bekomme ich da einen Verzug rein?? durch den Vergleich?? oder weil alles halt nicht in 1ms bewältigt werden kann??

Hätte jemand eine Idee wie ich das Problem dann lösen könnte ??

mfg
flizzer

ps. Danke für die Hilfe
Hmm

Blick ich nicht durch...

Hier: LVF-Link hab ich mal nen Timer gebastelt. Da kannste dir vielleicht was abgucken.

Ansonsten lad doch mal das VI hoch.


Gruß SeBa
HI SEBA
das VI kann ich nicht hochladen, würdest aber auch den knall bekommenSmile
aber werde mal versuchen nen pic rein zu stellen morgen.

aber besten dank für den Link werde mir den jetzt mal eben angucken

mfg
flizzer
Hallo flizzer82,

alles braucht irgendwo Rechenzeit. Auch Vergleiche. Mit Wait 1 ms wartest du zusaetzlich zu allen anderen Sachen die in der Sequenz passieren nochmal 1ms. Die Konsequenz ist, je laenger die While-Schleife laueft, desto mehr Abweichung resultiert zwischen deinem Zeit-wert und deinem Schleifen Zaehler.
Du haettest gerne, dass Beide immer gleich sind nehme ich an.
Bei einer Schleifenzeit von 1 ms kann ich dir mit meinem beschraenktem Wissen glaub ich keinen Tipp geben.
Bei groesseren Zeiten (z.B. 10 ms) koenntest du z.b. die Funktion "wait for ms-multiple" verwenden. Damit bleibst du ueber die Zeit hin exakt im Timing.

Erfordert deine Anwendung wirklich 1 ms? Was hast du denn vor?
Hallo LV Gemeinde
Entschuldigung für die späte Reaktion meiner seits. Aber es lage halt Festtage dazwischenSmile
Anbei habe ich mal Bilder des Timers angehangen vieleicht kann mir dort den Fehler bzw. das Problem erklären.

Bei Fragen stehe ich ab nun wieder zur VerfügungSmile

mfg
flizzer
Offtopic
Bitte keine BMPs hochladen, auch nicht solche, die als JPG getarnt sind.
Deine 1,5MB großen Bilder sind als PNG nur noch 20 kB groß!
Gruß, Jens
' schrieb:Anbei habe ich mal Bilder des Timers angehangen vieleicht kann mir dort den Fehler bzw. das Problem erklären.
Das wird nix. (Das mit der Zeit, das mit der Antwort schon.)

Erstens:
Du hast hier ein Windows-Betriebsystem. Das ist alles andere als zeitgenau. Die Zeit-While-Schleife mit 1ms Raster wird nicht funktionieren. Die Zeiten werden garantiert größer 1ms sein. Du inkrementierst zwar immer nur um 1ms, vergehen tun aber mindesten 1.5ms - pro Inkrement (=> je länger die Messung dauern soll, desto größer die Abweichung).

Zweitens:
Dein "Inkremental-Timer" misst ja die vergangene Zeit in ms. In dieser Zeit ist aber auch die Zeit enthalten, die außerhalb der Zeit-While-Schleife vergeht. Auch der Code, der zwischen der Zeit-While-Schleife und dem Inkrementieren vergeht, verbraucht Zeit. Diese Zeit möchtest du aber gar nicht messen.

Drittens:
Ein "Inkremental-Timer" hat diverse Nachteile (siehe auch oben). Ungenauigkeiten werden hier nämlich aufaddiert. Besser ist es, sich die Startzeit zu merken, die Endzeit zu berechnen und abzubrechen, wenn die aktuelle Zeit (Now) größer der Endzeit ist. Bei diesem Verfahren werden die Ungenauigkeiten nicht aufaddiert.
HI ICHSELBST
ja auf die Idee bin ich auch eben gekommen nur die Realisierung braucht noch Unterstützung Hilfe oder einfach noch ZeitSmile
ich wollte mir jetzt die aktuelle zeit angeben lassen die sekunden von da dann zählen und meine vorgegebene Schrittzeit in Sekunden berechen und die dann auf die Startzeit addieren um dann diese mit den abgelaufenen Zeit zu vergleichen.

Die Frage ist nur WIE????Wink

mfg
flizzer
Zwar blicke ich da nicht ganz durch, aber in Einem bin ich mir ziemlich sicher: daß man das Problem mit dem VI "verstrichene Zeit" ganz simpel und ohne jeden Krampf lösen könnte.
' schrieb:Zwar blicke ich da nicht ganz durch, aber in Einem bin ich mir ziemlich sicher: daß man das Problem mit dem VI "verstrichene Zeit" ganz simpel und ohne jeden Krampf lösen könnte.
Ich kann dir hier in allen Punkten zustimmen - naja, außer dem letzten: "ohne jeden". Das wird sich zeigen, ob "ohne jeden". Schließlich ist das Teil ein Express-VI.

Einen Versuch ist es auf jeden Fall Wert.
Seiten: 1 2
Referenz-URLs