LabVIEWForum.de
DAQ_Assistenten ersetzen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: DAQ_Assistenten ersetzen (/Thread-DAQ-Assistenten-ersetzen)



DAQ_Assistenten ersetzen - LAByrinth - 24.10.2008 15:52

Hallo zusammen. Ich sitze seit mehreren Monaten an einer Aufgabe und langsam habe ich es satt. Bitte um Hilfeee!

Ein Prüfstand wird duch ein Software gesteuert (LV7.1, Programmierer nicht mehr da, kein Doku, soll verbessert werden!). In diesem Programm befinden sich mehrere Daq Assistenten für digitale und analoge; Input und Output.

Insgesamt ist das Programm bei der Datenerfassung zu langsam. Mir wurde in diesem Forum mal geraten die Daq-Assis zu ersetzen. Ich habe nun vorerst zwei digitale Ausgänge (die einfach jeweils einen Schalter umlegen) durch Daq-Mx ersetzt. Es funktioniert auch.
Kann man bestimmte Daq-Mx darin zusammenfügen um das zweimalige initialisieren in jedem Schleifendurchlauf zu vermeiden?
Erklärung: Es heist, dass die Daq-Assis in der While-Schleife in jedem Durchlauf initialisiert werden. Daher Umwandlung in Daq-mx und eventl. zusammenfügen. Wenn das nähmlich klappt, kann ich alle daq-assis rausschmeisen. Meine Gedanke jedenfalls..............falls es machbar ist............Huh

vielen Dank schon mal!


DAQ_Assistenten ersetzen - IchSelbst - 24.10.2008 17:09

Was du auf jeden Fall machen kannst, ist den Create und den Start einer jeden der beiden Tasks links aus der While-Schleife hinauslegen und den Stopp jeder Task rechts aus der While-Schleife hinauslegen. Die Task-Variablen (also den Wire) ziehst du dann durch die While-Schleife durch und das Ausgabeelement schließt du hier an.

Du kannst auch im MAX eine Task erstellen mit zwei Ausgangspins. Dann brauchst du nur eine Task im LV-Programm.


DAQ_Assistenten ersetzen - jg - 24.10.2008 19:32

Weiterer Tip: Ändere die Instanz vom DAQmx Write VI:
[attachment=15023]
Dann sparst du dir nach Screenshot unnötige Umwandlung ins Dynamic Data Format.

Und natürlich kannst du die beiden DigitalLines auch zu einem Task zusammenfassen. Das würde ich aber nur machen, wenn du wirklich immer beide Lines "gleichzeitig" schaltest. Dazu kannst du z.B. 2 Create Channel VIs hintereinanderschalten. Du musst dann natürlich eine andere Instanz beim Write VI auswählen.

Ich empfehle auch mal einen Blick auf die Bsps. im NI-Examplefinder zu DAQmx.

Gruß, Jens


DAQ_Assistenten ersetzen - LAByrinth - 31.10.2008 13:16

vielen Dank "IchSelbst" und "Jens G",
ich werde eure Ratschläge zum Herzen nehmen.

@Jens G:
"Ändere die Instanz vom DAQmx Write VI"
eeeeee, was meinst du genau!

@IchSelbst
Create und den Start einer jeden der beiden Tasks links aus der While-Schleife hinauslegen und den Stopp jeder Task rechts aus der While-Schleife hinauslegen
Welche Vorteil würde das bringen?
Das könnte ich realisieren, aber Frage: Das Programm muss immer gestartet bleiben. Zwischendurch wird der Schalter betätigt. Hat das ein Nachteil.
d.h. während das Programm läuft, kann es sein, dass der Hauptschalter ausgeschaltet und nach einer Zeit eingeschaltet wird. Muss der "Stopp" sich dann nicht in der While-Schleife befinden.

Gruß.


DAQ_Assistenten ersetzen - IchSelbst - 31.10.2008 13:40

' schrieb:eeeeee, was meinst du genau!
Geht mal bei dem Icon des VIs im Kontextmenü auf Sichtbar. Dort gibt es meherer Einträge. Einer geht sinngemäß in die Richtung "polymorphe Auswahl anzeigen".
Hinweis:
Viele Task-VIs sind polymorph. Je nach Task muss man auswählen (oder wird intuitiv automatisch gewählt), welche Instanz des VIs verwendet werden soll. Folge der Auswahl kann z.B. sein, dass der Dateneingang ein einzelner Wert ist oder ein 1D- oder auch ein 2D-Array. Der Typ des Dateneingangs am VI ändert sich also - der Name des VIs bleibt aber bestehen.

Zitat:Welche Vorteil würde das bringen?
Einen erheblichen Geschwindigkeitsvorteil.
Eine Task, aus der man eigentlich nur lesen(schreiben) will, muss nicht ständig geöffnet und geschlossen werden. Prinzipiell reicht einmal Öffnen etc. aus.

Zitat:Frage: Das Programm muss immer gestartet bleiben. Zwischendurch wird der Schalter betätigt. Hat das ein Nachteil.
Das hat - normalerweise - keinen Nachteil.
Zwischenfrage: Ist das der Schalter, der abgefragt werden soll? Oder der Hauptschalter?

Zitat:d.h. während das Programm läuft, kann es sein, dass der Hauptschalter ausgeschaltet und nach einer Zeit eingeschaltet wird. Muss der "Stopp" sich dann nicht in der While-Schleife befinden.
Der Stopp, der jetzt in der Schleife steht, ist ja ein Stopp für die Task. Ein Task-Stopp hat mit den eigenlichen IOs, die möglicherweise bei einem Hauptschalter-Aus nicht mehr vorhanden sind, nichts zu tun.
Wenn du jedoch meinst, ein Stopp-Signal ausgeben zu müssen, dann geht das anders als mit Stopp-Task.

Ob der Hauptschalter aus oder ein ist, ist für die Task irrelevant. Die Task an sich (respektive dein Programm) kann nicht feststellen, ob ein Eingang deswegen Low ist, weil der Hauptschalter aus ist oder weil keiner den entsprechenden Taster am Eingang gedrückt hat.


DAQ_Assistenten ersetzen - Kvasir - 31.10.2008 14:14

' schrieb:Erklärung: Es heist, dass die Daq-Assis in der While-Schleife in jedem Durchlauf initialisiert werden. Daher Umwandlung in Daq-mx und eventl. zusammenfügen. Wenn das nähmlich klappt, kann ich alle daq-assis rausschmeisen. Meine Gedanke jedenfalls..............falls es machbar ist............Huh

vielen Dank schon mal!

Zitat:@IchSelbst
Create und den Start einer jeden der beiden Tasks links aus der While-Schleife hinauslegen und den Stopp jeder Task rechts aus der While-Schleife hinauslegen
Welche Vorteil würde das bringen?
Das könnte ich realisieren, aber Frage: Das Programm muss immer gestartet bleiben. Zwischendurch wird der Schalter betätigt. Hat das ein Nachteil.
d.h. während das Programm läuft, kann es sein, dass der Hauptschalter ausgeschaltet und nach einer Zeit eingeschaltet wird. Muss der "Stopp" sich dann nicht in der While-Schleife befinden.

Genau das ist ja der Punkt, den du zuerst angesprochen hast. Die Assistenten initialisieren den Task bei jedem Durchlauf neu. Das machst du nun auch! Bei jedem Schleifendurchlauf erzeugst du den Tast, startest und stopst ihn.
Deine angesprochene Zeitersparnis ist genau die, dass du den Tast vor der Schleife erstellst, startest und (hinter der Schleife) stopst.

Grüße


DAQ_Assistenten ersetzen - LAByrinth - 31.10.2008 17:44

Ok, ich glaube ich habe es kapiert. Die Kanäle braucht man nicht jedesmal zu initialisieren. Einmal aufgemacht, stehen sie zur Verfügung.
Danke Kvasir, IchSelbst.

' schrieb:Zwischenfrage: Ist das der Schalter, der abgefragt werden soll? Oder der Hauptschalter?
Ich meine den Hauptschalter, der sich in meinem Programm befindet.
Wenn ich die Tasks Create, Start und Stopp aus der Schleife rausnehme, könnte ich also immer noch meinen Hauptschalter-"Button" bedienen, d.h Einschalten, Ausschalten und wieder einschalten ohne das Program erneut starten zu müssen. Der Kanal bleib bestehen. Korrekt? :-)

Neues aber ähnliches Problem:
So einen Daq-Assi mit einer einfachen digitalen Output konnte ich zwar in Daq-Mx konvertieren,
jedoch habe ich Probleme mit dem Daq-Assi der analoge Signale ausgibt.
Kann mir jemand diesen einen Daq konvertieren?
Sie befindet sich eigentlich in meiner While-Schleife und gibt eine analoge Spannung an den E-Motor weiter. Die Spannung wird zuvor aus dem eingegebenen Drehzahl umgerechnet.
(Achtung: LabVIEW7.1, falls ihr noch die Möglichkeit habt. Im Notfall würde 8.2 gehen, dann muss ich selber das gleiche in 7.1 realisieren. Höhere kann ich mir gar nicht ansehen!)

Schönes Wochenende!


DAQ_Assistenten ersetzen - IchSelbst - 31.10.2008 18:00

' schrieb:Korrekt? :-)
Ja.


DAQ_Assistenten ersetzen - LAByrinth - 03.11.2008 17:07

Würde mich freuen, wenn jemand einen Lösungsvorschlag zum obigen Problem machen würde:
Daq-Assi konvertieren!

Gruß!


DAQ_Assistenten ersetzen - IchSelbst - 03.11.2008 18:54

' schrieb:Daq-Assi konvertieren!
Updaten aufLv82_img! Dort geht es automatisch.

Oder selber machen.

Oder hier Abschreiben: siehe Bilder.

Oder von jemandem konvertieren lassen von 82 auf 7: Siehe ZIP-File