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!
21.10.2008, 18:20 (Dieser Beitrag wurde zuletzt bearbeitet: 21.10.2008 18:26 von Dennis.Moser.)
Ich suche verzweifelt nach einer Lösung für mein Problem, (ich selber komme nicht mehr weiter) vielleicht könnte sich das jemand kurz ankucken.
Ich steuere einen Schrittmotor an, der über eine Welle einen Kraftsensor gegen einen Gegenstand fährt.
Dabei sage ich dem Schrittmotor fahr 10mm nach vorne. Gleichzeitig möchte ich eine Schrittweite vorgeben. Bei jedem Schritt soll der aktuelle Kraftwert über eine NI Karte abgefragt werden. Zusätzlich werden bei jedem Schritt mehrere Analogkanäle abgefragt. Die Samplerate berechne ich dann über (Schrittweite/Geschwindigkeit)*2. Bei jedem Sample soll nur ein Wert für jeden Kanal abgefragt werden. Jetzt soll LabVIEW relativ synchron mit der Schrittweite diese Abfrage machen. Normalerweise sollte dies über die Samplerate steuerbar sein.
Mit DAQ traditionell hat das Ganze funktioniert. Mit DAQmx bekomme ich langsam graue Haare!
Die Kanäle werden über eine NI-PCI Karte abgefragt. Im MAX sind alle Kanäle global definiert.
Vielleicht könnte sich jemand kurz das folge VI anschauen?
Vielen Dank im voraus.
Hallo nochmal!
Konkreter:
Mein Problem liegt darin, das ich nicht weiß, wie ich die Erfassung triggern soll. Mit DAQ traditionell wurde das Signal AI Scan Start mit PFI7?zusammengeschaltet.
Dadurch wurde irgendein Clock für die Sample-Rate genutzt.
Momentan ist ja kein Quelle zum Triggern angegeben. Werte einlesen kann ich, die Sample-Rate stimmt bloß nicht.
Wie würde das mit DAQmx funktionieren?
Eine andere Frage ist noch, ob ich den virtuellen Kanal richtig ansteuere (ich habe keinen Task im MAX erstellt, nur den globalen Kanal) und welche Buffer-Größe nötig ist. Ich brauche ja nur einen Wert pro Sample.
1. Die Angabe NI-PCI Messkarte ist nicht aussagekräftig, da solltest du schon genau den Typ verraten.
2. Was ich nicht verstehe: Soll deine Datenerfassung durch einen externen Takt getriggert werden oder durch einen internen Hardwaretakt, den du so einstellen willst, dass er möglichst genau mit deinen Vorgaben der Verfahrgeschwindigkeit deines Schrittmotors übereinstimmt.
3. So weit ich verstehe, versuchst du ein funktionierendes Programm von Trad-DAQ auf DAQmx umzustellen. Wieso? Hat sich die Messhardware geändert? Oder willst du einfach mit der Zeit gehen und auf neuen Treiber umsteigen (auch lobenswert)? In diesem Zusammenhang wäre es nützlich, wenn du mal den Code des funktionierenden Trad-DAQ posten könntest.
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!
' schrieb:3. So weit ich verstehe, versuchst du ein funktionierendes Programm von Trad-DAQ auf DAQmx umzustellen. Wieso? Hat sich die Messhardware geändert? Oder willst du einfach mit der Zeit gehen und auf neuen Treiber umsteigen (auch lobenswert)?
@Jens: Windows Vista geht nur noch mit DAQmx, ich wurde auch dazu gezwungen.
Also, das alte Programm lief unter LabVIEW7.1. Wir haben jetzt umgestellt auf LabVIEW 8.5, dadurch waren die VIs für DAQ trad. nicht mehr automatisch enthalten. Deswegen möchte ich jetzt auf DAQmx umstellen.
Ich möchte natürlich einen internen Trigger für die AD-Wandlung benutzen. Unser Schlitten, auf dem sich der Kraftsensor befindet, fährt mit 1,5mm/sec nach vorne. Die Schrittweite beträgt normalerweise 0,02mm. Also ist die Samplerate relativ gering. Deswegen muss ich das wohl durch eine interne Quelle triggern. Scheint aber auch die normale Vorgehensweise zu sein.
Die Karte ist die PCI-MIO-16E-4.
Ich hab einen Ausschnitt von dem alten VI und die neue Version angehängt. Vielleicht könntet ihr ja mal kucken, wie man das VI "Signal erzeugen" mit AI scan start und dem PFI7 hinbekommt.
Das VI nicht sehr toll programmiert!!!
Also, das alte Programm lief unter LabVIEW7.1. Wir haben jetzt umgestellt auf LabVIEW 8.5, dadurch waren die VIs für DAQ trad. nicht mehr automatisch enthalten. Deswegen möchte ich jetzt auf DAQmx umstellen.
Ich möchte natürlich einen internen Trigger für die AD-Wandlung benutzen. Unser Schlitten, auf dem sich der Kraftsensor befindet, fährt mit 1,5mm/sec nach vorne. Die Schrittweite beträgt normalerweise 0,02mm. Also ist die Samplerate relativ gering. Deswegen muss ich das wohl durch eine interne Quelle triggern. Scheint aber auch die normale Vorgehensweise zu sein.
Die Karte ist die PCI-MIO-16E-4.
Ich hab einen Ausschnitt von dem alten VI und die neue Version angehängt. Vielleicht könntet ihr ja mal kucken, wie man das VI "Signal erzeugen" mit AI scan start und dem PFI7 hinbekommt.
Das VI nicht sehr toll programmiert!!!
Danke!
Marcel
Also nur die Umstellung auf LabVIEW 8.5 ist kein Hinderungsgrund, Trad-DAQ weiterhin zu verwenden. Kann man auch dazu installieren.
Wenn natürlich noch VISTA hinzukommt, da wird RoLe Recht haben (hab es nicht probiert, aber kann es mir gut vorstellen, dass es nicht mehr unter VISTA läuft).
Schau mir deinen Screenshot vielleicht mal später an.
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!
Zunächst die Hardware: NI-PCI-MIO 16E-4, LabVIEW 8.5.1
Ich zähle mit counter1 die Striche eines Winkel-Encoders.
Gleichzeitig muss ich über ai0 einen Spannungswert erfassen. Dazu triggere ich über daqmx timing.vi mit dem Onboardclock.
Die Sample-Rate passt. Leider zählt der ctr1 immer doppelt. Also z.B 511 511 801 801 ...
Beeinflusst der Onboardclock ctr1? Falls ja, wie könnte man das umgehen bzw. wie kann man ai0 anders per Hardware-Timing triggern?
Macht es einen Unterschoed, ob man zuerst erst den ctr1 initialisiert oder dies nach der Einstellung des Sample-Timings macht?
Habe dazu schon mal ein Thema eröffnet. Ich habe leider nur die Lösung über den Onboardclock gefunden. Die Beispiel-vi's aus Measure Voltage.llb geben leider keine nutzbare Taktquelle an. Oder verstehe ich das falsch?
Das Problem hat sich eher verlagert. Dürfte ich dich bitten, das du dir das Problem mal kurz anschaust?
Ich würde gegen vier Uhr den Code (alt+neu) mal hochladen.