LabVIEWForum.de - bin konfus....

LabVIEWForum.de

Normale Version: bin konfus....
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
ich kasper nun seit Stunden daran, über eine NI 6023 drei verschiedene Relais digital anzusteuern. Mal gehts, dann wieder nicht. Die Relais bedingen sich gegenseitig, so dass ich sowohl "an" als auch "aus" jeweils programmatisch genau definieren muß.

Aufgefallen ist mir dabei, dass sich die mit dem Assistenten erstellten Aufrufe bei mehrmaliger Arbeit innerhalb eines VIS gegenseitig im Weg zu scheinen stehen und es dort zu Fehlermeldungen kommt.
Gibt es noch eine Alternative zu dem Assistenten?
Hat mal jemand ein VI, in dem verschiedene DOs herausgegeben werden?...also über eine Line mit einem definierten Zeitabstand "on" und "off" herausgegeben wird und dieses dann in einer statemaschine auch mehrmals unbehelligt voneinander aufgerufen werden kann?
Ok, hab mal ne Nacht drüber geschlafen und traue mich mit meinem Nicht-Assistenten-"Blindversuch" (ich hab hier zuhause keine Karte, so dass ich es nicht testen kann) mal hierher.
Würde das VI dazu taugen, ein Relais anzuschalten und nach einer definierten Wartezeit wieder auszuschalten? Oder habe ich dort schon einen grundsätzlichen Fehler eingebaut?
Kann ich dieses VI als Sub mehrmals nacheinander in einem VI aufrufen lassen, ohne dass sich da etwas (Kanäle, tasks, lines) in die Quere kommt?
Muß ich eine Schleife einbauen, oder reicht das einmalige Signal für die Ansteuerung aus?

Wie kann ich eventuell invertieren? Momentan reagiert das Relais bei Low mit Aktivität. Wie sieht ein solches Schaltverhalten bei Start des Programmes aus? Gibt die Karte dann zuallererst ein Low raus? Wenn ja, würde das bedeuten, ich müßte zum Programmstart erst alle Relais auf high setzen, damit sie einwandfrei funktionieren?

Lv86_img
[attachment=20861]
[attachment=20862]
Sollte so funktionieren. Was Du nicht brauchst, ist "DAQmx Wait until done".

Gruß Markus
funktioniert nichtHuh

Der Versuch das Relais zum zweiten mal anzusprechen scheitert mit dieser Fehlermeldung[attachment=20868]
Das Relais hat aber auch auf den ersten nicht reagiert.

Ein anderer Versuch war das VI aus dem Beispielfinder zu nehmen
Siehe [attachment=20869]
Dort funktioniert zwar das Relais, aber leider auch ein weiteres ungewollt.
Zur Erklärung..... drei Relais sollen angesprochen werden. Zwei steuern einen Stellmotor in jeweils einer Richtung an. Daher ist es notwendig, dass beide nicht gleichzeitig arbeiten, da sonst der Motor wegen Orientierungsverlust die Arbeit quittiert. Das dritte ist der Not-Aus der Anlage.
Alle drei reagieren momentan auf den LOW Zustand mit Aktivität und sind auf der Karte an DIO0, DIO5 und DIO7 angeklemmt.

Ich brauche, glaube ich, mal ne Kurzeinweisung in "digitalem Denken"
So [attachment=20870] sind alle im Ruhezustand

Wer kann mir auf die Sprünge helfen?
Lass' mal das Start Task nach der Wartezeit weg. Das hat da auch nichts verloren. Wink

Gruß Markus
Danke,
das Sub läuft, aber von einem VI aufgerufen kommt diese Fehlermeldung
[attachment=20872]

Warum?


Noch ne andere Frage..... Wenn ich beim Schreiben auf "Digital Bool, 1 Leitung, 1 Wert" stelle funktioniert das nur als "Umschalter", oder? Wenn ich den Zustand exakt steuern will, muß ich dann auf "U8" stellen? Wenn ja, welche Dateneingabe erwartet das VI dann?
Lad' mal das VI hoch, mit dem Du das SubVI aufrufst.

Statt U8 kannst Du auch 1D-Boolean (N-Lines) verwenden. Bei U8 musst Du halt eine Dezimalzahl angeben.

Gruß Markus
Das VI ist zu umfangreich um es hochzuladen.

Hab es grad mal im Kleinen nachgebaut, aber dort läuft der Aufruf einwandfrei.
Hast Du in Deinem großen VI die IO's schonmal angesprochen und dann keinen Clear-Task danach gemacht?

Gruß Markus
Funktioniert doch, mehrere Digitale Lines anzusprechen?
Hier mal eine kleine Modifikation, SubVIs sind jetzt reentrant:

[attachment=20894]
[attachment=20896]
[attachment=20895]

Es gäbe sicher bessere Lösungen, aber für den Anfang...

Hier noch ein VI, mit dem du immer Line0/5/7 parallel schreiben kannst:
[attachment=20897]

(allesLv86_img)

Gruß, Jens
Seiten: 1 2
Referenz-URLs