INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Start/Stopp DAQ



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!

07.09.2006, 07:17 (Dieser Beitrag wurde zuletzt bearbeitet: 07.09.2006 07:18 von Pascal.)
Beitrag #1

Pascal Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: May 2006

8.00
2006
kA


Deutschland
Start/Stopp DAQ
Hallo,

ich habe ein kleines Problem. Ich habe ein Programm (siehe Anhang) geschrieben, dass Motoren über Fequenzumrichter steuert. Hier werden mit DO und AO Werte für die Motoren vorgegeben. DAs Programm funktioniert zwar, aber wie ich schon mitbekommen habe, solle man ja den DAQmx Task starten und beenden außerhalb von der Schleife machen. Ich habe allerdings z.B. den AO auslesen in ein SubVI gepackt, um das Programm übersichtlicher zu machen. WEnn ich jetzt das Hauptprogramm starte, wird ja andauernd der Task gestartet, der WErt ausgelesen und wieder beendet. Kann das Probleme geben? Gibt es hierfür eine bessere Lösung? WEnn ich jetzt noch die ganzen Fehlerstatus der einzelnen SubVIs auslesen und mit Stopp verbinde, dann kann ich ja gar nichts mehr erkennen.



noch ne anmerkung. reicht die zip datei runterzuladen!

Pascal


Angehängte Datei(en)
Sonstige .vi  Ansteuerung_Motoren.vi (Größe: 89,49 KB / Downloads: 192)

Sonstige .vi  AI.vi (Größe: 21,22 KB / Downloads: 201)

Sonstige .vi  AO2.vi (Größe: 20,85 KB / Downloads: 206)

Sonstige .vi  DO2.vi (Größe: 20,19 KB / Downloads: 171)

Sonstige .vi  Drehmomentmessung.vi (Größe: 23,14 KB / Downloads: 171)

Sonstige .zip  VI.zip (Größe: 109,1 KB / Downloads: 190)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.09.2006, 08:54
Beitrag #2

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.437
Registriert seit: Feb 2005

8.2.1 - 2011
2004
DE

724xx
Deutschland
Start/Stopp DAQ
Hallo Pascal,

das Programm funktioniert. Das ist doch schon was.
Es ist übrigens nicht verboten einen Task ständig zu starten und wieder zu beenden. Dafür aber vielleicht nicht schön programmiert.

Die Sollwertvorgabe (50 Hz etc.) kannst Du aber anders programmieren.
So wie ich das sehe könntest Du jetzt mehrere Sollwerte gleichzeitig vorgeben, wenn mehrere Schalter gedrückt sind.
Das kannst Du umgehen wenn Du einen Enum (FP-Palette -> Ring&Enum) verwendest, und an diesen eine Casestruktur anschließt. Damit kannst Du die 4 Case-Strukturen durch eine ersetzen.
Alternativ kannst Du auch Optionsfelder verwenden.
Ich hab Dir ein kleines Beispiel angehängt.
Da wäre es dann ohne weiteres möglich statt des Physikalischen Kanal die TaskId an das SubVI zu übergeben und den Task außerhalb des VI zu Starten und zu beenden.

Grüße
Andreas


Angehängte Datei(en)
Sonstige .vi  Enum_Pascal.vi (Größe: 16,72 KB / Downloads: 207)

Geht nicht, gibts nicht!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.09.2006, 08:54
Beitrag #3

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Start/Stopp DAQ
' schrieb:Hallo,

ich habe ein kleines Problem. Ich habe ein Programm (siehe Anhang) geschrieben, dass Motoren über Fequenzumrichter steuert. Hier werden mit DO und AO Werte für die Motoren vorgegeben. DAs Programm funktioniert zwar, aber wie ich schon mitbekommen habe, solle man ja den DAQmx Task starten und beenden außerhalb von der Schleife machen. Ich habe allerdings z.B. den AO auslesen in ein SubVI gepackt, um das Programm übersichtlicher zu machen. WEnn ich jetzt das Hauptprogramm starte, wird ja andauernd der Task gestartet, der WErt ausgelesen und wieder beendet. Kann das Probleme geben? Gibt es hierfür eine bessere Lösung? WEnn ich jetzt noch die ganzen Fehlerstatus der einzelnen SubVIs auslesen und mit Stopp verbinde, dann kann ich ja gar nichts mehr erkennen.
noch ne anmerkung. reicht die zip datei runterzuladen!

Pascal


Das schreit geradezu nach einer "Functional Global" ["Action Engine"].

Ich hab mal ein Demo zu dem Thema erstellt: AI Action Engine Demo (LV 7.1)

Wenn noch Fragen sind --> sach bescheid.

Grüße
CB

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2006, 08:08
Beitrag #4

Pascal Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: May 2006

8.00
2006
kA


Deutschland
Start/Stopp DAQ
Hallo,

danke für eure Antworten. Das mit den Optionsfeldern ist gut, da hätte ich auch selber drauf kommen können. Die "Action Engine" muss ich mir mal genau anschauen, sieht nicht ganz so einfach aus.

Pascal
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2006, 11:22 (Dieser Beitrag wurde zuletzt bearbeitet: 08.09.2006 11:23 von cb.)
Beitrag #5

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Start/Stopp DAQ
' schrieb:Hallo,

danke für eure Antworten. Das mit den Optionsfeldern ist gut, da hätte ich auch selber drauf kommen können. Die "Action Engine" muss ich mir mal genau anschauen, sieht nicht ganz so einfach aus.

Pascal


schaus dir schnell anSmile
wenn man's mal begriffen hat, dann möchte man das nicht mehr missen.

nur EIN Vorteil gegenüber "herkömmlicher LV Programmierung" sei genannt: man spart sich ohne Ende Drähte, weil die Daten, die das VI braucht in dem VI selber gespeichert werden (in dem NICHT initialisierten Shift-Register). Die Instanzen des VIs lassen sich (sofern das vom Programm-Ablauf her möglich ist) als SubVI kreuz und quer durch das Programm verteilen, ohne, dass man immer die Drähte überall durchschleifen muss. Das Datenfluss-Prinzip kann man trozdem nutzen, weil ja noch der Error-Cluster da ist ...

und mal ehrlich, bei DEN KUPFERPREISEN HEUTZUTAGE ... das LOHNT SICHSmile

Mehr Infos zu dem Thema gibt es auch in der Application Note "mltithrd.pdf" (YourLabVIEWDirmanualsmltithrd.pdf)

Grüße
CB

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2006, 13:59
Beitrag #6

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.437
Registriert seit: Feb 2005

8.2.1 - 2011
2004
DE

724xx
Deutschland
Start/Stopp DAQ
Hallo CB,

ich hab mir die Action Engine mal angesehen.
Das sieht sehr interessant aus. Nach dem zweiten mal hinsehen hab ich dann auch begriffen wie es funktioniert.
Ich werde das demnächst mal verweden und sehen wie ich mit dem Ansatz zurechtkomme.
Die Idee ist eigentlich genial!

Grüße
Andreas

Geht nicht, gibts nicht!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.09.2006, 14:56
Beitrag #7

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Start/Stopp DAQ
' schrieb:Die Idee ist eigentlich genial!

schade, dass ich das nicht erfunden habWink

Die "Action Engine" ist eigentlich nichts weiter als eine "Functional Global":

die Idee geht zurück zu LabVIEW 2. Da gab es noch keine globalen Variablen. Irgend ein findiger Programmierer hat damals entdeckt, dass man ein nicht initialisiertes Shift-Register dazu verwenden kann Daten zwischenzuspeichern.

Ich hab mal ein Demo zum Thema Functional Globals programmiert: klickste hier

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Analoges signal mit Start und Stopp trigger chrigi28 12 14.282 31.08.2011 14:03
Letzter Beitrag: chrigi28

Gehe zu: