DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife
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!
DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife
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.
Anzeige
04.03.2010, 11:33 (Dieser Beitrag wurde zuletzt bearbeitet: 04.03.2010 12:32 von jg.)
DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife
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
' 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
[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
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
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