LabVIEWForum.de
Digitales Signal eines Moduls ansteuern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Digitales Signal eines Moduls ansteuern (/Thread-Digitales-Signal-eines-Moduls-ansteuern)



Digitales Signal eines Moduls ansteuern - mprocket - 05.01.2018 09:46

Hallo liebe Community, ich bin neu hier im LabVIEW Forum und habe eine Frage bezüglich der digitalen Ausgabe.

Zur verwendeten Hardware:
- cDAQ 9174 mit dem Modul NI 9375
- LabVIEW 2016 Version 16.0f2 (32bit) auf Windows 7

Nun meine Fragestellung: Ich benutze das oben erwähnte Modul und möchte nun nur einen digitalen Ausgang schalten. Dabei sollen die anderen Ausgänge unverändert bleiben. Meine Lösung befindet sich im Anhang und funktioniert auch super, jedoch wurde mir gesagt, dass ich pro Modul nur einen Virtuellen Kanal erzeugen darf. Warum? Kann ich mein VI so verwenden oder besteht hier ein Problem?

Für hilfreiche Tipps bin ich sehr dankbar.

Grüße
Marcel


RE: Digitales Signal eines Moduls ansteuern - GerdW - 05.01.2018 09:56

Hallo Marcel,

Zitat:Ich benutze das oben erwähnte Modul und möchte nun nur einen digitalen Ausgang schalten.
In deinem VI schaltest du aber 2 Ausgänge. Was willst du genau: einen oder zwei Ausgänge?

Zitat:Dabei sollen die anderen Ausgänge unverändert bleiben.
Wenn ein Ausgang bisher FALSE war und du ihm wieder ein FALSE schickst, dann wird er zwischendrin nicht schalten.
Wo ist also das Problem?

Zitat:jedoch wurde mir gesagt, dass ich pro Modul nur einen Virtuellen Kanal erzeugen darf. Warum? Kann ich mein VI so verwenden oder besteht hier ein Problem?
Du solltest die Fehlermeldung genauer lesen!
Du kannst das Problem bekommen, dass du pro Modul nur einen Task anlegen solltest. Warum machst du das nicht einfach: einen DAQmxTask, der mehrere Channels verwaltet? So, wie es in den BeispielVIs gezeigt wird!?

So z.B.:
[attachment=58583]


RE: Digitales Signal eines Moduls ansteuern - mprocket - 05.01.2018 10:34

Hallo Gerd,

danke für deine schnelle Antwort. Mein obiges Programm liefert ja keinen Fehler, mir wurde lediglich durch einen Kollegen gesagt ich solle doch nur einen Task erstellen.

Wie auch immer, habe ich nun versucht durch ein 2. Programm (siehe Anhang) mein Problem genauer zu beschreiben. Ich benutze einen Zustandsautomat. Ich habe nun umgesetzt nur 1 Task für das Modul zu erstellen. Jedoch liegt darin mein Problem: Beispielsweise möchte ich die Kupplung einschalten. Daraufhin springt das Programm in den Zustand Kupplung einschalten, jedoch wird hier nun auch der Wert der Drehrichtung geschrieben. Ich weiß aber nicht ob der Benutzer die Drehrichtung bereits auf True oder False gesetzt hat. Wie kann ich also NUR den Wert für die Kupplung auf True setzen und den Wert der Drehrichtung dabei unverändert lassen?

Ich hoffe mein Problem ist nun etwas genauer beschrieben.

Danke und Grüße
Marcel


RE: Digitales Signal eines Moduls ansteuern - GerdW - 05.01.2018 11:07

Hallo Marcel,

nimm doch einfach ein weiteres Schieberegister, in dem du den aktuellen Zustand deiner DOs speicherst!
In den jeweiligen States wird dann eben dieser Zustand aktualisiert and per DAQmx ausgegeben.

Man kann in einer Statemachine mehr als nur den nächsten Zustand in Schieberegistern speichern…
(Hast du dir mal das Statemachine-Beispielprojekt angeschaut, welches mit LabVIEW mitgeliefert wird!? Auch dort gibt es einen Datencluster, den man anpassen soll!)


RE: Digitales Signal eines Moduls ansteuern - mprocket - 05.01.2018 11:49

Hallo Gerd,

vielen Dank! Ich habe die Lösung!
Ich habe den aktuellen Zustand in ein Schieberegister geschrieben und dann mit der Funktion "Teil-Array ersetzen" nur den gewünschten Wert geändert.

Danke nochmal für den Hinweis mit dem Schieberegister.

Schönes Wochende
Marcel