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!
04.06.2011, 12:09 (Dieser Beitrag wurde zuletzt bearbeitet: 04.06.2011 15:58 von jg.)
Hallo Community,
ich bin ein junger Student, der im Rahmen seines Hiwi-Jobs mit LabView konfrontiert wird. Das Programm erschlägt mich und die "Getting-started" Aneltiungen bringen mich nicht weiter voran.
Ich verwende die DAQ-Karte NI USB-6009 zur Erfassung (via versch. Sensoren) der aktuellen Roboterposition. Dazu benutze ich folgende Eingänge der Karte:
1. Port 0 / Line 0 (digital) --> digitale Meldung des Roboters "Ich bin in Position"
2. ai0 (Spannung analog) --> erfasst die Werte des Sensors für die X-Achse
3. ai1 (Spannung analog) --> erfasst die Werte des Sensors für die Y-Achse
4. ai2 (Spannung analog) --> erfasst die Werte des Sensors für die Z-Achse
Nun soll der Ablauf wie folgt sein:
a) Überprüfe so lange den Wert der digitalen Erfassung bis sie den Wert 1 / TRUE annimt
b) Nachdem a) = TRUE soll die derzeitige Spannung der 3 analogen Eingänge einmalig gemessen, gespeichert und in einem Chart / Graph dargestellt werden
c) Nachdem die Messung durchgeführt wurde, soll das Programm warten bis die digitale Erfassung den Wert 0 / FALSE annimmt
Dieser Ablauf soll immer wiederholt werden und die neuen Datenpunkte in die Datei / den bestehenden Chart integriert werden.
Das Ganze ist für ein Projekt bestimmt, dass Studenten die Arbeitsweise von Robotern und Datenerfassungsprogrammen vorführen soll.
Ich denke, dass das Problem für Leute, die sich mit LabView auskennen, ein Kinderspiel ist. Ich als absoluter Neuling bin leider total überfordert.
Ist es möglich ein kurzes Beispiel VI zu posten?
Bei Rückfragen bitte kurz schreiben, ich versuche dann, die Infos zu schildern.
Dein Ablauf lässt sich hervorragend mit einer State-Machine programmieren.
Schritt 1: Messe DI 0.0. Wenn True, gehe weiter, wenn False, wiederhole Schritt 1.
Schritt 2: Messe AI0-AI2.
Schritt 3: Messe DI 0.0. Wenn True, wiederhole Schritt 3, wenn False, gehe zu Schritt 1.
Und schon ist dein Programm "fertig".
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!
Die Zeitverzögerungen sind so groß gewählt, damit Du die aktuelle Position besser siehst.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Hallo Jens, Hallo Markus,
Danke für die schnelle Antwort (und das sogar am Wochenende )
Anfangs viel es mir schwer, die Struktur zu verstehen. Nun hab ich es aber glaube ich. Ich habe das ganze hier noch etwas an meinen Heimversuch angepasst (digitales Signal erzeuge ich mit der 1,5V Batterie und füge die Kabel von Hand immer an die Pole).
Die jetzige Datei habe ich angehängt. Ich bin mir ziemlich sicher, dass alles so läuft, wie ich es will! Danke dafür!
Das letzte Problem, das nun noch besteht, ist:
Ich würde gerne jede neue Messung in den bereits bestehenden Graph einfügen und nicht bei jedem Durchlauf der Schleife einen neuen erhalten.
D.h. wenn der Ablauf gestartet wird (mehrfache Wiederholung) sollen alle Werte zurückgesetzt / gelöscht werden. Dann, bei jedem Durchlauf ein Wert für jede Achse hinzugefügt werden.
Ist die Messung abgeschlossen, sollen alle erfassten Daten exportiert werden können.
Zur Zeit stellt der Graph immer nur die aktuelle Messung dar und löscht die vorherige.
Kann man diese Funktion umstellen?
Vielen lieben Dank!
Ich dachte, dass der DAQ-Assi die einzige Möglichkeit wäre an die Daten zu kommen; deshalb habe ich den immer verwendet.
Ich werde morgen im Mirkomontagelabor mal ein paar Tests durchführen.
Danke nochmal für den Support!
Edit: Schaltung funktioniert einwandfrei. Musste noch das "Leitung invertieren" rausnehmen, da ich das irgendwie nur im Heimversuch brauche.
Die Darstellung im Chart läuft noch nicht so, wie ich mir das vorgestellt habe; aber da werde ich nun dran rumbasteln!
Egal, an welchen Eingang ich eine Spannung anlege, angetragen wird sie immer nur bei Plot 0, die anderen 2 finden quasi gar nicht statt. (Ich habe auch noch keine andersfarbigen Datenpunkte gesehen).
Aber das ist glaube ich nur noch ein leicht zu korrigierender Schönheitsfehler.
Beste Grüße
Edit2: Auch beim Exportieren der Daten habe ich noch ein Problem. Wenn ich am Wave-Chart nach dem Durchlauf auf "Exportieren in Excel" gehe, bekomme ich nur die Daten von "Plot 0" und dabei nur einen Wert, obwohl ja eigenltich alle 3 Achsen mit ausgegeben werden sollen (vermutlich das gleiche Problem wie in Edit1). Außerdem sind die exportierten Daten sehr ungenau: es werden keine Nachkommastellen angegeben.
Habe gerade schon gesucht und versucht einiges umzubauen; eine Lösung habe ich noch nicht gefunden...
Anzeige
14.06.2011, 13:27 (Dieser Beitrag wurde zuletzt bearbeitet: 14.06.2011 15:27 von MasterWienke.)
Einmal muss ich noch nachfragen, auch wenn die Frage nicht mehr in den Bereich "Datenerfassung" passt.
In den anderen Forenabteilungen habe ich leider keine Lösung gefunden.
Die Messungen funktionieren wie gewünscht mit der angehängten Datei.
Das Problem ist nun, wenn ich nach Beendigung der Messung auf den Chart klicke und "Exportieren --> In Excel exportieren" mache, als Amplitude / Messung nur ganzzahlige Werte angegeben werden.
Die Nachkommastellen sind aber sehr wichtig.
Gibt es dafür eine schnelle Lösung?!
Besten Dank!
Edit: Entschuldigt die Frage.. Man ist das peinlich! Hat sich alles erledigt.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Spannungsmessung in Sequenz mit NI USB-6009
An was lag es? Waren bei Excel nur ganzzahlige Zahlen eingestellt?
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Nein, schlimmer..
Bei den Charteinstellungen habe ich Kommastellen = 8 gesetzt.. aber leider für die Zeitachse. Für die Amplitude hatte ich 0 Nachkommastellen und ich wunder mich warum es 0 Nachkommastellen gibt. Man, man, man, das tut schon weh.
Aber: Mein Chef ist sehr zufrieden. Gefällt ihm gut und es läuft alles glatt. Nun muss ich alles nur doch hübsch machen, dann können die Studis bewundern.
Also abschließend noch einmal vielen Dank an Alle, die geholfen haben!
Hallo zusammen,
ich muss mich doch noch einmal melden.
Mein Chef hat ein paar Änderungswünsche geäußert. Zuerst bin ich zu der Ansicht mit DAQ-Assi zurückgekehrt, da ihm die Übersichtlichkeit dabei besser gefällt.
Das Problem ist nun folgendes.
Wenn die Messung erfolgt ist, soll das VI darüber eine Rückmeldung an die Robotersteuerung geben und durch eine aufleuchtende LED im Zeitpunkt der Signalübergabe dargestellt werden. Die Ausgabe des Signals habe ich per DAQ-Assi-Ausgabe geplant.
Das Signal selbst habe ich simuliert (1 Sample) mit dem Wert 5, also True. Wenn ich das Programm aber laufen lassen, wird dieser Wert nicht zurückgesetzt wenn der betreffende Case nicht mehr aktiv ist. Die LED leuchtet also dauerhaft.
Gibt es dafür eine elegante Lösung? Es soll quasi nur kurz einmal gesagt werden "Messung ist abgeschlossen", diese Info ausgegeben und über eine einmalig aufleuchtende LED signalisiert werden.
Damit man nicht immer auf das Signal des Roboters warten muss, haben wir zum Testen auch noch einen Knopf eingebaut, mit dem man die Messung starten kann.
Außerdem habe ich einen Zähler eingebaut, der mitzählt, die wie vielte Messung gerade stattfindet. Gibt es eine Möglichkeit auf Knopfdruck sowohl den Chart zu leeren und den Zähler auf 0 zurück zu setzen (in einem Schritt)?
Das VI habe ich angehängt.
Für eine Lösung wäre ich sehr dankbar, da das Projekt dann abgeschlossen ist.
Beste Grüße,
Lucas