15.01.2010, 09:11
Beitrag #1
|
Likakir
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Jan 2010
8.6
2009
de
52064
Deutschland
|
Erzeugen von Kanälen in For Schleife
Hallo zusammen,
ich würde gerne mehrere AI - Kanäle einem Task hinzufügen, wobei ich für die Kanäle unterschiedliche Skalierungen habe. Desweiteren möchte ich auch bei der Anzahl von Kanälen variabel bleiben. Dafür ist eine For-Schleife glaub ich die richtige Lösung. Leider komme ich nicht drauf, wie ich das Task nun weiter verweden kann, da es als Array ausgegeben wird. Im Screenshot stellt sich das Problem direkt nach der Schleife dar:
Vielen Dank im voraus,
Kai
|
|
|
15.01.2010, 09:29
Beitrag #2
|
|
|
15.01.2010, 09:30
Beitrag #3
|
|
|
15.01.2010, 09:39
Beitrag #4
|
|
|
15.01.2010, 10:17
Beitrag #5
|
Likakir
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Jan 2010
8.6
2009
de
52064
Deutschland
|
Erzeugen von Kanälen in For Schleife
Vielen Dank für die Antworten.
Ich hatte im Forum bereits diese Möglichkeit mit der For-Schleife gesehen:
http://www.LabVIEWforum.de/index.php?showt...mode=linearplus
welche dem sequentiellen Erzeugen von Kanälen in einem Task gleichwertig sein soll. Es müsste denke ich funktionieren.
Wenn ich alle DAQ-Elemente in die Schleife packe bekomme ich beim Auslesen des Tasks in der While-Schleife dasselbe Problem.
|
|
|
15.01.2010, 14:04
Beitrag #6
|
Likakir
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Jan 2010
8.6
2009
de
52064
Deutschland
|
Erzeugen von Kanälen in For Schleife
So,
ich habe eine Lösung gefunden die zu funktionieren scheint:
Ersetzen der Autoindizierung des Tasks durch Schieberegister.
Dann noch den ersten Kanal vor der Schleife erzeugen, ansonsten kommt LabVIEW wohl durcheinander. Das ganze sieht dann so aus:
Bessere bzw. übersichtlichere Möglichkeiten mehrere Kanäle mit individuellen Einstellungen zu erzeugen würde ich natürlich gerne kennenlernen.
Grüße,
Kai
|
|
|
15.01.2010, 14:53
(Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2010 14:53 von Lucki.)
Beitrag #7
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Erzeugen von Kanälen in For Schleife
' schrieb:ich habe eine Lösung gefunden die zu funktionieren scheint:
So wie Du es gemacht hast ist es richtig. Der im vorigen Beitrag genannte Link führt auf ein Beispiel von mir, welches denselben Fehler enthält wie Du am Anfang gemacht hast. Bitte vielmals um Entschuldigung. Also Falsch: Autoindexieren der Task. Richtig: Shift-register.
|
|
|
15.01.2010, 15:09
Beitrag #8
|
|
|
10.03.2010, 14:19
(Dieser Beitrag wurde zuletzt bearbeitet: 10.03.2010 14:20 von dimitri84.)
Beitrag #9
|
|
|
10.03.2010, 15:32
(Dieser Beitrag wurde zuletzt bearbeitet: 10.03.2010 15:40 von IchSelbst.)
|
IchSelbst
LVF-Guru
Beiträge: 3.689
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Erzeugen von Kanälen in For Schleife
' schrieb:Wo landet denn die Information über den neu erzeugten Kanal? Im Task-"String" wird's also nicht versteckt so wie ich es gedacht hätte.
Der "Task-Wire" ist keine Variable im engeren Sinne wie Int32, String, Cluster, Array etc., sondern ganz allgemein ein Handle! Alles, was für die Task benötigt wird, steht in irgendeiner Instanz irgendwo im DAQmx-Treiber. Der "Task-Wire" ist lediglich eine Kennung, damit der DAQmx-Treiber weis, welche Instanz gerade angesprochen werden soll. Und eine solche Kennung ist eben ein Handle.
Daher funktioniert die ganze Sache auch mit Tunnels. Dass Schieberegister diverse Vorteile haben, spielt in diesem Falle nur eine untergeordnete Rolle.
Nachtrag:
Es ohne Schieberegister zu machen, hat einen großen Nachteil: sollte sich der DAQmx-Treiber dazu hinreißen lassen, den Handle umzubennenen, tritt ein Problem auf. Ob der Treiber Umbenennungen machen kann oder grundsätzlich ausschließt, weis ich nicht. Kann's mir aber vorstellen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
| |