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!
Entschuldigung, daß ich mich hier verspätet noch einmische. Ich wundere mich, daß Dich keiner darauf hinweist, daß LabVIEW ja von Haus aus die wunderbarsten Tools für Kalibrierung und Skalierung von Messwerten mitbringt. Es handelt sich hierbei um das Konzept der "Virtuellen Kanäle". Das Prinzip ist, daß die Kalibrierkurven und Skalierwerte im "Measurement und Automation Explorer" abgelegt sind und nicht in Deinem Programm. Aus Deinem "DAQmxRead" kommen dann als Ausgangswerte nicht mehr Spannungen heraus, sondern direkt die fix und fertig skalierten und linearisierten Druckwerte.
Erste Schritte:
a)
NI-M&A Expl --> Datenumgebung --> NI-DAQmx - Tasks --> Neu
Task "Druckmessung" erstellen
Das weitere ist selbsterklärend. Du gibst die verwendeten physikalischen Kanäle, Spannungsbereiche, Abtastmodus usw. ein. In einem Kästchen wählst Du die Skalierung aus (funtioniert erst, wenn Du die Skalierungen (b) erstellt hast)
b)
NI-M&A Expl --> Skalierungen --> NI-DAQmx-Skalierung --> neu
Falls erforderlich, getrennte Skalierungen erstellen für jeden Sensor. Wunderbare Tools für alle Arten von Skalierungen und Linearisierungen (Tabelle, Polynom, ..)
c)
Dein Programm kannst Du abspecken. Du braucht links von der Schleife nur noch "Start". Dort am Anschluß "Input Task" eine Konstante erzeugen. Auf die Konstante mit der rechten Maustaste klicken, dann findet sich von selbst Deine Task "Druckmessung"
d) Wenn Du Dein Programm auf einen anderen PC portierst, muß Du natürlich über die Export/Import-Funktion des M&A-Explorers auch die Virtuellen Kanäle und Skalierunen mit übertragen.
danke, dass du dich eingemischt hast. Ich hatte noch nie mit DAQ zu tun, deshalb konnte ich es nicht wissen. So wie du es beschreibst, ist es wirklich viel leichter und besser.
Hallo Eugen, mir war gar nicht aufgefallen, daß die Diskussion hauptsächlich von Dir bestritten wurde, ich hatte nur oberflächlich hingeschaut. Dein Replay regt mich an, noch etwas von meinem Senf hinzuzufügen:
1) Der Vorteil der Hinterlegung der Kalibrierdaten im M&A-Explorer ist, daß man auch nach der Kompilierung des Programms jederzeit, z.B. bei Sensorwechsel, die Kalibrierkurve anpassen kann.
2) Man muß nicht unbedingt eine virtuelle Task "Druckmessung" im M&A-Explorer anlegen. Wenn es nur im die Kalibrierung geht, dann genügt es, nur die Skalierungen im M&A-E anzulegen. Ich gehe mal von dem komplizierteren Fall aus, daß jeder (von insgesamt 3) Drucksensoren seine induviduelle Kalibrierkurve braucht. Die Skalierungen bezeiche ich mit "Drucksensor 123".. "Drucksensor 125". Wenn diese Skalierungen existieren, dann brauche ich nur nur die entprechenden Eingänge in der "DAQmx Create Virtual Channel" zu beschalten, siehe Bild 1. (Wegen der individuellen Skalierungen mus die DAQmx mehreren Male aufgerufen werden, deshalb die for-Schleife)
3) Wenn die skalierten Werte direkt aus dem DAQmx Read herauskommen sollen, dann geht es, wenn man es unbedingt so will, sogar ganz ohne den M&AExplorer. Es funktioniert dann mit dem Eigenschaftsknoten "DAQmx-Kanal". Als Beispiel wird für die Linearisierung und/oder Skalierung eine Tabelle verwendet (Polynom geht auch). Siehe Bild 2. Im Moment weiß ich nicht, wie man es machen muß, wenn jeder Sensor seine eigene Tabelle braucht, wahrscheinlich geht das dann auch irgendwei mit einer For Schleife
Hallo,
etwas spät trotzdem möchte ich mich bei euch allen nochmals für die hilfreichen Beiträge bedanken.
Auch die Ergänzung von dir Ludwig habe ich natürlich in meiner Technikerarbeit gleich realisiert.
Echt eine feine Sache, es über den M&A-Explorer zu lösen.
Gibt es eine Möglichkeit das einem zuvor benannten Task die Skalierung zu ändern?
Entweder: Die Skalierung zu ändern oder dem Task eine andere Skalierung zuzuweisen?
Ich muss bei einer Maschine einen Kraftsensor auslesen. Dabei kann der Kraftsensor per Hand geändert werden. Für das Programm ändert sich aber nur der Skalierunsfaktor (lineare Skalierung).
(04.07.2011 12:41 )Der_Elch schrieb: Gibt es eine Möglichkeit das einem zuvor benannten Task die Skalierung zu ändern?
Entweder: Die Skalierung zu ändern oder dem Task eine andere Skalierung zuzuweisen?
Ich muss bei einer Maschine einen Kraftsensor auslesen. Dabei kann der Kraftsensor per Hand geändert werden. Für das Programm ändert sich aber nur der Skalierunsfaktor (lineare Skalierung).