LabVIEWForum.de
DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife (/Thread-DAQ-Frequenzmessung-im-Hintergrund-parallele-While-Schleife)

Seiten: 1 2


DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife - jimbolino - 03.03.2010 17:15

Moin!

ich habe folgendes Problem: Ich erfasse in meinem Programm mittels DAQ eine Signalfrequenz mit der 2-counter-methode. Die Erfassung ist in eine While-schleife gepackt. Die Messung dauert 500ms. Parallel dazu soll eine While-Schleife laufen, die die Frequenz verarbeitet. Diese Schleife soll in Anhängigkeit davon, ob ein neuer Frequenzwert vorliegt oder nicht eine bestimmte Funktion ausfüllen (unwichtig hier). Die Schleife zur Erfassung läuft deutlich langsamer (500ms) als die Verarbeitungsschleife. Beide Schleifen sollen mit dem gleichen Stopp-Knopf gestoppt werden können. Nun passiert es aber oft, dass das Drücken des Stopp-Knopfes von der Erfassungsschleife ignoriert wird, da sie sich gerade in einer Messung befindet und nicht den Stopp-Knopf abfragt. Wie kann ich das Problem lösen?? Bin für jede Hilfe dankbar!

Ich brauche es so, dass egal in welchem zustand sich die Erfassungsschleife befindet, die Stopp-Funktion auf jeden Fall durchgeführt wird und die Messung abgebrochen wird. Ich habs schon mit Ereignisstrukturen versucht, allerdings tuts das nicht, da die Frontpanelsperre nicht aufgehoben wird.

Hat jemand ne Idee oder schon mal ein ähnliches Problem gehabt? Kann das Programm nicht posten, da zu groß sorry.


DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife - NoD - 04.03.2010 11:33

Ich denke so löst du dein Problem.

[attachment=24870]

Lv86_img[attachment=24871]

ach ja... wenn du mit queuer arbeitest brauchst du nicht mal eine lokale variable. schau dir das beispiel zur erzeuger-verbraucher-struktur an...

[attachment=24872]

gruß


DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife - jimbolino - 04.03.2010 13:17

hallo NoD,

kannst du das programm bitte mal in einer älteren LV-versoin posten. ich benutze 8.5.1 und kann es leider nicht öffnen. danke!!! ich hoffe mal es hilft :-)


DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife - jg - 04.03.2010 13:56

Lv85_img[attachment=24881]

OfftopicRulez
LVF-Regeln lesen und beachten! Bitte keine Beiträge im SMS-Stil (d.h. alles klein geschrieben!).

Gruß, Jens


DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife - NoD - 04.03.2010 15:45

' schrieb:hallo NoD,

kannst du das programm bitte mal in einer älteren LV-versoin posten. ich benutze 8.5.1 und kann es leider nicht öffnen. danke!!! ich hoffe mal es hilft :-)

Hallo,

kann ich leider nicht, aber ich denke du kannst es in 2 min selber nachbauen (mit 8.5) du musst aber darauf achten, das Schaltverhalten des stopp buttons zu ändern. von latch auf schalten. sonst ist keine weitere gemeinheit darin enthalten. kannst es ja anhand des screenshots aufbauen!


DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife - jimbolino - 04.03.2010 19:46

[font="Arial"][/font]

Hallo,

ja hat einwandfrei funktioniert, das mit den Queues war entscheidend, da hatte ich vorher noch nie mitgearbeitet :-). Danke!!! Aber wie das so schön ist, ist das eine Problem gelöst, gibts gleich das nächste :-)).


Ich gebe einen Spannungswert über DAq aus (in der verbraucherschleife) und will, wenn ich stopp betätige, das stoppen, also füge ich "Reset-Device" in dem case "Fehler" ein (erzeugerschleife). um das ganze habe ich noch eine casestruktur zum anschalten. wenn ich jetzt anschalte, dann ausschalte und dann wieder anschalte, bekomme ich bei DAq-lesen( in erzeugerschleife) eine Fehlermeldung, dass die funktion nicht beendet werden konntem weil das Gerät entfernt wurde. das darf nicht sein. Hat da jemand vllt noch eine Idee?? Wäre lieb danke!!


DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife - NoD - 05.03.2010 10:22

kannst du bitte einen screenshot hochladen?


DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife - jimbolino - 05.03.2010 11:48

Bitte sehr.

In dem Fehler-Case ist dann "Reset Device". Der Fehler kommt beim erneuten Starten ohne das Programm vorher abzubrechen. Fehler bei DAQ-read: "Operation kann nicht ausgeführt werden, weil entweder ein Gerät aus dem System entfernt wurde oder ein Task abgebrochen wurde."


DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife - jg - 07.03.2010 20:01

Ich würde im "Fehler"-Case den DAQmx-Task sauber beenden, nicht nur über ein Reset-Device.

Gruß, Jens


DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife - NoD - 08.03.2010 10:13

Naja... die Queuer, so wie du das aufgebaut hast sind eigentlich nutzlos.
1. du musst nicht eine string konstante übertragen, sondern deine gemessene frequenz. Dazu musst du dem queuer "sagen" welchen datentyp du übertragen willst
2. 1 ungleich 0 ??? wenn du hier ein bedienelment anschliesst, kannst du die übertragung starten und unterbrechen