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!
Ich möchte eine Temperaturmessung mit einem Thermoelement Typ K durchführen. Das ganze soll folgender Maßen funktioniere:
Im UI soll die aktuelle Raumtemperatur eingegeben werden können. Diese Eingabe soll dem Thermoelement als CJC Wert dienen.
Ich habe mit der Funktion "DAQmx - Virtuellen Kanal erzeugen" einen virtuellen Kanal erzeugt und die Instanz "AI - Temp - Thermoel." ausgewählt". Mein Problem ist nun, dass ich den virtuellen Kanal nicht so konfiguriert bekomme, dass er im DAQ-Assistenten angezeigt wird. Besser gesagt, ich verstehe einfach nicht wie ich das hinbekomme. Ich habe gemäß der Hilfe gehandelt aber bekomme es einfach nicht hin.
Wäre für eure Hilfe sehr dankbar!
13.07.2010, 16:48 (Dieser Beitrag wurde zuletzt bearbeitet: 13.07.2010 17:19 von GerdW.)
Bin heute dazu gekommen, daran weiter zu arbeiten. Ich hatte es vorher schon so wie du es mir gezeigt hast ausprobiert, bloß, dass ich den Task habe zurücksetzen lassen. Jedenfalls, wenn ich das so mache tritt ein Fehler beim Task stoppen auf:
Fehler - 200479 ist bei DAQmx Create Channel (AI-Temperature-Thermocouple).vi:1 aufgetreten
Mögliche Ursachen:
Measurements: Die angegebene Operation kann nicht durchgeführt werden, während der Task ausgeführt wird.
Task-Name: _unnamedTask <7BB>
Ich habe eine DAQ Assistenten, der alle meine Signale regelt. Nun habe ich nur einen Temperatursensor vom Typ K, also keinen Referenzkanal. Deswegen möchte ich einen virtuellen Kanal erstellen, bei dem aus dem GUI den CJC Wert eingeben möchte. Also Temperatur vom Thermometer im Raum ablesen und als Referenzwert für die Temperaturanzeige verwenden.
Das Problem ist nun, dass ich es nicht hinkriege einen virtuellen Kanal zu erstellen. Gemäß dem gezeigten Aufbau habe ich den „Task (Ausgang)“ vom DAQ Assistenten an den „Task (Eingang)“ von „DAQmx – Kanal erzeugen“ angeschlossen. So ist es in der Hilfe beschrieben. Der DAQ Assistent sagt mir aber, dass Dev1/a0 nicht vorhanden ist und daher nicht als Referenzkanal zur Temperaturmessung ausgewählt werden kann. Ich kriege den folgenden Fehler:
Fehler -200488 ist bei DAQ-Assistent aufgetreten
Mögliche Ursachen:
Measurements: Der angegebene virtuelle Kanal kann dem Task nicht hinzugefügt werden, da er nicht existiert.
Sie können keinen physikalischen Kanal angeben. Erstellen Sie stattdessen einen virtuellen Kanal über den DAQ-Assistenten oder über das VI "DAQmx - Virtuellen Kanal erzeugen" und fügen Sie diesen virtuellen Kanal dann dem Task hinzu.
Kanalname: Temperatur_0
--------------------
Fehler -201206 ist bei DAQ-Assistent aufgetreten
Ich bin halt noch ein Neuling und werde daraus nicht schlau. Wäre echt toll, wenn mir da einer weiterhelfen könnte.
Also wie „registriere“ ich den virtuellen Kanal für die Verwendung im DAQ?
Hm... ich glaube ich habe jetzt verstanden, warum das nich geht. Er sagt mir, dass es innerhalb des DAQ Assistenten nicht zulässig ist, virtuelle Kanäle zusammen mit physikalischen zu verwenden. So weit, so gut. Nur wie löse ich jetzt mein Problem, dass ich den CJC Wert während des laufenden Messung manuell eingeben bzw. ändern kann?
"Er sagt mir, dass es innerhalb des DAQ Assistenten nicht zulässig ist, virtuelle Kanäle zusammen mit physikalischen zu verwenden."
Die Lösung liegt doch auf der Hand: verzichte einfach auf den DAQ-Assistenten
Naja, wie gesagt bin ich ein absoluter Neuling mit det Software, habe mir quasi alles mit Ach und Krach selber beigebracht.Das ganze Programm ist soz. um den DAQ Assistenten herum gebaut. Ich habe um ehrlich zu sein überhaupt keine Ahnung wie ich die Signale manuell verarbeite, also ohne den Assistenten.
Gibt es vielleicht eine gänzlich andere Methode den CJC Wert aus dem GUI einzugeben?
Anzeige
16.07.2010, 09:24 (Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2010 09:25 von GerdW.)
früher oder später wirst du merken, dass alle ExpressVIs Einschränkungen haben - so wie der DAQ-Assi mit virtuellen Kanälen! Je früher du dich von den ExpressVIs verabschiedest, desto eher wirst du lauffähige Programme nach deinen Wünschen erstellen können...
Man kann den DAQ-Assi per Rechtsklick in ein normales VI umwandeln und dann schauen, was LAbVIEW so alles unter der Haube anstellt. Du kannst aber auch so wie in meinem Bild oben vorgehen - ist immer die gleiche Herangehensweise: DAQ-Task erstellen, evtl. noch konfigurieren, Werte (in einer Schleife) lesen, DAQ-Task beenden.
"Gibt es vielleicht eine gänzlich andere Methode den CJC Wert aus dem GUI einzugeben?"
Vielleicht dieses VI!
Danke schön für deine Hilfe! Habe leider keine Benachrichtigung über deine Antwort per E-Mail erhalten, sonst hätte ich mich schon früher bedankt.
Habe während dessen an meinem Programm weitergearbeitet und habe mich aus den Express VIs herausgetraut. Das VI im Anhang ist dabei rausgekommen. Man kann nun am Anfang des Programms den CJC Wert (z.B. Raumtemperatur) festlegen. Mit einem Klick auf OK wird dann die Temperatur am Fühler berechnet.
Ich kriege es bloß nicht hin, dass man den CJC Wert on-the-fly ändern kann. Wenn du da noch einen Tipp hättest, wäre ich sehr dankbar.
Ansonsten könnte ich auch mit dem, was da ist, ganz gut leben.
da du den CJC-Wert beim DAQmx-Init angibst, kannst du ihn "on the fly" nicht ändern. Zum Ändern musst du den DAQ-Task stoppen und neu initialisieren...
Du könntest aber stattdessen Spannungswerte aufnehmen und die mit dem schon vorher genannten VI in Temperaturen umrechnen lassen - und dort dann den CJC-Wert variabel gestalten!
(In UI-Polling-Loops gehört immer eine Wait-Funktion!)
Also mit der Spannungsauslesung habe ich es versucht, jedoch glaube ich, dass mir da noch ein Infos fehlen, sodass das Ergebnis nicht zufriedenstellend war. Ich habe als Temperatur halt immer das 100-fache von meinem CJC Wert herausbekommen. Habe das mal hochgeladen.
Was mich im Endeffekt ärgert ist, dass ich nach so langem Überlegen die einfachste Variante für die Lösung meines Problems stets übersehen habe. Ich habe das Ganze nun folgendermaßen gelöst.
Ich gebe einen festen CJC-Wert vor und zwar 0 °C. Nun kriege ich, sagen wir, +2 °C heraus. Ich lasse den Benutzer die Raumtemperatur eingeben, z.B. 25 °C. Schon habe ich meinen-CJC Wert-Ersatz. Ich muss nur noch zu den 25 °C die 2 °C addieren und das Ergebnis ausgeben. Fertig.
Tja, den Wald vor lauter Bäumen nicht gesehen... Dafür habe ich viel neues dazugelernt, die Zeit kann also als "sinnvoll genutzt" abgestempelt werden.