07.09.2015, 06:56
Hallo Liebes Forum!
Ich bin derzeit bei meiner Diplomarbeit und dabei auf ein, für mich nicht lösbares, Problem gestoßen.
Bei der DA handelt es sich um eine mehrkanalige (bis zu 32 Kanäle) Druckmessung in einem microfluidischen System über mindestens 12h. Da ich nur eine NI9237 Datenerfassungskarte zur Verfügung habe, habe ich das ganze über 4 parallele ADG407 8-Kanal Multiplexer gelöst. Nicht ideal, aber finanziell sind keine 7 zusätzliche Messmodule möglich.
Die Programmierung war gedanklich eigentlich kein großes Problem, jedoch traten bei der Ausführung diverse Probleme auf:
Ich versuchte es zuerst über die Erfassung einer endlichen Anzahl von Werten um ein Auslesen alter Messwerte nach dem Umschalten der MUX zu verhindern. Dies funktionierte leider nicht in einer zufriedenstellenden Geschwindigkeit. Ich erreichte bei 100 Samples mit 50kHz abgetastet lediglich rund 1Hz Abtastfrequenz was für meine Anwendung zu gering ist.
Komischerweise zeigte auch ein Test-VI welches nur die Datenerfassung ohne den ganzen Overhead mit MUX-Steuerung etc. enthielt keine bessere Performance.
Als zwischenzeitliche Performance-Lösung bin ich auf kontinuierliche Erfassung umgestiegen. Damit erreiche ich Abtastfrequenzen von ca. 7Hz pro Kanal (ausreichend für mich, jedoch auch gerne höher). Jedoch erhalte ich je nach Einstellung von Abtastrate der Messkarte und Anzahl der Samples früher oder später den Fehler, dass auf Samples zugegriffen wird welche nicht mehr zur Verfügung stehen. Ebenso werden je nach VI-Abtastrate (im Frontpanel eingestellt) und Anzahl der Kanäle die Messwerte in meinem Array um meist 4 Elemente verschoben (Kanal 1-4 an der Position von 5-8 und so weiter, 28-32 auf 1-4). Diese Verschiebungen hängen zusätzlich auch noch von der DAQ Abtastrate sowie der Sample-Anzahl ab. Habe es als Übergangslösung per Fallunterscheidung "gelöst". Damit ich keine Messwerte anderer Sensoren einlese habe ich dann vor der eigentlichen Datenerfassung ein DAQ-Read eingebaut um den Puffer zu leeren.
Alles in allem mehr als eingenartig...
Auch vollständiges Neuprogrammieren (sowohl Sequenzen als auch State-Machine) anstatt der Fehlersuche blieben ohne Erfolg. Ebenso die Fehlersuche im Internet/Forum. Da ich langsam Betriebsblind werde hoffe ich auf Input von Außen.
Anhang:
VI mit endliche Erfassung (keine Fallunterscheidung) sowie die dazugehörigen Sub-VIs im ZIP-File.
VI mit kontinuierlicher Erfassung und Fallunterscheidung direkt als VI.
Verwendete Umgebung/Hardware:
Windows 7 64bit
LabView 2013 SP1 32bit
NI 9237 4-Kanal Brücken-Input Modul
NI 9472 8-Kanal Digital-Output Modul
NI cDaq 9172 Chassis
Analog Devices ADG407 Multiplexer
Vielen Dank und LG
Jürgen
Ich bin derzeit bei meiner Diplomarbeit und dabei auf ein, für mich nicht lösbares, Problem gestoßen.
Bei der DA handelt es sich um eine mehrkanalige (bis zu 32 Kanäle) Druckmessung in einem microfluidischen System über mindestens 12h. Da ich nur eine NI9237 Datenerfassungskarte zur Verfügung habe, habe ich das ganze über 4 parallele ADG407 8-Kanal Multiplexer gelöst. Nicht ideal, aber finanziell sind keine 7 zusätzliche Messmodule möglich.
Die Programmierung war gedanklich eigentlich kein großes Problem, jedoch traten bei der Ausführung diverse Probleme auf:
Ich versuchte es zuerst über die Erfassung einer endlichen Anzahl von Werten um ein Auslesen alter Messwerte nach dem Umschalten der MUX zu verhindern. Dies funktionierte leider nicht in einer zufriedenstellenden Geschwindigkeit. Ich erreichte bei 100 Samples mit 50kHz abgetastet lediglich rund 1Hz Abtastfrequenz was für meine Anwendung zu gering ist.
Komischerweise zeigte auch ein Test-VI welches nur die Datenerfassung ohne den ganzen Overhead mit MUX-Steuerung etc. enthielt keine bessere Performance.
Als zwischenzeitliche Performance-Lösung bin ich auf kontinuierliche Erfassung umgestiegen. Damit erreiche ich Abtastfrequenzen von ca. 7Hz pro Kanal (ausreichend für mich, jedoch auch gerne höher). Jedoch erhalte ich je nach Einstellung von Abtastrate der Messkarte und Anzahl der Samples früher oder später den Fehler, dass auf Samples zugegriffen wird welche nicht mehr zur Verfügung stehen. Ebenso werden je nach VI-Abtastrate (im Frontpanel eingestellt) und Anzahl der Kanäle die Messwerte in meinem Array um meist 4 Elemente verschoben (Kanal 1-4 an der Position von 5-8 und so weiter, 28-32 auf 1-4). Diese Verschiebungen hängen zusätzlich auch noch von der DAQ Abtastrate sowie der Sample-Anzahl ab. Habe es als Übergangslösung per Fallunterscheidung "gelöst". Damit ich keine Messwerte anderer Sensoren einlese habe ich dann vor der eigentlichen Datenerfassung ein DAQ-Read eingebaut um den Puffer zu leeren.
Alles in allem mehr als eingenartig...
Auch vollständiges Neuprogrammieren (sowohl Sequenzen als auch State-Machine) anstatt der Fehlersuche blieben ohne Erfolg. Ebenso die Fehlersuche im Internet/Forum. Da ich langsam Betriebsblind werde hoffe ich auf Input von Außen.
Anhang:
VI mit endliche Erfassung (keine Fallunterscheidung) sowie die dazugehörigen Sub-VIs im ZIP-File.
VI mit kontinuierlicher Erfassung und Fallunterscheidung direkt als VI.
Verwendete Umgebung/Hardware:
Windows 7 64bit
LabView 2013 SP1 32bit
NI 9237 4-Kanal Brücken-Input Modul
NI 9472 8-Kanal Digital-Output Modul
NI cDaq 9172 Chassis
Analog Devices ADG407 Multiplexer
Vielen Dank und LG
Jürgen