Messungen synchronisieren - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Messungen synchronisieren (/Thread-Messungen-synchronisieren) Seiten: 1 2 |
RE: Messungen synchronisieren - GerdW - 12.03.2013 09:14 Hallo creo, Zitat:der Drehmomentgeber hängt über ein NI GPIB-USB-HS am Rechner.. bringt mir das evtl irgendetwas?Nun ja, GPIB könnte theoretisch 1MB/s streamen. Dummerweise schaffen das die wenigsten Geräte und dummerweise gilt das nur für kontinuierliche Datenübertragung... Sobald du anfängst, Befehle zu senden und Daten zu abzufragen, kommen unweigerlich Latenzen ins Spiel: sowohl der Versand der Daten über das GPIB-Kabel benötigt Zeit als auch die Befehlsverarbeitung auf dem jeweiligen Gerät. Und manche Geräte reagieren da wirklich langsam! Was dein Drehmomentsensor an Datenrate liefert, steht hoffentlich in seinem Manual. Ebenso sollte dort stehen, ob er so etwas wie "blockweise" Datenübertragung aus einem internen Buffer unterstützt: es ist meist wesentlich deterministischer, wenn das Gerät intern Daten mit konstanter Rate sammelt und dann einen großen Block an Daten überträgt als wenn man jeden Einzelwert pollt... (Keithley-DMMs bieten einen solchen Modus und erlauben dann schon mal 1kS/s.) RE: Messungen synchronisieren - creo_123 - 14.03.2013 13:46 also blockweise Datenübertragung wird leider nicht unterstützt.. ich bin jetzt soweit, dass ich meinem Rotationstisch sagen kann, dass er beispielsweise alle 0,2° ein Triggersignal ausgibt. Um das in Labview einzulesen, würde ich mir ein USB-6008 von NI zulegen, dessen Digitaleingang ich dann für das Trigger- Signal nutzen würde. Ich stelle mir das so vor, dass ich dann jedes Mal, wenn mein Trigger ein True ausgibt das Drehmoment aufnehme. Die Position des Drehtisches brauche ich ja dann eigentlich gar nicht mehr aufzunehmen, weil ich ja nur die Triggersignale zählen muss und ich weiß, dass der Tisch mit jedem Signal 0,2° weitergefahren ist. Meint ihr das könnte so funktionieren oder habe ich da irgendwelche Probleme übersehen, die mir als Labview-Anfänger jetzt nicht so bewusst sind. Weil das USB-6008 hätte ich ja dann umsonst gekauft. RE: Messungen synchronisieren - jg - 14.03.2013 14:13 Jetzt sind wir an der Stelle, an der ich sage: Ruf bei NI in München oder deinem lokalen NI-Vertreter an. Denn wenn hier im LVF einer sagt: "Ja, das kannst du mit einer 6008/6009 machen" und dann geht es nicht, dann bist du aufgeschmissen. Wenn das einer von NI sagt und es geht dann doch nicht, dann kannst du dir Karte zurückgeben. Gruß, Jens P.S.: Ich tippe auf Grund der Specs, dass es bei einer 6008 nicht möglich ist, AIs mit einem externen Hardware-Takt zu erfassen. EDIT: Auch im NI-Examplefinder fehlen bei den DAQmx-Beispielen bei Einschränkung auf eine 6008/6009 die Beispiele mit einem externen HW-Takt. Sieht schlecht aus mit einer 6008. RE: Messungen synchronisieren - GerdW - 14.03.2013 14:15 Hallo Jens, ich habe gerade in MAX einen Task angelegt, bei dem ich mit einer USB6008 den AI0 abfrage und die Triggerung auf "extern/PFI0" gesetzt habe: [attachment=43971] Der Task lässt sich auch starten, liefert aber mangels Flanken keine Werte... Korrektur: PFI0 lässt sich nur als Starttrigger nutzen, aber nicht als externe Taktquelle. @creo: Musst du wohl etwas teurere DAQ-HW kaufen. Wie schon berichtet: einfach mal in München anrufen... RE: Messungen synchronisieren - creo_123 - 19.03.2013 14:16 leider ist teurere hardware nicht möglich aber habe es mir jetzt so überlegt, dass ich den Tisch einfach immer eine bestimmte Gradzahl (beispielsweise 1°) fahren lasse und dann einmal messe wenn er steht. Das mache ich 360 mal hintereinander und habe dadurch nur Messwerte an den gewünschten Stellen. Mein Programm mach auch soweit was es soll, nur habe ich ein Problem mit dem Erstellen des Ergebnis Arrays mit den 360 Messwerten. Habe hier im Forum schonmal den Tipp bekommen, mittels Case im 0. Schleifendurchlauf den ersten Wert ins Schieberegister zu schreiben und in allen anderen Durchläufen das Array mit Hilfe von Array-Erstellen zusammenbauen. Leider funktioniert das hier nicht und mir ist auch eigentlich klar warum.. nämlich weil ich im ersten Durchlauf ein Skalar ins Schieberegister schreibe und später dann ein Array.. aber ich stehe gerade auf dem Schlauch, wie ich das anders machen könnte.. Ich weiß, dass das eigentlich nicht mehr zu diesem Thema passt, aber wollte nicht extra wieder ein neues Thema erstellen.. wäre für ein paar Denkanstöße dankbar RE: Messungen synchronisieren - jg - 19.03.2013 14:22 [attachment=44014] Gruß, Jens RE: Messungen synchronisieren - creo_123 - 19.03.2013 14:41 Danke für die schnelle Antwort, Jens.. aber irgdnwie bringt mich dein Denkanstoß noch nicht von dem Schlauch runter auf dem ich gerade stehe ich brauche doch zwei Eingänge bei meinem Array-Erstellen-Vi. Einen für den alten Wert der aus dem Schieberegister kommt und einen für den aktuellen Wert.. und dann steh ich ja wieder vor dem selben Problem, dass sich die Anschlüsse nicht verbinden lassen.. RE: Messungen synchronisieren - jg - 19.03.2013 14:48 Den "Denkanstoß" sollst du im Case 0 machen, und somit übergibst du dem Schieberegister ein Array und gut ist. Gruß, Jens RE: Messungen synchronisieren - creo_123 - 19.03.2013 14:51 Danke RE: Messungen synchronisieren - NWOmason - 20.03.2013 07:50 (19.03.2013 14:16 )creo_123 schrieb: .. aber ich stehe gerade auf dem Schlauch, wie ich das anders machen könnte.. Alternativ einfach das Schieberegister initialisieren: [attachment=44028] Beste Grüße, NWO |