LabVIEWForum.de - Spannung messen - differentiell und RSE

LabVIEWForum.de

Normale Version: Spannung messen - differentiell und RSE
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich stehe momentan auf dem Schlauch und würde mich über Hilfe sehr freuen! Danke schon mal im Voraus!

Ich habe mit meiner NI USB-6361 Karte bisher Samples auf verschiedenen AI Kanälen aufgenommen, allerdings immer nur in einer Schaltungsart (RSE). Nun möchte ich z.B. auf zwei AI Kanälen meine Werte differentiell und auf zwei weiteren AI Kanälen in der Schaltungsart RSE erfassen.
Mein Ansatz war nun folgender: da ich in einem Task zwei verschiedene Schaltungsarten wohl nicht miteinander verbinden kann muss ich also zwei Tasks (für jede Schaltungsart einen) erstellen.

So wie es jetzt aussieht funktioniert es auf jeden Fall nicht (Fehler -50103 bei DAQmx Start Task...Die ausgewählte Resource ist reserviert...). Der zweite Task wird erst gar nicht gestartet. Warum ist mir noch nicht klar. Kann ich die OnboardClock nicht in beiden Tasks verwenden?!

Der zeitliche Ablauf meiner Messung soll wie folgt gestaltet sein:
Trigger kommt --> AI1 wird gesampelt (RSE) --> AI9 wird gesampelt (RSE) --> 150µs seit Trigger vergangen (Verzögerung): AI2 wird gesampelt (diff.) --> AI3 wird gesampelt

Gruß
Pete
(28.04.2017 14:15 )PeteFlosse schrieb: [ -> ]Ich habe mit meiner NI USB-6361 Karte bisher Samples auf verschiedenen AI Kanälen aufgenommen, allerdings immer nur in einer Schaltungsart (RSE). Nun möchte ich z.B. auf zwei AI Kanälen meine Werte differentiell und auf zwei weiteren AI Kanälen in der Schaltungsart RSE erfassen.
Mein Ansatz war nun folgender: da ich in einem Task zwei verschiedene Schaltungsarten wohl nicht miteinander verbinden kann muss ich also zwei Tasks (für jede Schaltungsart einen) erstellen.

Genau hier liegt dein Denkfehler. Natürlich ist es möglich, RSE und differentiell in einem Task zusammenzufassen.
Du musst es sogar machen, da diese Karte nur einen ADC hat und somit auch nur einen AI-Task laufen lassen kann.

Gruß, Jens
Hallo Jens,

jetzt wo du es sagst ist es eigentlich logisch. Vielen Dank!
Wäre das dann wie im angehängten VI richtig umgesetzt?
[attachment=57784]

Bedeutet das dann, dass bei Eintritt des Trigger-Signals zuerst die RSE-Signale und dann die differentiellen Signale aufgenommen werden?
Angenommen meine Sample-Anzahl ist 50 und meine Sample-Rate 200kHz. Dann braucht die Kiste beim "DAQmx-Read" 2x 250µs für die Aufnahme der Messdaten der zwei RSE-Signale und nochmal 250µs für die Aufnahme des differentiellen Signals. Ist das richtig?

Gruß
Peter
Hallo Pete,

ob man das so via String zusammensetzen kann, keine Ahnung. Das habe ich noch nie versucht.
Mischen von RSE und DIFF ist aber kein Thema, funktioniert wunderbar.

Im Anhang ein Screenshot des INI-states einer meiner DAQ-VIs.

Ob deine Eingänge geMUXt werden oder parallel gelesen werden sollte im Manual stehen.

Hope it helps, Ralf aka RMR
Offtopic2
(10.05.2017 11:03 )RMR schrieb: [ -> ]ob man das so via String zusammensetzen kann, keine Ahnung. Das habe ich noch nie versucht.
Das geht auf jeden Fall! Das kannst du verallgemeinern auf alle (lila) Hardware-Referenzen, da kann man immer auch einen String verwenden. Kann ich sehr empfehlen, da man dann unabhängig davon wird, wie z.B. der DAQ-Device im MAX benannt ist.

Gruß, Jens
(10.05.2017 10:43 )PeteFlosse schrieb: [ -> ]jetzt wo du es sagst ist es eigentlich logisch. Vielen Dank!
Wäre das dann wie im angehängten VI richtig umgesetzt?
Sieht so aus. Probieren geht über studieren...
(10.05.2017 10:43 )PeteFlosse schrieb: [ -> ]Bedeutet das dann, dass bei Eintritt des Trigger-Signals zuerst die RSE-Signale und dann die differentiellen Signale aufgenommen werden?
Die AIs werden in der Reihenfolge erfasst, wie du sie im Task angelegt hast.
(10.05.2017 10:43 )PeteFlosse schrieb: [ -> ]Angenommen meine Sample-Anzahl ist 50 und meine Sample-Rate 200kHz. Dann braucht die Kiste beim "DAQmx-Read" 2x 250µs für die Aufnahme der Messdaten der zwei RSE-Signale und nochmal 250µs für die Aufnahme des differentiellen Signals. Ist das richtig?
Nein. Jeder Kanal wird mit 200 kHz gesampelt. Zwecks MUX läuft AD-Wandler bei 4 Kanälen dann also mit 800 kHz, du bist also schon nahe an der Maximalleistung der Karte für mehrere Kanäle. Wenn du beim DAQmx-Read dann 50 bei Sample-Anzahl anschließt, dann erhältst du theoretisch alle 250µs 50 Messwerte pro Kanal.

Gruß, Jens
(10.05.2017 12:36 )jg schrieb: [ -> ]Nein. Jeder Kanal wird mit 200 kHz gesampelt. Zwecks MUX läuft AD-Wandler bei 4 Kanälen dann also mit 800 kHz, du bist also schon nahe an der Maximalleistung der Karte für mehrere Kanäle. Wenn du beim DAQmx-Read dann 50 bei Sample-Anzahl anschließt, dann erhältst du theoretisch alle 250µs 50 Messwerte pro Kanal.

Okay. Nun habe ich 8 differentielle Kanäle (also 4 differentielle AIs) und 8 RSE Kanäle. Um die Sample-Rate hochhalten zu können möchte ich das Samplen der Kanäle zeitlich voneinander trennen, da ein gleichzeitiges Sampeln so vieler Kanäle mit der Geschwindigkeit und dieser Karte nicht möglich ist.
Das kann dann z.B. so aussehen:
4 RSE Kanäle samplen - die nächsten 4 RSE Kanäle samplen - 4 differentielle Kanäle samplen - die nächsten 4 differentiellen Kanäle samplen

Wenn ich jetzt alles richtig verstanden habe, brauche ich dafür dann allerdings 4 Tasks, die ich aber nicht gleichzeitig laufen lassen könnte, da meine Karte nur einen MUX ADC hat und dieser dann bereits mit einem Task belegt wäre. Korrekt?
(10.05.2017 13:07 )PeteFlosse schrieb: [ -> ]Okay. Nun habe ich 8 differentielle Kanäle (also 4 differentielle AIs) und 8 RSE Kanäle.
Was jetzt? 4 Diffs (belegt zwar 8 der mit AIx bezeichneten Eingänge, aber sind nur 4 Diff) oder 8 Diffs. Ganz zu schweigen davon, dass 8 RSE und 8 Diff bei der Karte nicht möglich sind. Sie hat max. 16 AI RSE oder max. 8 AI Diff.
(10.05.2017 13:07 )PeteFlosse schrieb: [ -> ]Um die Sample-Rate hochhalten zu können möchte ich das Samplen der Kanäle zeitlich voneinander trennen, da ein gleichzeitiges Sampeln so vieler Kanäle mit der Geschwindigkeit und dieser Karte nicht möglich ist.
Das kann dann z.B. so aussehen:
4 RSE Kanäle samplen - die nächsten 4 RSE Kanäle samplen - 4 differentielle Kanäle samplen - die nächsten 4 differentiellen Kanäle samplen

Wenn ich jetzt alles richtig verstanden habe, brauche ich dafür dann allerdings 4 Tasks, die ich aber nicht gleichzeitig laufen lassen könnte, da meine Karte nur einen MUX ADC hat und dieser dann bereits mit einem Task belegt wäre. Korrekt?
Ja, ich denke du hast alles richtig verstanden. Bei 4 AI (egal ob SE oder DIFF) kommst du bei dieser Karte auf max. 250 kHz pro Kanal. Allerdings erschließt sich mir nicht deine Idee, es auf 4 Tasks aufzuteilen. Insgesamt gesehen bist du dann langsamer, da du ja immer wieder erst einen Task startest, ein "paar" Werte erfasst, den Task beendest, einen neuen Task anlegst, davon Werte erfasst, den stoppst, usw usw usw . Dann lieber alle AI durchgehend mit der max. Rate von 83,3 kHz laufen lassen?!

Gruß, Jens
(10.05.2017 13:28 )jg schrieb: [ -> ]Was jetzt? 4 Diffs (belegt zwar 8 der mit AIx bezeichneten Eingänge, aber sind nur 4 Diff) oder 8 Diffs. Ganz zu schweigen davon, dass 8 RSE und 8 Diff bei der Karte nicht möglich sind. Sie hat max. 16 AI RSE oder max. 8 AI Diff.
War wohl etwas umständlich ausgedrückt von mir. Blush Ich meine 4 Diffs und 8 RSE. Das macht dann 16 belegte AIx Eingänge.

(10.05.2017 13:28 )jg schrieb: [ -> ]Ja, ich denke du hast alles richtig verstanden. Bei 4 AI (egal ob SE oder DIFF) kommst du bei dieser Karte auf max. 250 kHz pro Kanal. Allerdings erschließt sich mir nicht deine Idee, es auf 4 Tasks aufzuteilen. Insgesamt gesehen bist du dann langsamer, da du ja immer wieder erst einen Task startest, ein "paar" Werte erfasst, den Task beendest, einen neuen Task anlegst, davon Werte erfasst, den stoppst, usw usw usw . Dann lieber alle AI durchgehend mit der max. Rate von 83,3 kHz laufen lassen?!
Jein. Mein Problem ist, dass ich insgesamt nicht langsamer werden darf, aber eine Sample Rate von 200kHz benötige.

Ich versuche mal zu erklären was ich machen möchte. Vielleicht wird es dann klarer.
Mein Trigger- und zu sampelndes Signal sieht vom zeitlichen Verlauf her so aus:
[attachment=57790]
Ich möchte beim ersten t_on 4 RSE Kanäle in max. 100µs samplen und in den restlich verbliebenen 50µs des Pulses 10 Messwerte mit 2 Diffs aufnehmen (entspricht 200kHz).
Die Dauer von t_del herrscht Ruhe.
Beim zweiten t_on möchte ich 4 andere RSE Kanäle und 2 andere Diffs samplen (in gleichem zeitlichen Verhalten wie beim ersten Puls).

Nach meinem Verständnis kriege ich das nicht in einem Task verpackt. Wenn doch, lasse ich mich nur allzu gerne korrigieren. Vorschläge sind willkommen!
(10.05.2017 14:07 )PeteFlosse schrieb: [ -> ]
(10.05.2017 13:28 )jg schrieb: [ -> ]Was jetzt? 4 Diffs (belegt zwar 8 der mit AIx bezeichneten Eingänge, aber sind nur 4 Diff) oder 8 Diffs. Ganz zu schweigen davon, dass 8 RSE und 8 Diff bei der Karte nicht möglich sind. Sie hat max. 16 AI RSE oder max. 8 AI Diff.
War wohl etwas umständlich ausgedrückt von mir. Blush Ich meine 4 Diffs und 8 RSE. Das macht dann 16 belegte AIx Eingänge.
Korrekt!
(10.05.2017 14:07 )PeteFlosse schrieb: [ -> ]
(10.05.2017 13:28 )jg schrieb: [ -> ]Ja, ich denke du hast alles richtig verstanden. Bei 4 AI (egal ob SE oder DIFF) kommst du bei dieser Karte auf max. 250 kHz pro Kanal. Allerdings erschließt sich mir nicht deine Idee, es auf 4 Tasks aufzuteilen. Insgesamt gesehen bist du dann langsamer, da du ja immer wieder erst einen Task startest, ein "paar" Werte erfasst, den Task beendest, einen neuen Task anlegst, davon Werte erfasst, den stoppst, usw usw usw . Dann lieber alle AI durchgehend mit der max. Rate von 83,3 kHz laufen lassen?!
Jein. Mein Problem ist, dass ich insgesamt nicht langsamer werden darf, aber eine Sample Rate von 200kHz benötige.

Ich versuche mal zu erklären was ich machen möchte. Vielleicht wird es dann klarer.
Mein Trigger- und zu sampelndes Signal sieht vom zeitlichen Verlauf her so aus:

Ich möchte beim ersten t_on 4 RSE Kanäle in max. 100µs samplen und in den restlich verbliebenen 50µs des Pulses 10 Messwerte mit 2 Diffs aufnehmen (entspricht 200kHz).
Die Dauer von t_del herrscht Ruhe.
Beim zweiten t_on möchte ich 4 andere RSE Kanäle und 2 andere Diffs samplen (in gleichem zeitlichen Verhalten wie beim ersten Puls).

Nach meinem Verständnis kriege ich das nicht in einem Task verpackt. Wenn doch, lasse ich mich nur allzu gerne korrigieren. Vorschläge sind willkommen!
Wenn du das exakt so brauchst, dann brauchst du andere Hardware. Mit einer 6361 bekommst du das nicht hin.
Für die Erfassung eines Pulses von 150 µs brauchst du 6 Kanäle gleichzeitig. Basta. Der Stopp eines RSE-Task und Start einen DIFF-Task wird viel zu lange dauern.
Das Vorbereiten eines neuen Task für den zweiten Puls könnte klappen, ist aber mit der 1ms Totzeit immer noch recht haarig. Sichergestellt ist das so meiner Meinung nach nicht.

Sprich mal mit deinem NI-Vertreter über passende HW. Aus dem Bauch heraus könnte ein cDAQ-Chassis mit 3x NI-9222 die richtige Wahl für diese Messaufgabe sein.

Gruß, Jens
Seiten: 1 2
Referenz-URLs