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 

Kontinuierlicher analog Ausgang mit Änderung des Signals in der Programmausführung



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!

06.05.2014, 08:39
Beitrag #1

lumaxo Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Feb 2014

2012 SP1
2013
EN



Kontinuierlicher analog Ausgang mit Änderung des Signals in der Programmausführung
Hallo,

ich möchte ein analoges Signal mit "hoher" Frequenz kontinuierlich ausgeben. Die einzelnen Werte werden während der Programmausführung definiert.
Ich nutze das NI 9263.
Mit dem jetzigen Test VI funktioniert dies auch soweit.
Ich verstehe allerdings folgendes Verhalten nicht:
Es scheint einen Offset Fehler in der Ablaufzeit zu geben.
Beispielsweise ist die Schleife bei einer Abtastrate von 1 kHz und 1k auszugebenen Samples beriets nach ca. 367 ms beendet.
Bei 1 kHz und 10k Samples nach 9367 ms. Das beudeudet also das die ersten 1K Samples schneller ausgegeben werden als der Rest.
Mit steigender Abtastrate (z.B. 5 kHz) nimmt das offset ab (nur noch 32 ms schneller).
Ich vermute es hängt irgendwie mit dem initialisierten Puffer zusammen.
Kann mir das jemand erklären?


Angehängte Datei(en) Thumbnail(s)
           

12.0 .vi  Analog_Output.vi (Größe: 27,07 KB / Downloads: 235)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.05.2014, 08:53
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Kontinuierlicher analog Ausgang mit Änderung des Signals in der Programmausführung
Hallo lumaxo,

das Problem könnte daran liegen, dass du DAQmx mit der Ausgabe von Einzelwerten quälst!

Wenn du Samples mit "hohen" Sampleraten ausgeben willst, dann mach das mit der Option "1Chan NSamp" und lass DAQmx den Rest erledigen. Aber dauernd/ungebremst Einzelwerte auszugeben ist nun mal nicht das Gelbe vom Ei…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.05.2014, 09:22
Beitrag #3

lumaxo Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Feb 2014

2012 SP1
2013
EN



RE: Kontinuierlicher analog Ausgang mit Änderung des Signals in der Programmausführung
Das hatte ich befürchtet.
Ich wollte eigentlich somit gleiche eine zeitgesteuerte while Loop haben.
Da ich die Ausgangsspannung regeln will (hatte gehofft so an eine ms ranzukommen, daher auch die Einzelwerte).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.05.2014, 09:32 (Dieser Beitrag wurde zuletzt bearbeitet: 06.05.2014 09:48 von Lucki.)
Beitrag #4

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Kontinuierlicher analog Ausgang mit Änderung des Signals in der Programmausführung
Du siehst da etwas grundsätzlich falsch. Auf der Karte befindet sich ein Echtzeitsastem mit eigenem Timer für die Ausgabe der Werte. Das Bindeglied zwischen Karte und dem Labview-Programm auf dem PC sind Puffer. DAQmxWrite gibt normalerweise keine Daten aus, sondern schreibt sie nur in den Puffer. Damit dann alle Daten vor Beendes des VI auch ausgegeben werden, gibt es die Funktion "Warten bis Task beendet". Du aber beendest den Task brutal, nachdem alle Daten in den Puffer geschrieben worden sind. Es hat also weder die von Dir gemessene Zeit irgendetwas mit der Datenausgabezeit zu tun, noch werden alle in den Puffer geschriebenen Daten wirklich ausgegeben. Um die Zeit zu messen, müßtest Du warten, bis die Funktion "Warten bis Task beendet" ausgeführt worden ist.

Edit: Wenn das von Gerd angesprochene "Quälen mit Einzelwerten" eine Usache für das Nichtfunktionieren Deines VIs sein sollte - was ich nicht glaube -, so käme dann eine Fehlermeldung wegen Datenmangel. (Weil der Datennachschub mit der vorgegebenen Datenrate nicht Schritt halten kann). Solange die Fehlermeldung nicht kommt, besteht kein Handlungsbedarf. Der Einschätzung als "Quälerei" ist aber trotzdem zuzustimmen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.05.2014, 10:12
Beitrag #5

lumaxo Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Feb 2014

2012 SP1
2013
EN



RE: Kontinuierlicher analog Ausgang mit Änderung des Signals in der Programmausführung
Danke Lucki.

Also ist das generell der falsche Ansatz für mein Vorhaben.
Gibt denn keine Möglichkeit ohne Labview RT Einzelwerte in einstelligen ms-Bereich zu erfassen, verarbeiten (LabVIEW PID) und auszugeben?

(zur Datenaufnahme habe ich das NI 9239)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.05.2014, 10:53 (Dieser Beitrag wurde zuletzt bearbeitet: 06.05.2014 10:58 von Lucki.)
Beitrag #6

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Kontinuierlicher analog Ausgang mit Änderung des Signals in der Programmausführung
Dass das VI gnerall falsch ist, wollte ich nicht sagen. Ich wollte nur sagen, dass Du bei der Zeitmessung das Faktum der Pufferung nicht berücksichtigt hast. Mit Enfügen des VI "Warten bis Task beendet", wie ursprünglich von mir gesagt, ist es auch nicht getan. Denn bei kontinuierlicher Ausgabe wird der Task nie beendet, man kann den Task wirklich nur durch brutales Abbrechen beenden. Aber dann weiß man nicht, wie viele Werte gechrieben wurden.
Wenn Du also so wie bei Dir eine ganz bestimmte Anzahl von Werten ausgeben willst, dann ist die Saubere Lösung "Finite Samples" in der Konfiguration.
Habe das mal gemacht, und dann stimm die Zeitmessung.
Die Daten erst wärend die Ausgabe läuft zu berechnen geht natürlich, aber bei eine Rate von 5000 ollten Berechnung und der Daten-Nachschub schon arrayweise erfolgen und nicht in Einzelwerten. (Aber mit Einzelwerten funktioniert Dein VI auch, habe es probiert)


Angehängte Datei(en)
12.0 .vi  Analog_Output.vi (Größe: 26,24 KB / Downloads: 388)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Hilfe bzgl. kontinuierlicher Datenerfassung gefragt Philipp841 2 2.863 04.09.2020 12:30
Letzter Beitrag: jg
  Differenzieren eines DAQ Signals Nanaa 3 4.400 15.07.2015 08:58
Letzter Beitrag: GerdW
Question Ausgang lesen olmethn 5 5.925 24.03.2015 18:14
Letzter Beitrag: GerdW
  Analog Eingang triggern nach Digital Ausgang cobain2004 0 4.221 28.11.2014 13:49
Letzter Beitrag: cobain2004
  DAQmx - Analog Output - Dynamische Anpassung des Signals Philbo 17 19.394 28.04.2014 22:18
Letzter Beitrag: Lucki
  Erzeugung eines stufenlos einstellbaren PWM-Signals Fredy Dilker 14 21.695 24.03.2014 11:01
Letzter Beitrag: GerdW

Gehe zu: