Hallo,
bevor ich auf DAQmx umgestellt habe, gab es ein All-in-one AI-VI, dass als Input fuer Maximum und Minimum Arrays zugelassen hat. Man konnte also in dem Array Max und Min fuer jeden einzelnen Kanal festlegen. Mit DAQmx habe ich das Gefuehl, dass geht leider nicht mehr und ich muss es wohl oder uebel so machen:
[
attachment=24804]
Ich mein klar kann ich diese Konstanten dann wieder in ein Array packen, aber wenn die Anzahl der physikalischen Kanaele geaendert bzw. erhoeht wird, muss man dann sein VI dauernd ergaenzen.
Gibts da Workarounds?
Und btw.: Ist es wirklich bei allen NI-Messkarten ein Vorteil, wenn der Messbereich moeglichst genau definiert wird. Wird da dann eine Verstaerkereinheit beschaltet, so dass alle verfuegbaren Bits der Messkarte in dem gewaehlten Messbereich zur Verfuegung stehen?
Danke fuer jeden Hinweis
' schrieb:Ich mein klar kann ich diese Konstanten dann wieder in ein Array packen, aber wenn die Anzahl der physikalischen Kanaele geaendert bzw. erhoeht wird, muss man dann sein VI dauernd ergaenzen.
Das VI musst du aber auch ergänzen, wenn du's so macht wie gepostet.
Ich finde es besser, wenn du alles - Kanäle, Min, Max etc. - jeweils in ein Array packst und dann in einer For-Schleife die Kanäle in der Task erstellst. (Hast du mal gekuckt, ob das Konfigurations-VI auch Arrays als Eingangsparameter erlaubt?)
Du kannst aber auch ein Array of Cluster of (Kanal, Min, Max, etc.) machen und dann dieses eine Array (anstelle von mindestens drei) verwenden. Dieses Array kannst du später besser anpassen als drei Arrays.
Zitat:Ist es wirklich bei allen NI-Messkarten ein Vorteil, wenn der Messbereich moeglichst genau definiert wird. Wird da dann eine Verstaerkereinheit beschaltet, so dass alle verfuegbaren Bits der Messkarte in dem gewaehlten Messbereich zur Verfuegung stehen?
Ich verstehe die Intension deiner Frage nicht: Was sollte es für einen Nachteil haben, die Anpassung der Hardware nicht optiomal auszulegen?
Zitat:Das VI musst du aber auch ergänzen, wenn du's so macht wie gepostet.
Naja 'damals' musste man beim Hinzufuegen eines weiteren Channels im Blockdiagramm nichts aendern, sondern lediglich im Controlarray fuer die Limits neue Werte hinzufuegen.
Zitat:Hast du mal gekuckt, ob das Konfigurations-VI auch Arrays als Eingangsparameter erlaubt?
Klar, wenn es Arrays erlauben wuerde, waere es ja so wie frueher und damit das was ich wollte
.
Zitat:Ich finde es besser, wenn du alles - Kanäle, Min, Max etc. - jeweils in ein Array packst und dann in einer For-Schleife die Kanäle in der Task erstellst.
Tolle Idee, so wirds dann jetzt gemacht. Danke
Zitat:Ich verstehe die Intension deiner Frage nicht: Was sollte es für einen Nachteil haben, die Anpassung der Hardware nicht optiomal auszulegen?
Die Frage war eben, OB die Hardware denn dann wirklich optimal aufgrund dieser Limit-Infos angepasst wird.
Ein konkretes Beispiel:
Heisst das, dass ich bei Angabe des Messbereichs z.B. von 0 - 0.1 Volt und der Verwendung von z.B. der LowCost USB 600x Serie (mit 12 bit), dann wirklich 12 bit in diesem (kleinen) Messbereich zur Verfuegung habe. Damit waere die Aufloesung einer solchen billigeren Karte wieder recht gut.Das VI musst du aber auch ergänzen, wenn du's so macht wie gepostet.
' schrieb:Heisst das, dass ich bei Angabe des Messbereichs z.B. von 0 - 0.1 Volt und der Verwendung von z.B. der LowCost USB 600x Serie (mit 12 bit), dann wirklich 12 bit in diesem (kleinen) Messbereich zur Verfuegung habe. Damit waere die Aufloesung einer solchen billigeren Karte wieder recht gut.
Nein, so genau ist das dann auch wieder nicht.
Es gibt quasi-Normbereiche: -10..+10, -5..+5(?), 0..+5, 0..+10. Für diese Bereiche kann sich der Eingangsverstärker anpassen. Eine Anpassung an beliebige Bereiche kann ich mir zwar vorstellen, dass das gemacht wird hab ich aber noch nie gehört.
Die Einstellung des Min/Max-Bereiches ist im übrigen wichtig für die Einstellung des Scalierbereiches. Den kannst du einstellen, wie du Lust hast (also wie es günstig ist für das Programm).
Zitat:Die Einstellung des Min/Max-Bereiches ist im übrigen wichtig für die Einstellung des Scalierbereiches. Den kannst du einstellen, wie du Lust hast (also wie es günstig ist für das Programm)
Wie meinen?
Die Karte gibt mir doch keinen Wert zwischen 0 und 1 zurueck denn ich dann durch Skalierung auf die eigentlichen Messwerte uebertragen muss.
Zumindest die Karten hier spucken immer schon die absolute Spannung aus. Ich glaub ich versteh also nicht was du damit meinst
' schrieb:Wie meinen?
Wenn du einen Analogeingang mit einem Drucksensor (Daten: 0 bis 10 Volt entsprechen 0 bis 160 Bar) beschaltest, dann noch die Task konfigurierst mit Min (0V), Max (10V) und Scalierbereich [Min,Max] (0, 160), so liefert dir der DAQmx-Read bereits die nominalen Druckwerte in Bar - also das, was am Drucksensor anliegt.
Ah, cool, danke fuer die Erklaerung. Gut zu wissen. Diese Scale muss man anscheinend unter Advanced mit CustomScale erstellen.
' schrieb:Hallo,
bevor ich auf DAQmx umgestellt habe, gab es ein All-in-one AI-VI, dass als Input fuer Maximum und Minimum Arrays zugelassen hat. Man konnte also in dem Array Max und Min fuer jeden einzelnen Kanal festlegen. Mit DAQmx habe ich das Gefuehl, dass geht leider nicht mehr und ich muss es wohl oder uebel so machen:
Dein Gefühl beruht auf unvollständiger Kenntnis der Möglichkeiten. Es ist doch alles halb so schlimm, wenn man es richtig anstellt.
Beispeil: Messbereich für Kanäle =0,1,2,3,8: 0..10V, für Kanäle 4,5,6,7: 0..1V
[
attachment=24816]
Die Eingänge "Mimimum" und "Maximum" sind übrigens nicht als Messbereiche der Karte zu verstehen, sondern einzugeben ist der Messbereich, der am besten zu Anwendung passt. LabVIEW sucht sich den dazu passenden Messbereich, den die Karte hat, selbst aus.
Beispiel: Anwendungs-Messbereich 0..1.5 V.
Eine teure Karte hat die Messbereiche 0.1, 0.2, 0.5, 1, 2, 5, 10. LabVIEW nimmt den Bereich 0..2.
Bie einer billigen Karte hat man nur die Bereiche 0.1, 1, 10. LabVIEW nimmt den Berech 0..10.
Den tatsächlich benutzten Bereich kann man über Eigenschaftknoten auslesen. Den muß man aber gar nicht so genau kennen: die Daten werden immer in richtigen Volt ausgegeben.
(Bzw. bei entsprechender Skalierung sogar in richtigen Sensoreinheiten, z.B Bar, siehe den Beitrag von IchSelbst)
Zitat:Dein Gefühl beruht auf unvollständiger Kenntnis der Möglichkeiten. Es ist doch alles halb so schlimm, wenn man es richtig anstellt.
Ohne dein Bemuehen in keinster Weise abwerten zu wollen: Das hat doch IchSelbst schon erklaert gehabt
- zumindest denke ich er hat es so gemeint
Danke fuer die weitere Erlaeuterung zu den Messbereichen.
Hallo,
ich lege mal in Bezug auf die Skalierung ein Veto ein.
Und zwar muss, wenn eine Skalierung benutzt wird, zwingend die min und max Werte der SKALIERUNG am Create Channel Eingänge min und max angeschlossen werden..
Gruß
Ralf