10.01.2008, 21:36
Beitrag #1
|
abrissbirne
LVF-Stammgast
Beiträge: 480
Registriert seit: Aug 2007
LV2009, LV2010
2007
EN
66123
Deutschland
|
Sinus an NI PCI - 6221
Hallo,
irgendwer müsste mir auf die Sprünge Helfen. Ich möchte eine Sinusspannung an einen Analogausgang beschriebener NI Karte ausgeben. Soweit so gut, ich hab aber einen Denkfehler. Ich möchte das man Amplitude, Frequenz und Perioden auswählen kann. Die Sinusspannug erzeug ich in einer Schleife, aber ich kenne nicht die Abarbeitungszeit von LabVIEW für diese Schleife. Eigentlich wäre es besser die Sinusspannung außerhalb einer Schleife an die Karte auszugeben. Die Karte hat auch Counter-Outputs. Kann ich diese irgendwie für die Zeittaktung des Sinus nutzen?
Danke
|
|
|
11.01.2008, 06:57
Beitrag #2
|
|
|
11.01.2008, 08:46
(Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2008 09:20 von abrissbirne.)
Beitrag #3
|
abrissbirne
LVF-Stammgast
Beiträge: 480
Registriert seit: Aug 2007
LV2009, LV2010
2007
EN
66123
Deutschland
|
Sinus an NI PCI - 6221
' schrieb:Zu diesem Thema gibts doch Beispiele im Example Finder...
Allgemein:
Du erzeugst ein "Pattern" (Sinus, Rechteck, etc) und "schickst" es der Karte bzw. dem Treiber, inkl. deiner Parameter (SampleRate, Frequenz, etc.). Der Treiber macht dann den Rest direkt auf der Karte, da ist deine LV-Applikation aus dem Rennen!
A.
Hallo und danke für deine Antwort.
Über den Example Finder finde ich keine Beispiele. Ich kann aber auch nicht alle Beispiele zu diesem Thema öffnen, da irgendwelche Add ons fehlen. Ich werde es aber nochmal nach deiner Beschreibung versuchen. Eine allgemeine Frage zur Karte hab ich noch. Das ist meiner erste Applikation mit einer solchen NI Karte. Über die NI DAQmx Funktionen steuere ich die entsprechenden Ausgänge. Wollte wissen, ob mein Vorgehen so richtig ist:
Erstellen eines Tasks, erstellen eines Channels, DAQmx Write, DAQmx Start Task, DAQmx Stop Task.
Edit:
Also am Oszilloskop bekomme ich eine schöne Anzeige. Mein Problem bei der Sache ist das ich keine Frequenz übergeben kann. Ich kann nur an den Samples drehen und komme damit nicht wirklich in den für mich interessanten Bereich von 1Hz.
|
|
|
11.01.2008, 09:30
(Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2008 11:48 von Achim.)
Beitrag #4
|
|
|
11.01.2008, 11:21
Beitrag #5
|
|
|
11.01.2008, 11:47
Beitrag #6
|
|
|
11.01.2008, 11:53
(Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2008 11:53 von Lucki.)
Beitrag #7
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Sinus an NI PCI - 6221
' schrieb:Also am Oszilloskop bekomme ich eine schöne Anzeige. Mein Problem bei der Sache ist das ich keine Frequenz übergeben kann. Ich kann nur an den Samples drehen und komme damit nicht wirklich in den für mich interessanten Bereich von 1Hz.
Man kann an die DAQmx-Funktionen die Frequenz nicht direkt übergeben, sondern nur das Sampling-Intervall dt bzw den Reziprokwert fs (Sampling-Frequenz). Die Frequenz ergibt sich dann aus fs, dividiert durch die Anzahl der Samples für 1 Periode. Das mußt Du selbst managen. Die NI-Beispiele enthalten diese Berechnung zwar schon, sind aber ansonsten für einen allerersten Enstieg nicht so gut geeignet, da ist immer zu viel Schnickschnack drum herum.
Günstig ist die Datenübergabe als Waveform, da ist die Abtastrate mit dabei, und so wie Du die Waveform in einer Diagramm-Anzeige sieht, so kommt sie auch aus der Karte heraus.
Ich würde hier ein einfaches Beispiel geben, aber ich weiß nicht was Du genau willst.
Möglichkeiten:
a) Kontinuierliche Ausgabe einer Schwingung. Änderung der Parameter (Frequenz, Amplitude) nur nach vorherigem Abbruch der alten Waveform möglich. (Weil DAQnx dann neu konfiguriert wird)
b) Kontinuierliche Ausgabe der Schwingung. Die Parameter lassen sich während der Ausgabe kontinuierlich ändern. (Das ist nur mit konstanter Samplerate fs möglich. Diese muß so hoch sein, daß bei der höchsten vorkommenden Frequenz die Schwingung noch genügend viele Punkte pro Periode enthält. Die Datenübergabe erfolgt als Waveform-Stream, so wie bei einer Musikwiedergabe)
c) Ausgabe nicht kontinuierlich, sondern auf N Perioden begrenzt.
In jedem Fall gilt aber: Das gesamte Timing und die Syncronisation erfolgt durch die Karte bzw. durch die DAQmx-Treiber. Wenn Du glaubst, du mußt irgendwelche Schleifenzeiten für die Erzeugung der Daten wissen, dann liegst Du falsch bzw. du verwendest dann die wenig attraktive Einzelwert-Ausgabe, anstatt die Timing-Möglichkeiten der Karte zu verwenden.
Ein VI von Dir, auch wenn es nicht funktioniert, wäre auch nicht schlecht...
|
|
|
11.01.2008, 12:42
Beitrag #8
|
|
|
15.01.2008, 13:44
|
abrissbirne
LVF-Stammgast
Beiträge: 480
Registriert seit: Aug 2007
LV2009, LV2010
2007
EN
66123
Deutschland
|
Sinus an NI PCI - 6221
' schrieb:Ich habe genau das VI Cont Gen Voltage Wfm-Int Clk-Non Regeneration.vi ausgeführt. Die Ausgabe am Oszi stimmt aber nicht mit der Frequenzangabe des VI's überein. Hab mal meine Testprogramme hochgeladen(Version 8.2).
Edit:
Hab das Alles in eine Schleife gepackt, damit ich Veränderungen direkt am Messgerät mitverfolgen kann. Aber egal was ich versuche, meine Anzeige (Oszi) sieht dem auf meinem Waveform Graph nichtmal ähnlich. Dabei übergebe ich schon immer Waveforms zum schreiben. Hab dazu mal ein Screenshot hochgeladen.
Kann mir hier nicht weitergeholfen werden? Ich hab bereits alles versucht, aber ich bekomme kein Signal an den Ausgang. Einzig und allein einen Digitalen Ausgang konnte ich auf high schaufeln. Aber weder Sinus noch Counter lassen sich ansprechen. Kennt sich jemand mit der Pinbelegung der NI-6221 (37-Pin) aus? Unter Counter steht da PFI 0, PFI 1, PFI 2, PFI 6, PFI 0, PFI 1, PFI 2. Habe aber an keinen dieser Pins etwas messen können, obwohl ich die Dauer der High Position auf 2Sekunden gestellt habe. Wollte eigentlich mittels eines Counters eine Sinuspannung und einen Inpuls an den Ausgang schalten.
|
|
|
| |