INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Frequenz "Null" messen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

05.02.2016, 16:46
Beitrag #11

Reiling Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Mar 2015

14.0
2014
DE


Deutschland
RE: Frequenz "Null" messen
(12.11.2007 10:37 )Achim schrieb:  
' schrieb:Zu Achims Beitrag: Meiner Meinung nach wartet das DAQmx Read.vi an der Stelle, bis entweder ein Messwert, oder ein Timeout auftaucht. Dein Programm wird also nicht wie gewünscht bei f=0 ohne weiteres funktionieren. Eine Alternative wäre, die Frequenzmessung in eine parallele Schleife auszulagern, die aktuellen Messwerte immer in einen Notifier speichern und in der Hauptschleife nur den letzten Notifier-Status abzufragen...

Ok, haste recht...aber was ich eigentlich meinte, zeigt die Hilfe (roter Rahmen):




Wenn man also "0" als Timeout angibt, wird trotzdem gemessen und sofort ein Fehler angzeigt, wenn keine Frequenz, d.h. keine Flankenwechsel auftauchen...dann kann man aber auch sofort den Fehler verarbeiten/unterdrücken und die Messung geht einfach weiter! So hab ich das "früher" (noch mit Traditional DAQ) jedenfalls auch schon gehandhabt...

A.

Hallo zusammen,

mich treibt eine im prinzip gleiche Frage um wie Mila.

Ich habe jetzt versucht den Timeout Fehler zu unterdrücken, aber es führt nicht zum gewünschten Ergebnis. Die Messung läuft nicht weiter, nachdem eine Frequenz unter 16 Hz anlag, bezieungsweise startet nicht, wenn die Frequenz unter 16 Hz liegt. Im Beispielprogramm unterdrücke ich meiner Meinung nach alle Fehlermeldungen, aber auch wenn ich nur die Timeoutmeldung (Fehler 200474) unterdrücke funktioniert es nicht.

Was mache ich bei der Fehlerunterdrückung falsch?
Vielen Dank schon mal.


Angehängte Datei(en)
14.0 .vi  Frequenzmessung eines TTL Signales.vi (Größe: 23,74 KB / Downloads: 137)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2016, 16:54 (Dieser Beitrag wurde zuletzt bearbeitet: 05.02.2016 16:56 von GerdW.)
Beitrag #12

GerdW Offline
______________
LVF-Team

Beiträge: 17.426
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Frequenz "Null" messen
Hallo Reiling,

Zitat:Was mache ich bei der Fehlerunterdrückung falsch?
Musstest du dazu einen 9 Jahre alten Thread wieder hochholen?

Wenn man Fehler "unterdrücken" will, ist eigentlich schon alles zu spät: Dann ist der Fehler ja schon aufgetreten und du löscht ihn einfach nur.
Was würde passieren, wenn du die Minimalgrenze beim CreateChannel niedriger als "16 Hz" setzen würdest?
Was würde passieren, wenn du die Fehlermeldung beachtest und den Timeout anpasst?
Welche Hardware verwendest du überhaupt?
Bei sehr niedrigen Frequenzen kann man auch einfach die Zeit zwischen zwei Flanken messen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.02.2016, 10:57 (Dieser Beitrag wurde zuletzt bearbeitet: 08.02.2016 11:03 von Reiling.)
Beitrag #13

Reiling Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Mar 2015

14.0
2014
DE


Deutschland
RE: Frequenz "Null" messen
Hallo Gerd,
erst mal Danke für's reagieren auf den wieder entfachten Thread. Ich habe diesen weitergeführt, weil dieser mein eigentliches Problem am besten beschrieben hat, ich aber leider die in diesem Tread beschriebene Lösung nicht umgesetzt bekommen habe.

Meine Hardeware ist die NI-USB 6218. Mein Hauptproblem ist ahnlich zu Mias Problem nicht, dass ich Frequenzen unter 16Hz messen möchte, sondern, dass die Messung wieder aufgenommen wird, sobald wieder eine relevante Frequenz anliegt.

Meine Vorstellung ist, solange die Messwerte valide (Messwert größer 16Hz) Schreibe ich mir die Messwerte weg, wenn (Messwerte kleiner 16Hz) schreibe 0 für Stillstand.

Den Timeout habe ich meiner Meinung nach so stehen, dass das "DAQ max-Lesen" nur einmal versucht die Frequenz zu lesen. Damit möchte ich Verhindern, dass meine dann paralell laufenden Messungen auf den Timeout warten müssen.

Vielen Dank schon mal!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.02.2016, 11:36
Beitrag #14

GerdW Offline
______________
LVF-Team

Beiträge: 17.426
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Frequenz "Null" messen
Hallo Reiling,

Zitat:Den Timeout habe ich meiner Meinung nach so stehen, dass das "DAQ max-Lesen" nur einmal versucht die Frequenz zu lesen. Damit möchte ich Verhindern, dass meine dann paralell laufenden Messungen auf den Timeout warten müssen.
Ich habegerade dein Gerät simuliert und eine Task angelegt (F_min=3Hz, F_max=500Hz). Wenn du das mit einem TimeOut von 0.5s kombinierst, sollte die Messung halbwegs funktionieren…
Wies sollen parallel laufende Messungen von einem TimeOut des Frequenz-Tasks gestört werden?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.02.2016, 11:47
Beitrag #15

Reiling Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Mar 2015

14.0
2014
DE


Deutschland
RE: Frequenz "Null" messen
(08.02.2016 11:36 )GerdW schrieb:  Hallo Reiling,
Ich habegerade dein Gerät simuliert und eine Task angelegt (F_min=3Hz, F_max=500Hz). Wenn du das mit einem TimeOut von 0.5s kombinierst, sollte die Messung halbwegs funktionieren…
Wies sollen parallel laufende Messungen von einem TimeOut des Frequenz-Tasks gestört werden?

Hallo Gerd,

ich meine, dass so lange "DAQ max-Lesen" keine Ausgabe leifert und bis zum Timeout wartet, die Schleife nicht abgearbeitet werden kann. Das Problem tritt ja nur auf, wenn keine Frequenz anliegt und ich dann wieder starten möchte. Ansonsten kann ich klar den Timeout nach der kleinsten zu erwartenden Frequenz wählen, das bringt mich aber noch nicht weiter.

Könntest du mir bitte kurz einen screenshot von der Simulation der Taskwerte anhängen, das wäre nett. Mein Stand war, dass es nicht Möglich ist Vorgabewerte Für Eingänge an simulierten Geräten zu erstellen.

Dankeschön.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.02.2016, 16:59
Beitrag #16

Reiling Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Mar 2015

14.0
2014
DE


Deutschland
RE: Frequenz "Null" messen
Hallo zusammen,

um den Einfluss des Timeout zu zeigen habe ich das Beispiel VI noch mit einer Zufallszahl in der Messschleife ausgestattet, an der die Problematik sehr gut zu sehen ist. So lange das DAQmx Lesen eine Wert zum lesen hat ist alles paletti und das VI arbeitet einwandfrei. Liegt kein wert zum lesen an wird nach dem Timeout die Schleife auch wieder durchlaufen. Der Fehlerbehandler leistet also seinen dienst. Darum der ursprüngliche Versuch, das Timeout auf 0 zu stellen, damit einmal abgefragt wird, ob ein Messwert zur Verfügung steht und dadurch auch dann eine schnelle Abarbeitung der DAQmx Lesen erfolgt, wenn kein Wert verfügbar ist. Was isch nicht verstehe, ist, warum DAQmx Lesen bei erneutem anliegen einer Frequenz, also eines Messwertes, dennoch keinen Wert liest.

Ich hatte das ganze schon einmal mit Flankenzählung und der differenz der Zählerstände gelößt, fände es aber dennoch nett, wenn ich die beschriebene Problematik verstehen würde.

Vielen Dank


Angehängte Datei(en) Thumbnail(s)
       

14.0 .vi  Frequenzmessung eines TTL Signales_1.vi (Größe: 24,55 KB / Downloads: 112)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.02.2016, 19:12
Beitrag #17

GerdW Offline
______________
LVF-Team

Beiträge: 17.426
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Frequenz "Null" messen
Hallo Reiling,

Zitat:Der Fehlerbehandler leistet also seinen dienst.
Indem er einen Fehler löschen soll, der in LabVIEW überhaupt nicht definiert ist?

Zitat:Was isch nicht verstehe, ist, warum DAQmx Lesen bei erneutem anliegen einer Frequenz, also eines Messwertes, dennoch keinen Wert liest.
Ich habe gute Erfahrungen damit gemacht, dass ich bei einem DAQmx-Fehler den betreffenden Task stoppe und neu starte…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2016, 13:46
Beitrag #18

Reiling Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Mar 2015

14.0
2014
DE


Deutschland
RE: Frequenz "Null" messen
(10.02.2016 19:12 )GerdW schrieb:  Hallo Reiling,

Zitat:Der Fehlerbehandler leistet also seinen dienst.
Indem er einen Fehler löschen soll, der in LabVIEW überhaupt nicht definiert ist?

Macht er, wenn man nicht wie ich das Minus vor dem Fehler vergisstWink Fehler:"-200747" Danke für die Rückmeldung

Zitat:Was isch nicht verstehe, ist, warum DAQmx Lesen bei erneutem anliegen einer Frequenz, also eines Messwertes, dennoch keinen Wert liest.
Ich habe gute Erfahrungen damit gemacht, dass ich bei einem DAQmx-Fehler den betreffenden Task stoppe und neu starte…

Ich stoppe den und starte den Task jetzt, wenn ein Fehler auftritt, damit legt die Messung auch wieder los. Danke dafür. Siehe Beispiel:_4

Siehe auch:
http://digital.ni.com/public.nsf/allkb/D...B50044926E

Das ganze funktioniert jetzt so lange ich die Zeit für das Timeout, an die niedrigste Frequenz anpasse (hier 1s/16Hz=0.0625s), die es zu Messen gilt. So weit so schön, wären da nicht noch andere Messaufgaben, die ich mit beispielsweise 300 Hz Abtastrate aufnehmen muss. => Ich kann mir bei diesem Aufbau keinen Timeout leisten, der die 300 Hz Abtastrate der anderen Messungen behindert, zumal hierfür auch noch rechenzeit benötigt wird.

Den Task nur alle x Iterationen auszulesen bringt mir in sofern nichts, dass ich dann im Falle eines Timeoutes innerhalb dieses Lesevorgangs immernoch die Länge des Timeoutes brauche.

Einen Versuch jeweils nur ein Sample zu lesen und bei einem Fehler den Task zu stoppen und zu starten und dann erst wieder ettliche Iterationen später wieder ein Sample versuchen zu lesen war leider auch erfolglos. Beispiel_3

Danke für die Denkanstöße und für neue


Angehängte Datei(en)
14.0 .vi  Frequenzmessung eines TTL Signales_3.vi (Größe: 28,88 KB / Downloads: 125)

14.0 .vi  Frequenzmessung eines TTL Signales_4.vi (Größe: 26,99 KB / Downloads: 127)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2016, 13:57 (Dieser Beitrag wurde zuletzt bearbeitet: 11.02.2016 13:59 von GerdW.)
Beitrag #19

GerdW Offline
______________
LVF-Team

Beiträge: 17.426
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Frequenz "Null" messen
Hallo Reiling,

Zitat:Das ganze funktioniert jetzt so lange ich die Zeit für das Timeout, an die niedrigste Frequenz anpasse (hier 1s/16Hz=0.0625s), die es zu Messen gilt.
Ja, an sowas muss man als Programmier denken. Zum Glück kann man das ja auch durch eine Rechnung erledigen…

Zitat:So weit so schön, wären da nicht noch andere Messaufgaben, die ich mit beispielsweise 300 Hz Abtastrate aufnehmen muss.
Was hat das eine mit dem anderen zu tun?
Wo ist da jetzt der Zusammenhang?

Zitat:Ich kann mir bei diesem Aufbau keinen Timeout leisten, der die 300 Hz Abtastrate der anderen Messungen behindert, zumal hierfür auch noch rechenzeit benötigt wird.
Wieso behindert deine Frequenzmessung irgendwelche anderen Tasks?
Abgesehen davon: die Art und Weise, wie du eine Taktrate für deine Messschleife berechnest, ist hochgradig unsinnig: erstens hast du da einen CoercionDot (und der hat eine Bedeutung!) und zweitens kann man statt y=1/x*1000 auch y=1000/x schreiben (RubeGoldberg!). Und LabVIEW kennt auch Funktionen wie "+1", "-1" und "1/x"…

Zitat:Einen Versuch jeweils nur ein Sample zu lesen und bei einem Fehler den Task zu stoppen und zu starten und dann erst wieder ettliche Iterationen später wieder ein Sample versuchen zu lesen war leider auch erfolglos. Beispiel_3
Was wolltest du damit erreichen? Auch Beispiel4 liest immer nur ein Sample aus…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2016, 15:36
Beitrag #20

Reiling Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Mar 2015

14.0
2014
DE


Deutschland
RE: Frequenz "Null" messen
(11.02.2016 13:57 )GerdW schrieb:  Hallo Reiling,

[quote]So weit so schön, wären da nicht noch andere Messaufgaben, die ich mit beispielsweise 300 Hz Abtastrate aufnehmen muss.
Was hat das eine mit dem anderen zu tun?
Wo ist da jetzt der Zusammenhang?

Angenommen die Zufallszahlen stellen die andere Messaufgabe dar, dann werden diese nicht mehr innerhalb des Timings abgearbeitet, wenn die Wartezeit der Frequenzmesung zu groß ist. Also im Beispielfall dann im Timeout Fall maximal noch 16Hz. Muss ich hierfür dann die Frequenzmessung auslagern und parallel ausführen und die Daten dann übergeben, und wenn ja wie? Bisher sind die restlichen Messaufgabe Analogmessungen, die ich in einer Schleife, alle mit der Selben Abtastrate ausführe.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Sad Frequenz und analoge Signale mit der gleichen Sample Anzahl messen DM_94 7 5.159 13.09.2018 14:52
Letzter Beitrag: Lucki
  For-Schleife - Werte bei einen weiteren Start auf null setzt zichte89 6 5.054 24.05.2015 00:25
Letzter Beitrag: zichte89
  Durchflusssensor - Pulse zählen/Frequenz messen zig 46 29.033 07.10.2014 09:56
Letzter Beitrag: zig
  DAQmx Encoder Task nur einmal bei Z-Tic auf Null setzen cb 6 6.381 10.03.2014 14:49
Letzter Beitrag: cb
  Ausgabe mit letztem Sample auf Null monoceros84 19 11.537 07.01.2014 15:05
Letzter Beitrag: monoceros84
  Sehr geringe Frequenz messen d3isman 1 4.123 09.08.2011 08:41
Letzter Beitrag: M@rRy

Gehe zu: