LabVIEWForum.de
NI PCI 6230 - Fehlkauf? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: NI PCI 6230 - Fehlkauf? (/Thread-NI-PCI-6230-Fehlkauf)

Seiten: 1 2


NI PCI 6230 - Fehlkauf? - tillev - 20.01.2011 17:03

Hallo liebe DAQ-Experten,

ich habe eine Messanwendung, bei der ich zwei analoge Kanäle mit 100kHz, und 6 andere mit max. 5kHz abtasten möchte. Also habe ich mir die NI PCI 6230 gekauft, die ja laut Datenblatt 8 AI Kanäle und 250kS/s hat.

Mein Plan war, eben zwei Kanäle mit 100kHz und den Rest mit 5kHz zu takten. Es kommt aber immer der verbreitete Fehler 50103.

Meine Recherche hat bisher ergeben, dass diese Karte vielleicht nur eine Timing-Quelle haben könnte uns es also gar nicht möglich ist, Kanäle unterschiedlich abzutasten? Das würde ja bedeuten, dass die Karte eigentlich nur 30 kHz kann, wenn ich alle acht Kanäle nutze.

Ist das so? Und wenn ja, wie hätte ich das beim Kauf sehen können? Steht das irgendwo im Datenblatt?

Vielen Dank im Voraus für Eure Hilfe

tillev


NI PCI 6230 - Fehlkauf? - Andora - 21.01.2011 09:05

Halle tillev,

Aus dem User Manual :

"Suppose you want to sample 10 channels over a period of 20 ms and
average the results. You could acquire 500 points from each channel at a
scan rate of 250 kS/s."

Meine Meinung :

Das heißt, wenn du pro Takt nur ein Sample nimmst, hast du folgendes :
2 x 100kSample = 200kSample / sec
6 x 5kSample = 30kSample / sec
200k + 30k = 230kSample/sec, was < als 250kSample/sec, was die Karte kann. Knappt, aber möglich.
Muss du dich vergewissern, dass die SampleZahl = 1


NI PCI 6230 - Fehlkauf? - Lucki - 21.01.2011 09:26

Falls der Vorgang, den du erfassen willst, wiederholbar ist, dann besteht noch Hoffnung:
2 Tasks einrichten, Task 1: 2 Kanäle mit 100kHz, Task 2: 5 Kanäle mit 5 kHz. Dann zuerst den Vorgang mit Task 1 erfassen, dann mit Task 2, und dann die beiden Daten kombinieren, als seien sie in einem Zug erfasst worden.
Nach dieser Methode lassen sich z-B auch alle 8 Kanäle mit der max. Datenrate (bei Dir 250kHz) erfassen. Es ist dann nur der Programmieraufwand höher und die Update-Rate in den Diagrammen geringer.


NI PCI 6230 - Fehlkauf? - jg - 21.01.2011 20:28

Im ersten Moment sage ich: Ja - Fehlkauf, und möchte meinen Vorschreibern somit widersprechen.

Ich gehe einmal davon aus, dass du deine insgesamt 8 Kanäle kontinuierlich und auch wirklich gleichzeitig erfassen willst. Dann hast du Recht, dann kommst du auf die max. 30 kHz, solange du dein AI-Task "einfach" konfigurierst.

Die Vorschläge von Andora und Lucki bedeuten, dass du für gewisse Zeit ein AI-Task mit 100 kHz für deine ersten beiden Kanäle laufen lässt, dieses dann aber stoppen musst, um die restlichen Kanäle mit 5 kHz aufzunehmen. Es wären also immer Lücken in der Datenerfassung. Ganz zu schweigen davon, dass der Start/Stopp der Task ja auch Zeit kostet.

Aber es besteht noch ein wenig Hoffnung, durch geschicktes Definieren des AI-Tasks. "Einfach" erst 20x AI0 + AI1 als Kanäle definieren, und dann deine restlichen 6 (AI2-AI7), also ein Task mit insgesamt 46 Kanälen. Dieses dann mit 5 kHz laufen lassen, mit einer Gesamtrate von 230 kHz also. Somit hast du zumindest annähernd eine konstante Erfassungsrate für AI0 + AI1.
Nachteil: Du musst das erfasste Array von Messwerten erst mal kräftig umbauen...

Ich habe mal schnell was zusammengeklickt, hoffentlich ohne Fehler, und auch nicht gerade optimal, aber es geht erst einmal ums Prinzip:

Lv09_img2[attachment=31836]

Zur Frage, hättest du das sehen können? Im User-Manual der 6230 steht, dass sie nur 1 AD-Wandler hat, der im MUX-Betrieb bei der Erfassung mehrerer Kanäle läuft. Das ist der Hinweis darauf, dass die 250 kHz nur für alle Kanäle gesamt zur Verfügung stehen.
Hast du dich nicht von deinem NI-Vertreter beraten lassen?

Gruß, Jens


NI PCI 6230 - Fehlkauf? - tillev - 24.01.2011 12:15

Hallo,

vielen Dank für die interessanten Tipps und Vorschläge.

Gefühlsmäßig würde mir der Vorschlag von Lucki am besten gefallen. Ich werde mal testen, inwieweit die von Jens angemerkten Lücken in der Datenerfassung Probleme machen.
Die Lösung von Andora klappt bei mir nicht, da ich nebenbei noch Regeln und Anzeigen möchte. D.h. die angestrebte hohe Datenrate kann ich nur mit einer hohen Samplezahl erreichen. Windows geht ja schon ab etwa 1kHz in die Knie :-)
Den Vorschlag von Jens muss ich mir noch genauer ansehen. Er erscheint mir aber von der Struktur etwas starr, d.h. ich kann nicht einfach auch mal mit einer kleineren Datenrate messen, wenn ich (z.B. bei einem Langzeitversuch) nicht so viele Daten benötige.

Ich werde jetzt mal ans basteln gehen und melde mich wieder.

Viele Grüße
tillev

PS: das mit der NI-Beratung hab ich zugegebenermaßen verpennt. Hab mich zu sehr auf den automatischen Kaufberater auf der Homepage verlassen ;-)


NI PCI 6230 - Fehlkauf? - Lucki - 24.01.2011 14:03

Wie gesagt setzt mein Vorschlag voraus, daß der zu untersuchende Vorgang periodisch ist oder sich nur langsam verändert.
Bei jedem altem Oszilloskop mit nur einem Strahl gibt es auch die beiden Betriebsarten für das Messen von 2 Kanälen: Chopping und Alternierend. Chopping entspricht dem normalen Mutiplexing der AD-Karte. Bei alternierendem Betrieb wechseln sich die Strahldurchläufe für Kanal 1 und 2 jeweils ab. Diese Betriebsart ist naturgemäß nicht für die Darstellung einmalige Vorgänge geeignet, und auch bei sehr langsam verlaufenden Vorggängen macht es sich nicht gut. Dieser Betriebsart entpricht mein Vorschlag. Man könnte es als "Kanal-Mutiplexing" bezeichnen, im Gegensatz zum normalen "Zeitmultiplexing". Es ist übrigens nicht aus dem Bauch heraus vorgeschlagen, sondern hat sich in einer industiellen Anwendung bestens bewährt. Wundern tue ich mich nur, daß im Rest der Welt noch niemand auf diese Idee gekommen zu sein scheint.

Der Vorschlag von Jens beruht darauf, mit hoher Scan-rate die Kanäle in dieser Reihenfolge zu multiplexen:
0101010101010101010101010101010101010101234567010101010.....
Für Kanal 0 hätte man dann diese Datenfolge:
dddddddddddddddddddddxxxdddd...
D=Datenpunkt, x=Lücke in den Datenpunkten.
Um die Lücken mit Datenpunkten zu füllen, müßte man interpolieren, was aber über drei fehlende Punkte sehr ungenau würde. Die Idee ist aber nichr grundsätzlich schlecht, nur würde ich dann das abscannen so ändern, daß man nie mehr als einen fehlenden Datenpunkt hat. Der ließe sich besser interpolieren. Also abscannen so:
010101010101012301010101010101451010101010101067010101..
Für Kanal 0 hätte man dann diese Datenfolge:
ddddddxddddddxddddddxdd...
Der Vorteil ist die Möglichkeit einer kontinuierlichern Betriebsweise. Nachteile sind die fehlenden, zu interpolierenden Datenpunkte, und daß die beiden unterschiedlichen Sampleraten in einem festen Verhältnis zueinander stehen (oben: Verhältnis 20:1, unten: Verhältnis 21:1). Das zu ändern käme jedesmal einem Aufstand gleich.


NI PCI 6230 - Fehlkauf? - tillev - 27.01.2011 10:10

Hallo Jens,

da die Lösung von Lucky zwar funktioniert, das ständige Starten und Stoppen aber meine komplette Anwendung ausbremst, habe ich mich dran gemacht Deine Lösung näher zu studieren.
Ich denke ich hab sie jetzt verstanden und so starr wie ich dachte, ist die Struktur auch nicht. Ich kann ja sowohl die Grundfrequenz (d.h. bei Dir die 5 kHz), als auch die Zahl der Kanäle (bei Dir 20) variabel machen. Dann kann ich beide Frequenzen (fast) frei einstellen.

Nur noch zum Verständnis und für andere, die Dein vi vielleicht auch ansehen. Müsste bei dem "Delete from Array" der Index0-Eingang nicht 40 sein. Bei Dir steht da 20, aber ich hab ja 2x20Kanäle?

Vielen Dank für Deine Rückmeldung.

Grüße
tillev


NI PCI 6230 - Fehlkauf? - jg - 27.01.2011 10:46

' schrieb:Nur noch zum Verständnis und für andere, die Dein vi vielleicht auch ansehen. Müsste bei dem "Delete from Array" der Index0-Eingang nicht 40 sein. Bei Dir steht da 20, aber ich hab ja 2x20Kanäle?
Ja, du hast Recht, da muss eine 40 stehenWink
Gruß, Jens


NI PCI 6230 - Fehlkauf? - Lucki - 27.01.2011 15:48

' schrieb:da die Lösung von Lucky zwar funktioniert, das ständige Starten und Stoppen aber meine komplette Anwendung ausbremst,
Da machst Du etwas falsch. Bei Betriebsmodus "Endliche Anzahl" ist ein Task beendet, wenn die Anzahl Samples erreicht ist - da muß nichts mehr gestoppt werden.
Was gemacht werden muß:
[list=1]
[*]Task 1 (2 Kan schnelle Erfassung) und Task 2 (6 Kan langsame Erfassung) konfigurieren.<>
[*]Task 1 starten<>
[*]Wenn Task 1 beendet: Task 2 starten<>
[*]Wenn Task 2 beendet: Task 1 starten<>
[*]Gehe zu 2.<>
[st]Die Tasks müssen auch nicht ständig neu konfigurierrt werden. Das würde die Anwendung wirklich ausbremsen, aber das machst Du doch hoffentlich nicht, oder?


NI PCI 6230 - Fehlkauf? - tillev - 31.01.2011 08:14

Hallo zusammen,

das ist wirklich ein blödes Thema, wenn man so an den technischen Grenzen seiner Messkarte rumkratzt :-)

@ Lucky:
das sieht mein LV leider anders. Wenn ich die "Task-Stoppen" entferne und nur noch "Warten bis beendet" benutze, kommt wieder der alt bekannte 50103-Fehler. Konfiguriert wird übrigens nur 1x zu Beginn der Messung.

@Jens:
hab leider bei Deiner Lösung ein neues Problem bekommen. In meiner Anwendung läuft noch ein Zähler mit, der vom Analogen-Task getaktet wird. Der sollte eigentlich auch mit 100kHz abgetatstet werden, wird jetzt aber eben nur noch mit 5 kHz ausgelesen. Leider hab ich beim Zähler wohl keine Möglichkeit, einfach auch die Zahl der Kanäle auf 20 zu erhöhen, oder?

Viele Grüße
tillev