Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Hallo Labview Freunde,
ich möchte gerne, wie das folgende SubVi zeigt, dass ein Benutzer selber wählen kann welcher physikalische Kanal an welchen Prüfling angeschlossen wird, und was an diesem Kanal gemessen werden soll.
Wenn ich nun das Cluster mit den Informationen über phy. Kanal, Prüfling, Typ( Spannung, Temp), Kommentar, ProductTyp(z.B. NI-9213) und Seriennummer habe, sollen im Main VI pro Prüfling drei Tasks (TemperaturTask_x, RGB-Task_x, SpannungsTask_x) mit den jeweiligen Kanälen gestartet werden.
das heißt ich müsste für Prüfling 1 zwei Tasks starten und für Prüfling 4 nur einen Task. Ich wollte gerne die Tasks mit einer For-schleife starten. Dies funktioniert leider nicht so wie gewollt, da das SubVi "DAQmx Start Task" immer einem Task zugehörig ist und keinen 2ten starten kann.
Nun habe ich folgendes Problem, da ich nicht vor dem Programmstart weiß wie viele Task der Benutzer benötigt, kann ich das SubVi "DAQmx Start Task " sowie Stop Task, clear Task und Read Task nicht in der richtigen Anzahl in das Programm einbauen.
Die Task Aufteilung pro Prüfling ist so gewählt, da es später 3 Diagramme geben soll (Temperatur, RGB, Spannung) und je nach Auswahl des Prüflings (z.B. Ring) die Daten des jeweiligen Prüflings dargestellt werden sollen.
Habt ihr eine Idee wie ich das Problem bewältigen kann?
Was ist wenn ich ein weiteres SubVi reentrant ausführe, so dass ein Clone erstellt wird?
Wie bekomme ich dann wieder alle Daten mit ca. 1kHz ins MainVI? => Queues?
(19.04.2013 10:08 )simbi schrieb: ...
Ich wollte gerne die Tasks mit einer For-schleife starten. Dies funktioniert leider nicht so wie gewollt, da das SubVi "DAQmx Start Task" immer einem Task zugehörig ist und keinen 2ten starten kann.
...
Dies funktioniert und dein Problem muss daher ein anderes sein. Welche Fehlermeldung hast du bekommen als du es probiert hast?
Bis zu deiner Antwort würde ich folgende Probleme vermuten:
- Taskname wiederverwendet
- Kanäle auf einem Modul versucht in unterschiedlichen AI-Tasks zu starten
- mehr als 3 AI Tasks versucht anzustarten (du verwendest ja scheinbar c-Serien Module mit DAQmx und daher wahrscheinlich ein cDAQ)
danke für deine Antwort. Ich schau nachher noch einmal nach welche Fehlermeldung genau auftaucht.
An den Tasknamen kann es eingentlich nicht liegen, da die Task je nach Prüfling einen anderen Namen bekommen zum Beipiel TemperaturTask_1, Temperaturtask_2 usw.
Der 2te und 3te Punkte könnten sein. Das würde für mich bedeuten, da ich ja pro Prüfling drei Task erstelle und ich vorerst max 15 Prüflinge habe, dass ich 45 Tasks hätte und damit viel zu viele. mhhh
Kann ich auf einem Modul nur ein Task lauefn lassen? Dann brauche ich 45 Module.
Ein Beispiel habe ich erst einmal nicht erstellt, da ich Holys Vermutungen getestet habe und Punkt 2 und 3 auf meine Anordnung zu treffen.
Ich werde mir jetzt Gedanken machen müssen über die neue Struktur. Wahrscheinlich werden jetzt alle Kanäle in einem Task ausgeführt und somit mit dem gleichen Timing.
Wenn ich nur einen Task habe reicht ja auch ein daqmx read also keine Schleifen mehr.