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!
Ich hab folgendes Problem: Für eine Studienarbeit möchte ich einen passat cc mit unterschiedlichen Senosren ausstatten und ziel soll es sein, fahrdynamische Kennlinien zu bekommen(Lenkung usw). Von meinem Kollegen, der sich mit einem Polo beschäftigt hat ( ostfalia) hab ich mir die grobe Programmstruktur geholt.
Ich möchte 10 analoge Spannungen messen, welche angezeigt, und in eine csv-datei abgespeichert werden sollen. Dazu hab ich einen NI cDAQ-9178 "Messblock" mit einer NI 9205 Messkarte. 6 Signale mess ich auf com, und 4 differentiell.
Nun will ich die Messwerte in EINEM DAQ-Task auslesen, damit ich nicht 10 tasks in dem Programm habe. Aber es erscheint überall in der Ausbage die Zahl null, außer in der ersten "Messzeile", aber der Wert der da rauskommt ist murx, er schwankt stark und ist immer anders.
Ich benutze Labview 9.0
achja, nach Möglichkeit möchte ich mit 20 Hz messen, im Moment komme ich irgendwie nur auf 10Hz.
Ich hoffe mir kann da jemand helfen, vielleicht ist es nur ein kleiner Fehler.
mfg silas
21.03.2011, 14:04 (Dieser Beitrag wurde zuletzt bearbeitet: 21.03.2011 14:07 von GerdW.)
wenn du Spannungen von 10 Kanälen messen möchtest, solltest du auch diese 10 Kanäle beim DAQmx-Init angeben! Bisher steht dort nur "ai0"...
Dann solltest du auf ExpressVIs verzichten:
- Dann kannst du die ganze Skalierungsrechnerei in den DAQmx-Treiber verlagern ("Skalierung erstellen" etc.) - schon wird die DAQ-Schleife wesentlich kleiner (da du schon skalierte Werte erhälst) und du könntest "ArrayToSpreadsheetString" statt der ganzen Einzelkonvertierungen mit ConcatString nutzen!
- In der DAQ-Schleife fehlt das Timing. Du hast weder einen Sampletakt für DAQmx konfiguriert noch eine Wartezeit in der Schleife. Eines von beiden sollte es schon sein...
Also das mit den Kanälen einstellen, war ein guter Tipp! er misst jetzt alle die ich haben will, zwar nur bis 5 Volt, aber das krieg ich noch irgendwie hin, dass er bis 10 volt misst.
Das mit der Skalierung hat nicht geklappt. Hab den Task im Measurement und Automation Explorer mit den Skalierungen umgebaut, aber in Labview wirds nicht übernommen. Wenn ich im Measureme...Explorer auf "ausführen" klicke (Wo ich dann die Signale sehen kann) dann werden die umgerechneten Werte angezeigt, also bis dahin klappt die Skalierung.
Vielleicht muss ich da im DAQmx noch was umstellen? aber so wie ich den verstanden habe, müsste ich dann für jede Skalierung einen Kanal erzeugen.
Kannst du mir das mit dem Sampletakt nochmal kurz erklären? Weil, ich hab ja schon ein Metronom in der zweiten Schleife drin, und ich dachte, dass man nie mehrere Metronome in einem VI verwendet. Ich mein, es funktioniert ja, hab sample on demand eingestellt.
Gibt es irgendwo ein Beispiel wie man Messwerte aufnimmt ohne ExpressVI?
das mit dem array mach ich noch...
mfg und nochmal Danke
silas
22.03.2011, 15:53 (Dieser Beitrag wurde zuletzt bearbeitet: 22.03.2011 15:54 von GerdW.)
Zitat:Kannst du mir das mit dem Sampletakt nochmal kurz erklären?
Sampletakt stellt man mit DAQmx-SampleTiming ein...
Zitat:Weil, ich hab ja schon ein Metronom in der zweiten Schleife drin, und ich dachte, dass man nie mehrere Metronome in einem VI verwendet.
- Wieso nicht? Mehrere Metronome in einer Schleife können Blödsinn sein, aber mehrere Schleifen in einem VI kann man problemlos unabhängig takten...
- Was soll das Metronom in der zweiten Schleife (Dateispeichern) für einen Einfluß auf die erste Schleife (die mit dem DAQmx-Read) haben?
Zitat:Gibt es irgendwo ein Beispiel wie man Messwerte aufnimmt ohne ExpressVI?
Jede Menge in den LV-Examples. Einfach mal nach DAQmx suchen...
Zitat:Hab den Task im Measurement und Automation Explorer mit den Skalierungen umgebaut, aber in Labview wirds nicht übernommen.
Du verwendest im VI ja auch keinen Task, sondern greifst direkt auf die Kanäle zu - da werden also auch keine Taskdefinitionen von MAX übernommen...
Ich hab jetzt 20 Hertz erreicht. Nun ha ich noch zwei sachen:
1. Der erste Kanal misst nur bis etwas über 1 Volt. Wenn ich mehr gebe (ich simuliere den Sensor mit einem Netzgerät) bleibt der bei 1,1.... stehen. Das Netzgerät ist heile, hab da ne Anzeige dran, und zur Kontrolle noch ein Voltmeter. Im MAX hab ich Bereich eingegeben -10 bis 10 Volt.
2. Bei der CSV datei sind noch zwei Quadrat-strings hinter der zeitangabe. Wie bekomme ich die weg? Der Format-String ist doch richtig, oder?
danke schonmal im voraus
Mfg silas
Zitat:Wie bekomme ich die weg? Der Format-String ist doch richtig, oder?
Wenn du deine Daten oben schon mit Semikolons trennst, dann ist es ungünstig, in der unteren Schleife plötzlich Tabs als Trennzeichen zu verwenden. Beschränke dich auf ein (einheitliches) Trennzeichen und Excel wird wieder glücklich...
Zitat:Der erste Kanal misst nur bis etwas über 1 Volt.
Da du jetzt deinen selbstdefinierten Task verwendest, kannst nur du dessen Einstellungen kontrollieren. Vielleicht das Min/Max der Kanäle nicht korrekt eingestellt? (DAQmx läuft da gern mal in eine interne Begrenzung rein...)