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 

Kommunikation zw. Haupt- und Sub-VI



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!

18.01.2008, 20:16 (Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2008 09:10 von Lucki.)
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Kommunikation zw. Haupt- und Sub-VI
' schrieb:Danke. Den Unterschied zwischen Notifier und Queue hab ich so ziemlich verstanden: Notifier unterbricht das Hauptprogramm wenn Daten kommen, Queue schreibt die Daten kontinuierlich in einen Puffer, dieser wird dann vom Hauptprogramm ausgelesen. Das mit Notofier funktioniert mit polling eh recht ähnlich wie eine Queue.

Aber was versteht man unter implizitem Timing? Durch Anzahl Samples sagst du dem Read doch nur wieviele Samples es sich abholen soll. Oder meinst du damit, dass es warten muss, bis soundsoviele Daten zur Verfügung stehen?
Was meinst du mit dynamischer Speicherallokierung?

lg, PHILIPP
Freedive hat selbstverständlich recht: Den "Testmode" in dem VI hatte ich vorgesehen, damit man die Datenerfassung autark ohne das Hauptprogramm testen kann.

"Implizites Timing" ist kein offizieller Begriff, Freedive meint damit, daß die While-Schlife, in der sich das QAQmx Read befindet, entsprechend dem Datenaufkommen getimed und mit den Daten synchronisiert wird, ohne das sich dazu in der Schleife ein Timer befindet.

Die Datenerfassung wird hardwaremäsig vom internen Timer auf der Messkarte getaktet und die Samples kommen in der Regel erst einmal in einen Buffer. Das DAQmx Read hat mit dem Timing der Datenerfassung überhaupt nichts zu tun, da es nur die Daten aus dem Puffer liest. Es hat aber sehr wohl zu tun mit dem Timing bei der Datenverarbeitung und deren Synchronisation mit der Datenerassung, und zwar funktioniert es so:

In der Regel wird eine Anzahl von Daten festgelegt, die gelesen werden sollen, z.B. N=10. Das VI Read wartet dann geduldig mit der dem Lesen, bis 10 Samples im Buffer sind (D.h es blockiert so lange, so wie es die Wait-Funktion auch tut) ). Damit ergibt sich das richtige Timing mit der Datenerfassung und die Synchronisation. Pech ist es natürlich, wenn die Datenverarbeitung in der Schleife zu lange dauert. Bei 100 Daten im Buffer werden auch nur 10 Werte herausgelesen, und wenn die Datenerzeugung schneller ist als die Verarbeitung, dann füllt sich der Buffer immer mehr, bis es zum Überlauf kommt.

Man kann DAQmx read auch anweisen, alle Daten im Buffer auszulesen. Aber selbst dann ist hier kein Polling (= laufendes Nachfragen, ob schon etwas im Buffer ist) erforderlich. Denn wenn der Buffer ganz leer ist, dann wartet das VI, bis wenigstens 1 Sample im Buffer ist, so daß auch hier die Datenverarbeitung in der Schleife nie mit leeren Daten dasteht.

PS: Wer in die Schleife mit DAQmx Read noch eine Wait-Funktion einbaut, outet sich als jemand, der dieses Prinzip noch nicht verstanden hat. Man sieht das hier bei Anfängern leider immer wieder.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
Kommunikation zw. Haupt- und Sub-VI - Lucki - 18.01.2008 20:16

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Haupt-VI zu mehrfach gleichzeitig ausführbaren Sub-VI machen mez15 5 4.725 14.02.2017 08:32
Letzter Beitrag: GerdW
  Durch Schließen des SubVIs reagiert das Haupt VI nicht mehr?! C.Maier 2 3.942 07.10.2016 07:52
Letzter Beitrag: Lucki
  Öffnen des Haupt-VI's nach Initialisierungsfenster mit Ladebalken antonym 2 3.928 20.07.2015 09:39
Letzter Beitrag: antonym
  Mehrere Sub VI's in einem "Haupt" VI verwenden Timo86 4 4.733 05.11.2013 15:00
Letzter Beitrag: Timo86
  Eventstruktur in SubVi verarbeiten (aus Haupt Vi) qubie 1 3.915 12.06.2011 19:56
Letzter Beitrag: BNT
  Haupt VI "hängt" nach Aufruf/schließen von SUB-VI RabenFlug 1 4.968 26.02.2011 21:27
Letzter Beitrag: Richard

Gehe zu: