LabVIEWForum.de - Flowmeter Flankenzählung Fehler: -201133

LabVIEWForum.de

Normale Version: Flowmeter Flankenzählung Fehler: -201133
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Tag miteinander

Ich hab ein Problem, bei dem ich nicht weiter weiss...

Kurzerklärung der einzelnen VI's:

Main.vi: sollte eigentlich ganz einfach einen Drucksensor einlesen und dazu einen Flowmeter auslesen.
cDAQ - FGV: Initialisiert mein cDAQ mit all seinen Tasks, Startet die Tasks, Auslesen der gesammelten Tasks, und Stoppen aller Tasks
Drucksensoren: Mit dem Enum wähle ich den Drucksensor aus, den ich auslesen möchte. Brauche im Moment eh nur einen Drucksensor.
ReadFlowmeter: Mit dem Enum wähle ich den Flowmeter aus, den ich auslesen möchte.
SetPumpe: Setzt mit Hilfe eines anderen VI den Analogausgang die Volt ein.
DigitalAusgangsCluster.vi: Kann bestimmte Relais im Teststand ein und ausschalten, z.B. Pumpe ein und ausschalten

Der Fehler tritt bei ReadFlowmeter.vi auf, wenn die Schleife ein zweites mal ausgeführt wird, und gibt folgende Fehlermeldung aus (Ist extra nicht an ein Error-Strang angebunden):

Zitat:Fehler -201133 bei ReadFlowmeter.vi
Mögliche Ursachen:

Das Gerät kann nicht für Ein- oder Ausgabeoperationen konfiguriert werden, weil Leitungen oder Anschlüsse dieses Gerätes von einem anderen Task oder einer anderen Verbindung verwendet werden. Die Operation erfordert die temporäre Reservierung aller Leitungen und Anschlüsse für die Kommunikation - dies wird durch den anderen Task bzw. die andere Verbindung behindert.

Verwenden Sie, wenn möglich, "DAQmx - Task-Steuerung" zur Reservierung aller Tasks, die dieses Gerät verwenden, bevor Sie einen Task festlegen, der dieses Gerät verwendet. Oder heben Sie die Bindung bzw. Reservierung des anderen Tasks auf oder lösen Sie die andere Route auf, bevor Sie versuchen, das Gerät für Ein- oder Ausgabeoperationen zu konfigurieren.

Gerät: cDAQ2Mod2
Digital-Port: 0
Leitungen: 0

Task-Name: _unnamedTask<9>

Woran kann das liegen? ich belege ja die Ressource nicht erneut mit einem Task...

mit freundlichen Grüssen

Sundypha
Servus,

kannst du das mal in 2011 abspeichern (oder niedriger), dann können dir vielleicht mehr Leute helfen.

Grüßle
S.
Hoffentlich habe ich das richtig gemacht.
Ohne das VI geöffnet zu haben: Wenn der Fehler beim 2. Schleifendurchlauf auftritt klingt das danach, dass du den Task innerhalb der Schleife öffnest - im Zweiten durchlauf ist das Gerät dementsprechend schon belegt, wenn das Programm versucht, den Task erneut zu öffnen. Die Lösung würde also darin liegen, die Initialierirung des Tasks vor der Schleife durchzuführen.
Die Tasks werden in einer FGV (cDAQ) vor der While-Loop initialisiert.

Die FGV hat 4 States:
Initialisieren: Tasks werden erzeugt und in ein Cluster geschoben und dann ins Schieberegister
Start: Tasks werden über Cluster-To-Array in einer Foor-Loop gestartet
Stop: Tasks werden über Cluster-To-Array in einer Foor-Loop gestoppt
Read: Cluster wird einfach durchverbunden vom linken Schieberegister in das Rechte. (Der Cluster kann immer ausgelesen werden, auch im Init-Zustand. Ich weiss, das ist nicht toll, aber ich habe noch keine Erfahrung mit polymorphen FGV's)

Innerhalb des ReadFlowmeter.vi's sieht es so aus:

[attachment=41884]

und innerhalb des Initi-Zustandes der FGV:

[attachment=41885]


Edit: Achja hab noch vergessen zu erwähnen, dass ich in der Selben Schleife ein weiteres Modul auslese und es dort mit der FGV tadellos funktioniert:
[attachment=41886]

mit freundlichen Grüssen
Sundypha
Hmm...hast du dir mal die Prozessorlast angesehen, wenn dein Programm läuft? Ich könnte mir vorstellen, dass die Abfragen schneller aufeinander folgen, als deine DAQmx-Hardware das gut findet. Versuch es doch mal mit einem Metronom oder einem Wait(ms) in deiner Hauptschleife.
(16.10.2012 16:50 )Soean schrieb: [ -> ]Hmm...hast du dir mal die Prozessorlast angesehen, wenn dein Programm läuft? Ich könnte mir vorstellen, dass die Abfragen schneller aufeinander folgen, als deine DAQmx-Hardware das gut findet. Versuch es doch mal mit einem Metronom oder einem Wait(ms) in deiner Hauptschleife.

Hm das werde ich morgen ausprobieren. Ein Versuch ist es wert.
Hallo Sundypha,
ich tippe mal auf die Counter-Tasks.
Du erstellst 2 mal eine Counter-In Task --> Packe Flow1 und 2 in eine Task.

Gruß
Ralf
(16.10.2012 19:19 )rasta schrieb: [ -> ]Hallo Sundypha,
ich tippe mal auf die Counter-Tasks.
Du erstellst 2 mal eine Counter-In Task --> Packe Flow1 und 2 in eine Task.

Gruß
Ralf

jeder Counter muss doch in seinen eigenen Task. Wenn ich beide in einen Task stecke, meckert mir der Assistent.

Code:
Fehler in DAQ-Assistent: -200147



Mögliche Ursachen:

Mehrere Counter im selben Task für Eingabeoperationen sind nicht zulässig.

Verwenden Sie für jeden Counter einen separaten Task.

Gerät: cDAQ2
Wieso auch immer ich den letzten Beitrag nicht editieren kann.

Es hat tatsächlich was mit den 2 Counter in jedem einzelnen Task zu tun. Wenn ich im cDAQ-FGV die Initialisierung nur eines FLowmeters vornehme, funktioniert alles tadellos. Ich brauche aber die 2 Counter, wie stelle ich es fertig, dass beide funktionieren?

hab noch etwas gefunden in Forum: http://www.labviewforum.de/Thread-Auswer...ntalgebern
Werde dies mal probieren und mich nochmal melden.
Seiten: 1 2
Referenz-URLs