LabVIEWForum.de - Zeitmessung

LabVIEWForum.de

Normale Version: Zeitmessung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

Ich versuche, die Einschaltzeit von zwei digitalen Schaltern zu messen, und zwar vom Beginn des Stroms bis zu dem Zeitpunkt, an dem die Schalter hoch sind. Mein Eingangssignal ist eine 50-Hz-Sinuswelle. Wenn ich jedoch den kontinuierlichen Erfassungsmodus verwende, kann ich die korrekte Einschaltzeit nicht ermitteln. Ich denke, dass es ein Problem mit dem Code gibt (das ich nicht herausfinden konnte). Bitte helfen Sie mir in diesem Fall.
Hallo Gok,

Crosspost im NI-Forum

Könntest du die VIs bitte für LV2019 konvertieren?
Hallo Gok,

Zitat:Ich versuche, die Einschaltzeit von zwei digitalen Schaltern zu messen, und zwar vom Beginn des Stroms bis zu dem Zeitpunkt, an dem die Schalter hoch sind.
Messe einfach deinen Strom und werte das gemessene Signal nachträglich aus…

Zitat:Mein Eingangssignal ist eine 50-Hz-Sinuswelle.
Wie definierst du "Beginn des Stroms" und "Schalter sind hoch"?

Zitat:Wenn ich jedoch den kontinuierlichen Erfassungsmodus verwende, kann ich die korrekte Einschaltzeit nicht ermitteln.
Warum nicht?
Du kennst die Samplerate und weißt damit den zeitlichen Abstand zweier Samples. Aus dem Abstand der Samples kannst du die Zeit bestimmen!
(Bei 10kS/s hast du 100µs pro Sample…)

Zitat:Ich denke, dass es ein Problem mit dem Code gibt (das ich nicht herausfinden konnte).
Oh ja…

- Viel zu viele Case-Strukturen.
- Viel zu großes Blockdiagram.
- Zu viele lokale Variablen. Und dazu noch globale Variablen…
- Du liest keine feste Sampleanzahl vom DAQmxRead. Sollte man bei dieser Samplerate nicht mehr machen IMHO…

Wie und wo genau hast du deine Zeitmessung implementiert? Auf welchen Signalen beruht deine Zeitmessung?
(15.04.2024 19:20 )GerdW schrieb: [ -> ]Hallo Gok,

Zitat:Ich versuche, die Einschaltzeit von zwei digitalen Schaltern zu messen, und zwar vom Beginn des Stroms bis zu dem Zeitpunkt, an dem die Schalter hoch sind.
Messe einfach deinen Strom und werte das gemessene Signal nachträglich aus…

Zitat:Mein Eingangssignal ist eine 50-Hz-Sinuswelle.
Wie definierst du "Beginn des Stroms" und "Schalter sind hoch"?

Zitat:Wenn ich jedoch den kontinuierlichen Erfassungsmodus verwende, kann ich die korrekte Einschaltzeit nicht ermitteln.
Warum nicht?
Du kennst die Samplerate und weißt damit den zeitlichen Abstand zweier Samples. Aus dem Abstand der Samples kannst du die Zeit bestimmen!
(Bei 10kS/s hast du 100µs pro Sample…)

Zitat:Ich denke, dass es ein Problem mit dem Code gibt (das ich nicht herausfinden konnte).
Oh ja…

- Viel zu viele Case-Strukturen.
- Viel zu großes Blockdiagram.
- Zu viele lokale Variablen. Und dazu noch globale Variablen…
- Du liest keine feste Sampleanzahl vom DAQmxRead. Sollte man bei dieser Samplerate nicht mehr machen IMHO…

Wie und wo genau hast du deine Zeitmessung implementiert? Auf welchen Signalen beruht deine Zeitmessung?
Wie definierst du "Beginn des Stroms" und "Schalter sind hoch

Der Beginn des Stroms ist beim dritten Zustand der Zustandsmaschine "Increment current". Wenn der Stromwert nicht Null ist, beginnt der Zähler mit dem Zählen der Flanken eines 10MHz-Referenztaktes, bis die Flanken High sind (dann wird der Zähler angehalten). Die Werte werden aufgezeichnet, und der Strom wird abgeschaltet, indem der Stromwertvariablen der Wert Null übergeben wird; gleichzeitig wird der Zähler zurückgesetzt. Da ich 400 Abtastwerte mit einer Rate von 10kS/s lese, würde die Zeit für die Ausführung der Schleife 40 ms betragen, weshalb ich die Zeit der Schleife als 40 ms für den Zähler angegeben habe.
Die VIs für frühere Versionen finden Sie im Anhang
Referenz-URLs