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 

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!

08.03.2010, 14:09
Beitrag #11

NoD Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 70
Registriert seit: Apr 2008

8.5
2007
de

87654
Deutschland
DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife
Kurz gesagt, du hast Erzeuger- und Verbraucherschleife vertauscht. Du willst ja, soweit ich das versteh die gemessene Frequenz an die parallel laufende Schleife übertragen in der diese Frequenz analysiert werden soll. Oder?
Dann musst du die Daqmx Elemente in die andere Schleife packen! Schau dir lieber nochmal genau meinen Screenshot an!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.03.2010, 09:43 (Dieser Beitrag wurde zuletzt bearbeitet: 22.03.2010 09:55 von jimbolino.)
Beitrag #12

jimbolino Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Mar 2010

8.5
-
de

23552
Deutschland
DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife
Hallo NoD,

ich hatte Erzeuger und Verbraucher vertauscht, weil ich das Programm in der Schleife abbreche, in der die Frequenz verarbeitet wird. Ich will sozusagen die Erzeugung der Daten stoppen, wenn ich die Verarbeitung stoppe. Es gibt in der verbraucherschleife noch eine 2. Bedingung, die zum Abbruch des Programmes führt, deshalb habe ich das Bedienelement in der Verbraucherschleife. Es funktioniert auch einwandfrei, so wie ich es jetzt aufgebaut habe. :-). Bis auf das ich das Gefühl habe, dass die Datenübertragung nicht richtig funktioniert. Ich übergebe meine gemessene Frequenz mit einer lokalen Variablen, da auch der Rest des Programmes mit lokalen Variablen arbeitet. Mir ging es erstmal nur um die Stopp-Knopf-Problematik und die löst sich mit der "nutzlosen" Queue einwandfrei. Ich sehe aber ein, dass es eleganter wäre, das Bedienelement in die Erzeugerschleife zu tun (ist ja eigentlich egal, oder?) und werde das mal ausprobieren.

viele grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.03.2010, 11:53
Beitrag #13

jimbolino Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Mar 2010

8.5
-
de

23552
Deutschland
DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife
Ich verstehe nicht ganz, welche Bedingung an die Case-Struktur in der Erzeugerschleife angeschlossen werden muss. Hat da jemand noch eine Erklärung? Danke!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.03.2010, 12:59 (Dieser Beitrag wurde zuletzt bearbeitet: 22.03.2010 13:01 von NoD.)
Beitrag #14

NoD Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 70
Registriert seit: Apr 2008

8.5
2007
de

87654
Deutschland
DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife
Also die Datenübertragung (genauer Werte die gemessen werden) solltest du nicht mit Lokalen Variablen von Schleife zu Schleife übertragen da es zu Laufzeitfehlern führt, wenn du nicht konsequent mit Semaphoren arbeitest. Zudem sollte man lokale Variablen immer initialisieren!
Ich denke, dass dies auch dein Problem sein wird: Laufzeitfehler (Timing)!
Du solltest besser das so aufbauen, wie ich das gesagt habe (Erzeuger Verbraucher Struktur). Mit Lokalen Variablen übertrag ich persönlich nur Schalterzustände etc. (z.B. so wie im Anhang).

Wenn es dir nur drum geht zwei parallele Schleifen zu beenden dann geht das beispielsweise so:

   

Gruß NoD
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2010, 08:57
Beitrag #15

jimbolino Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Mar 2010

8.5
-
de

23552
Deutschland
DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife
hallo,

habe nochmal ne allgemeinere Frage zum Produzenten-Konsumenten-Modell. Das funktioniert doch nur, wenn der Produzent schneller bzw. mindestens gleich schnell wie der Konsument arbeitet (seine Schleifen durchläuft) ? Ansonsten greift der Konsument doch auf die Queue zu, wenn noch gar kein neues Element vorhanden ist und das gibt ne Fehlermeldung. Jedenfalls beobachtet ich das. Bei mir läuft die Konsumentenschleife allerdings schneller, da ja auch noch andere Schritte bearbeitet werden neben der Datenverarbeitung. meine Konsumentenschleife darf eigentlich nur auf die Queue zugreifen, wenn auch ein neues Element vorhanden ist oder?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2010, 09:20
Beitrag #16

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife
Wenn kein Element in der Queue ist, dann ist das quasi auch ein Zustand, nämlich "nichts tun". Das musst du nur entsprechend einbauen und abfangen, dann gibt es auch keine Fehlermeldung.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.03.2010, 12:02 (Dieser Beitrag wurde zuletzt bearbeitet: 24.03.2010 12:06 von NoD.)
Beitrag #17

NoD Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 70
Registriert seit: Apr 2008

8.5
2007
de

87654
Deutschland
DAQ-Frequenzmessung im Hintergrund/parallele While-Schleife
Also ein Fehler wird nicht erzeugt, wenn kein neuer Wert dem Queuer zugeführt wird. Es wird nur ein Fehler erzeugt wenn die Erzeugerschleife beendet wird (dieser beendet Verbraucherschleife).
Wenn kein Wert dem Queuer zugeführt wird, dann wird die Verbraucherschleife auch nicht ausgeführt. Sie steht sozusagen solange, bis wieder ein neuer Wert verfügbar ist.

Du kannst dir die ganze funktionsweise mit dem angehängten VI selbst erklären. Einfach ein wenig rumprobieren und die die beiden Schleifen Iterationszähler beobachten.

LV8.6
Sonstige .vi  ProducerConsumerData_Test.vi (Größe: 11,63 KB / Downloads: 188)
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
  Frequenzmessung mittels Counter DM_94 8 6.625 13.09.2018 11:19
Letzter Beitrag: GerdW
  Parallele Datenerfassung mit NI USB 6361 Unaij 5 7.205 14.07.2016 12:20
Letzter Beitrag: GerdW
  Zählergestütze Frequenzmessung Lab_fänger 4 5.957 03.01.2016 18:35
Letzter Beitrag: Lab_fänger
  PXI-6259 ctr0 - Frequenzmessung tss 0 3.759 26.11.2014 13:46
Letzter Beitrag: tss
  Frequenzmessung von Digitalsignal ungenau ingeule 18 17.245 02.10.2014 16:16
Letzter Beitrag: hummamh
  Frequenzmessung mit NI USB-6211 hummamh 12 11.526 29.09.2014 12:34
Letzter Beitrag: hummamh

Gehe zu: