LabVIEWForum.de - Verschiedene Channels auswählen

LabVIEWForum.de

Normale Version: Verschiedene Channels auswählen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo

Ich benutze eine Messkarte usb-6251.
Ich habe 8 Sensoren auf 8 AnalogInput verdrahtet. Weiter habe ich eine Task erzeugt mit den entsprechenden Physikalischen Kanälen (ai0-7).

Mein Problem ist nu folgendes.
Im Programmablauf brauche ich nicht immer alle Sensoren zu erfassen, zB nur Nr1-4. Kann ich irgendwie eine Art "Scannlist" erzeugen oder muss ich mich damit abfinden, dass immer alle 8 Kanäle gemessen werden.
Oder müsste ich den Task immer wieder neu mit den entsprechenden Physkalischen Kanälen erzeugen.

Gruss
Bruno
Alles ohne MAX und Tasks machbar. Hier 2 Varianten als Anregung:
[attachment=36904]
Gruß, Jens
Danke schonmal für die Antwort Jens.
Leider blicke ich da noch nicht ganz durch...

Beim ersten Beispiel machst du einen Array of Task. Somit kann man beim Messdaten lesen den entsprechenen Task übergeben.
Sehe ich das Richtig?

Beim zweiten Beispiel versteh ich nur Bahn

Könntest du deine Beispiele mit ein Read ergänzen? Sagen wir ich möchte nur Kanal 2 und 5 lesen....

Wäre supernett...
Lies dir die Hilfe zu Create Virtual Channel durch (Ctrl-H) Rtmfx . Und da die weiterführenden Links zum "Physical Channels" Eingang.

Grundsätzlich sind die beiden Codefragment-Varianten dasselbe. Im 2. Bsp siehst du, dass man auch einen String am Eingang von Physical Channels anschließen kann.

Gruß, Jens
Die Hilfe und der Example-Finder sind mir bekannt...

Ich habe ein Beispiel erstellt mit der Variante 1 von Jens.
Beim "Read" stehe ich aber weiterhin auf dem Schlauch...
Jetzt hast du ja ein Task mit allen 8 AIs erzeugt.
Ich dachte, du willst nur ein Task mit 2 Kanälen.
Ansonsten jetzt ein Index-Array und die gewünschten Kanäle auswählen.
[attachment=36915]
Gruß, Jens
(04.11.2011 13:42 )jg schrieb: [ -> ]Jetzt hast du ja ein Task mit allen 8 AIs erzeugt.

Eben das war meine Frage. Kann man 8 Kanäle erzeugen und nur 2 messen.
Im Moment verwende ich genau deine Variante mit "index Array". Dabei werden aber alle 8 Kanäle gemessen.

Ich dachte ich Frage einmal ob es irgendeine Möglichkeit gibt verschiedene Kanäle aus den erzeugen auszuwählen...

Ich denke offenbar nicht...

Danke für deine Hilfe Jens
Diese Frage habe ich IMHO mit Beitrag #2 beantwortet. Wenn du ein AI-Task mit nur 2 Kanälen haben willst, dann musst du das so programmieren. Du musst duch nur aus dem Array deiner möglichen 8 AIs diejenigen auswählen, die du wirklich messen willst. Und dann damit den Task erstellen. Fertig.

Wenn aber alle 8 Kanäle im Task drin sind, dann werden sie auch alle gemessen.

Gruß, JEns
Ich habe eine USB-6210 Karte und LV 2011. Ich möchte 3 Thermoelemente Typ-K auslesen. Bisher habe ich das mit dem DAQ-Assistenten gemacht. Nun möchte ich das ganze mit den DAQmx-vi's machen um ein bisschen besser zu verstehen wie das funktioniert. Später möchte ich es schaffen (hoffe das geht) die drei Temperaturen in eine LVM Datei zu schreiben und einen Header zu erstellen, in dem die Namen der Signale als Spaltenüberschrift stehen.

Im Moment versuche ich das hier beschriebene nachzubauen. So weit ich das verstehe kommt das vi "Kanal erzeugen" in die For-Schleife, damit es nacheinander die physikalischen Kanäle abarbeitet. Nun bekomme ich es nicht hin die drei Kanäle
1. in so eine Box zusammen zupacken und
2. der For-Schleife zu sagen, sie soll von i=0 bis n-Kanäle durchlaufen.

Oder verstehe ich das hier komplett falsch? lv11_img
(04.11.2011 14:06 )tschibi schrieb: [ -> ]Ich dachte ich Frage einmal ob es irgendeine Möglichkeit gibt verschiedene Kanäle aus den erzeugen auszuwählen...
Ich denke offenbar nicht...
Das kommt darauf an..
Du kannst von allen 8 Kanälen je einen eigenen Task einrichten, und startest und stopst dann immer nur die Tasks der tatsächlich gebrauchten Kanäle.
Der Haken an der Sache ist: Das geht nur nacheinander. Wenn Dir die Quasi-Gleichzeitigkeit der Erfassung wichtig ist, geht es nicht.

Die eigentliche Frage ist aber doch: Was spricht dann eigentlich dagegen, immer alle Kanäle zu messen, auch wenn nicht immer alle Kanäle gebraucht werden und die Daten der nichbenutzten Kanäle in den Müll wandern?

Ist das umweltschädlich? Hat das zusätzliche CO2-Emmisionen zur Folge? Müssen deswegen mehr Bäume gefällt werden? Stirbt deswegen ein Kind in der dritten Welt? Verschleißen PC und Messkarte mehr? - Ich würde alles mit Nein beantworten.

Wenn der Grund die mit weniger Kanälen zu erzielende höhere Datenrate wäre, hättest Du das sicher erwähnt. Kann also auch nicht der Grund sein.

Edit: Du schreibst gar nichts über die gewünschte Datenrate. Wenn diese nicht zu hoch ist, besteht die Möglichkeit, die Rate softwaremäßig als Folge von Einzelmessungen in einer While-Schleife zu organisieren. Und dann kannst Du die gewünschten Kanäle aussuchen, ohne jedes Mal etwas neu konfigurieren zu müssen.
Seiten: 1 2
Referenz-URLs