Sinus an NI PCI - 6221 - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: Hardware (/Forum-Hardware) +---- Forum: NI Hardware (/Forum-NI-Hardware) +---- Thema: Sinus an NI PCI - 6221 (/Thread-Sinus-an-NI-PCI-6221) |
Sinus an NI PCI - 6221 - abrissbirne - 10.01.2008 21:36 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 Sinus an NI PCI - 6221 - Achim - 11.01.2008 06:57 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. Sinus an NI PCI - 6221 - abrissbirne - 11.01.2008 08:46 ' schrieb:Zu diesem Thema gibts doch Beispiele im Example Finder...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. Sinus an NI PCI - 6221 - Achim - 11.01.2008 09:30 ' schrieb:Über den Example Finder finde ich keine Beispiele. [attachment=10598] Zitat:Erstellen eines Tasks, erstellen eines Channels, DAQmx Write, DAQmx Start Task, DAQmx Stop Task. Falsche Reihenfolge! Erst Start, dann Write! Siehe Beispiele! EDIT: Post #2100 Sinus an NI PCI - 6221 - abrissbirne - 11.01.2008 11:21 ' schrieb:Falsche Reihenfolge! Erst Start, dann Write! Siehe Beispiele!Danke für den Tip mit den Beispielen. Habe im Example Finder unter Search nach Sine gesucht und desshalb nicht das Richtige gefunden. In den von dir genannten Beispielen wird aber auch erst geschrieben und dann gestartet. Das VI ist Lauffähig, aber am Oszilloskop kommt gar nichts mehr an. Sinus an NI PCI - 6221 - Achim - 11.01.2008 11:47 ' schrieb:In den von dir genannten Beispielen wird aber auch erst geschrieben und dann gestartet. Naja...du kannst auch erst starten und dann mit Write deine Kurve vorgeben...solange würde halt nix ausgegeben. Ich meinte, wenn du die kurve aktualisieren willst (neue Parameter durch ein Write), z.B. in ner While-Schleife, ist es notwendig, den Start vor die Schleife zu legen und dann in der Schleife zb auf Knopfdruck nur noch den schon gestarteten Task zu aktualisieren. Warum bei dir nix ankommt, kann ich nicht sagen...ist der richtige Kanal ausgewählt? Kommt was raus, wenn du den AO über den MAX mal testest? Sinus an NI PCI - 6221 - Lucki - 11.01.2008 11:53 ' 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... Sinus an NI PCI - 6221 - Achim - 11.01.2008 12:42 ' schrieb: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. Dieses Beispiel aus dem Examplefinder sollte doch nun wirklich weiterhelfen: Cont Gen Voltage Wfm-Int Clk-Non Regeneration.vi Da kannst du auch die Frequenz übergeben, und zwar so wie Lucki sagt...als Waveform! Sinus an NI PCI - 6221 - abrissbirne - 11.01.2008 13:21 ' schrieb:Dieses Beispiel aus dem Examplefinder sollte doch nun wirklich weiterhelfen: Cont Gen Voltage Wfm-Int Clk-Non Regeneration.viIch 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. Sinus an NI PCI - 6221 - abrissbirne - 15.01.2008 13:44 ' 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).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. |