DAQmx - "Lesen" ? - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ) +---- Thema: DAQmx - "Lesen" ? (/Thread-DAQmx-Lesen--11361) Seiten: 1 2 |
DAQmx - "Lesen" ? - Mani - 20.09.2007 21:35 Hallo! Hat jemand eine Ahnung wie ich in einem Signalverlaufsdiagramm die Zeitachse (x-Achse) beliebig skalieren bzw. einteilen kann? Geht das vielleicht im Blockdiagramm über Eigenschaftsknoten des Diagramms? Hab ich zwar probiert, klappt aber nicht! Wahrscheinlich geh ich da falsch vor. Ja und jetzt kommt eine richtig schwere Frage: (die erste is es ja auch schon schwer genug für mich *g*) Ich erfasse mit dem DAQmx - Element "Lesen" (genaue Bezeichnung: 1D DBL 1 Kanal N Abtastungen) kontinuierlich ein Spannungssignal welches ich von einem Kraftsensor erhalte. Abtastrate = 1000 Hz. Das Lesen - Element gibt ein Array aus. Wie kann ich jetzt diese Spannungswerte über eine Geradengleichung umrechnen dass meine y-Achse des Signalverlaufdiagramms im Frontpanel die korrekte Kraft anzeigt. Die Geradengleichung habe ich schon eingefügt ins Blockdiagramm. Allerdings habe ich keine Ahnung wie ich jeden einzelnen Spannungswert aus dem Array herausholen und umrechnen kann damit ich einen korrekten Signalverlauf im Frontpanel hab. Muss ich dazu die umgerechneten y-Werte wieder in ein Array einfügen? Oder habt ihr eine bessere Idee? Vielen Dank! Ich freu mich schon auf die Antworten! Lg Mani DAQmx - "Lesen" ? - Lucki - 20.09.2007 22:38 Jetz nur etwas zur zweiten Frage: Skalierung. Das was Du angefangen hast, ist nicht die elegante Lösung. Diese sieht vielmehr so aus, daß im Ergebnis bereits aus dem DAQmx- Lesen die richtig skalierten Werte, also Die Kraft und nicht irgendeine am Sensor gemessene Spannung, herauskommt. Um das zu machen, gibt es zwei unterschiedliche Möglichkeiten:[list=1] [*]Einrichten einer DAQmx - Task im M&A - Explorer<> [*]Mit DAQmx - Eigenschaftsknoten im Programm.<> [st]Der besondere Vorteil von 1. ist, daß man einen evtl. Sensorwechsel mit anderer Charakteristik nicht im Programm berücksichtigen muß. Es genügt die Änderung im M&A-Explorer. Man kann so sagen, daß das ganze Problem der Skalierung auf die Treiber verlagert wird und nicht mehr Tel des Programms ist. Das Programm erhält die fix und fertig skalierten und linearisierten Messwerte. Es ist nicht schwer zu machen, wichtig ist, daß man es erstmal überhaupt weiß. Hier nur noch ein paar Schnappschüsse vom M&A Exploerer: a) Einrichtung einer DAQmx-Task: M&A Explorer --> Datenumgebung --> neuen DAQmx Task mit r.Maustaste erzeugen. Dort kann man ein einem Feld die "Skalierung" eintragen. Sie muß allerdings vorher eingerichtet sein, d.h. es muß bereits Schritt b) erfolgt sein. [attachment=8762] b) Einrichtung eine Skalierung: Skalierung - Neu. [attachment=8763] c) Im Programm braucht man den Task nicht mehr viel zu konfigurieren. Im einfachten Fall kann es sogar ausreichend sein, an das QAQmx Lesen am Task-Eingang ein Konstante zu erzeugen und dort am Selektor die erstellte Task auzuwählen. DAQmx - "Lesen" ? - Mani - 21.09.2007 15:30 Hallo Lucki! Vielen Dank für deine rasche Antwort! Kannst du mir auch sagen wie ich - den im M&A Explorer erstellten Task - im Programm aufrufen kann? Danke! Lg, Mani DAQmx - "Lesen" ? - Lucki - 21.09.2007 18:03 ' schrieb:Vielen Dank für deine rasche Antwort! Kannst du mir auch sagen wie ich - den im M&A Explorer erstellten Task - im Programm aufrufen kann?Das hatte ich andeutungsweise schon gesagt. Hier ein praktisches Beipiel aus einem VI von mir: [attachment=8784] Ich habe also mit der rechten Maustraste auf den Task-Anschluß (links oben) der DAQmx-VIs geklickt --> Erzeugen --> Konstante. In dem Falle ist es eine Task-Konstante. Dann mit der linken Maustaste auf den Selektor am rechten Rand dieser Konstanten klicken --> es werden Dir alle virtuellen Tasks, die Du im M&A-Explorer eingerichtet hast, zur Auswahl angeboten --> das Zutreffende auswählen. DAQmx - "Lesen" ? - Mani - 21.09.2007 18:46 Ok! Ich habe alles erledigt so wie beschrieben! Ich habe jetzt aber folgendes Problem: Da ich 3 Signale gleichzeitig erfassen möchte habe ich dazu 3x jeweils ein Start-Task mit dem entsprechenden Taskname, DAQmx - Lesen und DAQmx Signal rücksetzen ins Blockdiagramm eingefügt. Dabei entsteht für den DAQmx Start-Task die Fehlermeldung "Die Ressource ist reserviert". Anscheinend kann man die DAQmx - Elemente nicht parallel verwenden obwohl sie jeweils einen anderen Taskname haben. Weißt du darüber besscheid bzw. kannst du mir sagen wie ich die Elemente anordnen muss um 3 Signale zugleich aufzuzeichnen? Vielen Dank! Lg, Mani DAQmx - "Lesen" ? - jg - 21.09.2007 19:57 Wenn du 3 Signal "gleichzeitig" erfassen willst, dann pack sie doch einfach in 1 Task. Wo ist da das Problem? MfG, Jens DAQmx - "Lesen" ? - Mani - 21.09.2007 20:29 Hallo Jens! Wie muss ich da genau vorgehen? Hättest du eventuell ein Beispiel für mich? Ich probier inzwischen mal mein glück! ;-) DAQmx - "Lesen" ? - Mani - 21.09.2007 22:12 Alles klar! Hab ich schon geschafft! ;-) Vielen Dank für die Hilfe! Ich will ja nicht lästig sein, aber da ich die Signale kontinuierlich erfassen möchte was ich auch mache, ist meine Zeitachse von den Signalverlaufsdiagrammen nicht korrekt, d.h. 1s im Diagramm entspricht nicht wirklich 1s. Was kann ich dagegen tun? Wie bekomme ich eine korrekte Zeitanzeige hin? Ich hoffe ihr könnt mir weiterhelfen! Lg, Mani DAQmx - "Lesen" ? - Lucki - 22.09.2007 07:36 ' schrieb:Ich will ja nicht lästig sein, aber da ich die Signale kontinuierlich erfassen möchte was ich auch mache, ist meine Zeitachse von den Signalverlaufsdiagrammen nicht korrekt, d.h. 1s im Diagramm entspricht nicht wirklich 1s.Der Skalenfaktor der x-Achse muß gleich dt sein (default ist 1), und dafür gibt es beim Signalverlaufsdiagramm zwei Möglichkeiten. a) feste Einstellung: Eigenschaften --> Skalen(x-Achse) --> Faktor b) vom Programm aus: Eigenschaftsknoten --> x-Achse.Offset und Faktor:Faktor. Als Darstellungsart für die Zeit stelle ich immer "SI-Schreibweise" ein. Zusätzlich sollte man auch mit der Anzahl von Kommastellen bzw. signifikanten Stellen experimentieren, bis man eine wirklich befriedigende Zeitdachse hat. NB: Die Übergabe von dt über ein Cluster (mit to, dt und Array) funktioniert beim Signalverlaufsdiagramm nicht. Die Eingabe des Waveform-Formates, welches ebenfalls das dt enthält, ist zwar möglich, aber das funktioniert nur gut, wenn man einmalig Plot(s) übergibt und die nicht updatet. Anmerkung über Erstellung mehrerer Tasks: Es gibt da Begrenzungen, die durch durch die Hardware vorgegeben sind. So ist, mal ganz abgesehen von ADC selbst, auch die Hardware für die Erzeugung des Abtast-Taktes sowie für Start und Stop nur einmal vorhanden. Von daher ist nicht möglich, mehrere AI-Tasks, und schon gar nicht mit beliebigen Abtastraten und Start-Stopps, gleichzeitig auszuführen. DAQmx - "Lesen" ? - Mani - 22.09.2007 14:12 Ich wollte zur Sicherheit nocheinmal nachfragen wie ich herausbekomme wie groß dt ist und wo ich die Eigenschaftsknoten positionieren muss? Ausserhalb oder innerhalb der Schleife in der ich die Signalerfassung mache? Vielen Dank für eure Antworten! Lg, Mani |