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!
Über den DAQ Assistenten will ich Spannungen über 30 (analoge) Ports messen. In einer meiner alten Versionen vom VI, misst er richtige eine einzelne Spannung. Jetzt wollte, ich dass er mehrere Spannungen misst, da ich alle 30 Ports in Zukunft nutzen möchte.
Leider misst er jetzt gar nichts mehr richtig. Nur absurde Spannungen von 5,34..V obwohl der Bereich bei +-2V gesetzt wurde.
Anbei liegen beide VI Versionen. Version A ist meine aktuelle Version (die die nicht funktioniert). Version B ist die alte, die funktioniert.
Ich vermute es liegt irgendwie an den Einstellungen das DAQ:
Die Ports wurden richtig verbunden, als Test habe ich eine Batterie angeklemmt.
Als "Terminal Configuration" habe ich "Differential" gesetzt, da es später im Versuch eine Differenz messen soll.
Die "Timing Settings" sollen eigentlich von außerhalb kommen, wäre aber erstmal froh, wenn er erfolgreich die Spannung misst.
Weiteres:
Version B berechnet erstmal überhaupt nicht, da ich weiter hinten im Programm noch eine Menge Pointer und Array Probleme habe. Dies ist aber kein Problem, ich brauche bloß erstmal eine richtige Spannung
1) Du hast deinen DAQ-Assi so konfiguriert, dass er einen AI-Eingang misst. Wie sollen da dann mehrere AI-Kanäle herauskommen? Nur das AI-Read auf N Channels umstellen hilft da nicht, du musst den Task, bzw. den DAQ-Assi schon richtig konfigurieren.
Zur Einführung in DAQmx sei hierauf verwiesen: http://www.labviewforum.de/Thread-Gettin...h-NI-DAQmx
2) Was für eine Messhardware hast du im Einsatz? 30 Analog-Ins im Differential Modus messen, das können nur wenige Karten.
3) In LabVIEW gibt es (im Prinzip) keine Pointer!
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!
Zu 1) Ich werde mich mal dort beslesen, danke für den Hinweis.
Zu 2) Ich bin gerade nicht mehr am Arbeitsplatz. aber Ni Gerät Name: USB 6229 (evt daq davor) ein gerät welches 31 analoge und 30 Digitale IO'S hat. Ziemlich teures aber sehr sehr schönes Ding
Zu 3) Über Pointer greife ich auf gewissen Stellen im Array zu. Die bezeichne ich auch als Pointer.
also ich bin noch mal neu rann gegangen und hab eine sehr praktische Funktion gefunden, die meine ehemalige Arbeit unnütz und überflüssig macht. Was fürs leben gelernt....
Ich hab jetzt mal mehr nach dem Tutorial von NI gearbeitet. http://www.ni.com/swf/devzone/ai/
Es misst anfangs realistische Werte, jedoch steigen die nach ein paar Durchgängen an, auf werte die nicht sinnvoll sind. Siehe Screenshot
Ich habe als Quelle 2 Batterien messen lassen, also sollte sowas wie 1,3-1,5V raus kommen.
Mein Messgerät: NI USB-6229 Pinout
Falls jemand noch einen Tipp hat, wäre ich sehr dankbar.
desweiteren würde ich mich noch dafür interessieren, ob man die Ports, zwischen denen gemessen wird, über lbaview umstellen kann?
zum Beispiel zwischen ai0 und ai8 zu ai0 und ai4
Nein, die Analog-In-Anschlüsse kannst du nicht frei routen.
Es gelten somit die Anschlussbelegungen aus http://www.ni.com/pdf/manuals/371022k.pdf, Seite 4-5.
Wenn du also AI0 im differentiellen Modus misst, dann musst du deine Kabel an AI0 und AI8 anschließen.
Zwecks deiner Frage davor, was hast du denn jetzt wie/wo angeschlossen?
Gruß, Jens
1) Bitte nicht alles klein schreiben ( vgl. LVF-Regeln )
2) Versuche in Zukunft die richtigen LV-Fachbegriffe anzuwenden. Wir hatten ja schon den Pointer. Mag ja sein, dass du aus C gewohnt bist, per Pointer auf Array-Elemente zuzugreifen. In LabVIEW gibt es für alle Array-Operationen die entsprechenden Funktionen/VIs. KEINE Pointer. Ähnlich ist es mit dem Begriff Port, in Zusammenhang mit NI-DAQ-Karten bezeichnet Port die Zusammenfassung mehrerer DIO-Lines. Eine AI/AO Anschlussklemme als Port zu bezeichnen, kann sehr verwirrend sein.
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!
Angeschlossen habe ich erstmal so, wie es vorgeschrieben ist. Also Differentiell ai0 (+) und ai8 (-) sowie ai4 (+) mit ai12 (-).
Mein Script soll den Mittelwert und die Standartabweichung berechnen. Beim ersten durchlaufen funktioniert das auch. Wenn man jedoch dies mehrmals durchlaufen lässt, ändern sich die Mittelwert von rund 1,5V auf 5,33V welches absolut nicht sein kann, da eine normal Baterrie angeschlossen ist.
Jens schrieb: "Versuche in Zukunft die richtigen LV-Fachbegriffe anzuwenden."
Du schreibst: "Mein Script..."
Siehst du den Widerspruch? In deinem Blockdiagramm findet sich kein Script...
Zitat:Beim ersten durchlaufen funktioniert das auch. Wenn man jedoch dies mehrmals durchlaufen lässt,
- Hört sich nach einem Problem aufgrund fehlerhaft genutzter FeedbackNodes an. Du solltest mal deine aktuelle Version des VIs anhängen.
- Wenn ich mir deine "Version B" aus Beitrag #1 anschaue, sehe ich etliche Dinge, die mangelndes Verständnis offenbaren (wie: nicht autoindizierende FOR-Schleifen, umständliche RubeGoldberg-Berechnung des Mittelwerts, Nutzung des "N"-Eingangs bei FOR-Loops, geschachtelte Case-Strukturen obwohl eine ausreicht, generell schlechter Programmierstil etc.). Hier etwas nachzuarbeiten, kann auch nicht schaden...