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!
19.05.2010, 17:52 (Dieser Beitrag wurde zuletzt bearbeitet: 19.05.2010 17:54 von Safa.)
Hallo,
weiß nicht so recht, ob ich an richtiger Stelle poste, aber habe wiedermal ein "kleines Problem" in LabVIEW. Ich habe in einer Schleifenkombination den DAQ-Assistenten verwendet. Nun möchte ich aber auch noch gerne die ankommenden Daten für einen anderen Prozess verwenden (außerhalb dieser Schleifenkombination.
In der ersten Schleifenkombination werden Temperaturen miteinander abgeglichen und die Schleife wird erst verlassen, wenn eine bestimmte Temperatur erreicht ist. Parallel dazu, soll aber noch ein XY Graph aufgezeichnet werden, indem die Temperatur und ein anderer Wert (Y-Wert) aufgeziechnet werden soll.
Starte ich nun das Programm und habe jeweils einen DAQ-Assistenten angeschlossen (einmal in der Schleife und einmal für den XY- Graphen), so erscheint eine Fehlermeldung "der Analogausgang sei bereits reserviert".
Ich habe nun versucht aus der Schleife eine Verbindung zu dem XY-Graphen zu ziehen. Leider wird erst nach verlassen der While-Schleife der "letzte herschende" Wert weitergeben. Das Ergebnis ist nur ein Wert im XY-Graphen. Brauche aber alle ankommenden Werte.
Als nächstes habe ich es mit Arrays versucht. Leider bekomme ich den Anschluss zum XY-Graphen nicht hin.
Hab mal ein Beispiel nachgebaut. ich bekomme hier aber keine Verbindung zum XY-Graphen hin. Besteht die Möglichkeit das Array mit einzelnen Werten in das Express VI zu schleusen und danach den kompletten Graphen zu plotten?
mach doch mal einen Rechtsklick auf das letzte BuildArray und wähle "Concatenate..." aus, um die Arrays aneinander anzufügen statt ein 2D-Array zu bauen...
Was soll eigentlich der ganze Klimbim mit dem DDT nach 2D-Array, 2D-Array indizieren, wieder nach DDT wandeln, clustern, Array bauen, subArray bilden (4 Elemente bei einem Array von vier Elementen???), nochmal Array bauen???
danke für deine schnelle Antwort.
Meinst Du mit "Concatenate" => Eingänge verknüpfen?
Das hin und her ist leider entstanden, da ich seit heute morgen versuche das Array zeilenweise an den Graphen weiter zugeben, sodass jeder ankommende Wert aus der Schleife geplottet wird. Habe vorher noch nicht mit Arrays gearbeitet und heute einige Tutorials gemacht und viel im Forum geforscht. Bislang ohne Erfolg.
Für einen Verbesserungsvorschlag wäre ich dankbar.
Am besten wäre es, wenn mir Jemand sagen könnte, wie ich den DAQ Assistenten aus der Schleife verwenden kann, ohne erneut auf den Ausgang zu zugreifen.
Ist es überhaupt möglich mit der NI USB 6009 - Messkarte Analoge Signale gleichzeitig aufzunehmen?
Also kann ich zwei Verbraucher gleichzeitig abtasten? => z.B.: Ausgang ai2 und ai1?
Wäre für jeden Rat dankbar.
Gruß,
Safa
Hier ein Beispiel:
20.05.2010, 06:31 (Dieser Beitrag wurde zuletzt bearbeitet: 23.05.2010 10:46 von Y-P.)
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
20.05.2010, 16:05 (Dieser Beitrag wurde zuletzt bearbeitet: 20.05.2010 20:35 von jg.)
Vielen Dank für die Hilfe. Ich habe nun Versucht das ganze in meinem Programm umzusetzen. Leider ohne Erfolg.
Vielleicht könnte Y-P mir nochmal bei diesem Problem helfen ?
Also ich habe ein Programm, wo eine Temperatur festgehalten werden muss (über den ganzen Ablauf des Programms). Diese soll mittels des DAQ-Assisten außerhalb der Schleife, ständig auf dem Frontpanel angezeigt werden.
Gleichzeitig soll aber in eine For-Schleife (verschachtelt in mehreren Schleifen) eine bestimmte Aufgabe erfüllt werden, wenn die Temperatur, die gemessen wird, einen bestimmten Wert erreicht (hier nicht eingezeichnet). Nachdem die bestimmte Temperatur erreicht worden ist, sinkt die Temperatur und soll nun wieder erneut einen bestimmten Wert annehmen. Deswegen ist eine Sequenz benutzt worden. (am rechten Rand des Bildes sieht man einen weiteren DAQ-Assistenten, der für diese Aufgabe zuständig ist.)
Also sollen alle drei DAQ-Assistenten auf den gleichen Kanal zugreifen und Werte verarbeiten. Ich bekomm es mit deiner Lösung leider nicht hin. Wäre nochmal dankbar für eine Hilfe. Stelle das VI mal online.
Wenn die Umsetzung nicht klappt, müsste alles mit Arrays gemacht werden, das wäre viel zu komplex und umständlich. Habe überlegt die Werte über eine weiteres Kabel in der Messkarte zu überbrücken, sodass ich bei zwei verschiedenen Analog-Ausgängen den selben Wert erhalte.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Ni 6009 Analog-Ausgang doppelt belegen?
Du kannst mehrere parallele Schleifen verwenden und Daten per Queue hin- und herschieben (Stichwort: Producer-Consumer-Loop).
.... und bitte lass doch die Express-VIs und die DAQ-Assistenten weg.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Hallo Y-P, ich steh völlig auf dem "Schlauch".
Habe in meiner LabVIEW Hilfe nachgeschaut und leider nichts zu deinem Begriff "Producer-Consumer-Loop" gefunden. Habe die deutsche LabVIEW Version: Was könnte da alternativ zu "Producer-Consumer-Loop" stehen?
Ich würde gerne die ExpressVIs weglassen, aber ich kann die Probleme leider nicht lösen, da ich nicht viel Erfahrung in LabVIEW besitze
Die Daten hin und herschieben wäre super, jedoch ist das nicht möglich, da die innere While-Schleife so oft wiederholt wird, bis "True" eintritt. Die Werte kann ich leider nicht parallel (während des Durchlaufes der Schleife) abgreifen. Die einzige Lösung ist ein Array.
Würde aber gerne nochmal versuchen mit zwei Analog-Signalen das ganze zu bewältigen => d.h. es muss doch möglich seien, einen Assistenten (bzw. auch ohne) in einer Schleife haben und einen gleichzeitig ausßerhalb der Schleife, die auf den gleichen Kanal ai0 zugreifen?!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Ni 6009 Analog-Ausgang doppelt belegen?
Jetzt stehe ich irgendwie auf dem Schlauch.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Hm.. ich weiß, das es kompliziert klingt
aber ich versuch es nochmal verständlicher auszudrücken.
Ich möchte gerne aus zwei DAQ-Assistenten ein Analog Signal rausschreiben. Der eine Assistent befindet sich in einer Schleifenkombination, der Andere außerhalb dieser Schleifen.Nun erscheint der Fehler: die Ressource sei bereits belegt.
(vgl. Bild)
Falls man nicht zwei DAQ-Assitenten verwenden kann, würde ich das Problem gerne über ein Array lösen. Hier besteht jedoch das Problem, dass beim Plotten des Graphens die ersten in den Array übertragenden Werte überschrieben werden => d.h. wird die For-Schleife ein zweitesmal durchlaufen, so werden die ersten Werte im Array üerschrieben und nicht mehr im XY-Graphen geplottet. (siehe VI).
vielen Dank für die gute Unterstützung an dieser Stelle,