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 

Dieses Thema hat akzeptierte Lösungen:

Zustand nach Ende eines Task definieren



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!

11.05.2015, 12:57
Beitrag #1

marhi Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: May 2015

13
2013
kA



Zustand nach Ende eines Task definieren
Hallo zusammen,

ich benutze eine NI USB-6211 Karte zur Signalerzeugung fuer ein 5V Rechtecksignal. Das entsprechende VI wird von einem Aufrufer gestartet und gestoppt (siehe Anhang).Mein Problem besteht darin, dass der Zustand nach stoppen des VI mal 0V und mal 5 V sind, scheinbar sporadisch. Wie kann ich erzwingen, dass am Ende der Pegel low ist? Ich verstehe nicht, warum das überhaupt passiert. Selbst wenn ich vor dem Task Release ein "Warten bis beendet" einbaue, ändert sich das Verhalten nicht. Normal würde ich erwarten, dass nach Vollenden des Tasks der Kanal immer wieder auf Null geht. Eine Methode, um den Kanal zurückzusetzen habe ich ebenfalls nicht gefunden. Wer kann also helfen? Vielen Dank für einen Hinweis...

marhi


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.05.2015, 13:17
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zustand nach Ende eines Task definieren
Hallo marhi,

Zitat:Wie kann ich erzwingen, dass am Ende der Pegel low ist?
Indem man einmal explizit eine Null ausgibt, bevor man den DAQmxTask beendet…

Zitat:Normal würde ich erwarten, dass nach Vollenden des Tasks der Kanal immer wieder auf Null geht.
Wieso?
Es bleibt der zuletzt gesetzte Werte erhalten!
Einen DAQmxTask zu löschen bedeutet nicht, dass die Hardware "abgeschaltet" wird…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.05.2015, 14:53 (Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2015 14:54 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Zustand nach Ende eines Task definieren
Ein andere Möglichkeit ist, die ganze Messkarte zurückzusetzen. Das ist in der Regel das Einfachste, leider es ist nur so, dass die Funktion in der Palette gut versteckt ist. Deshalb konntest Du sie auch nicht finden.
Es sei Dir aber hier verraten - bitte nicht weitersagenBig Grin - :
Mess-IO / DAQmx / DAQmx Gerätekonfiguration
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.05.2015, 15:36
Beitrag #4

marhi Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: May 2015

13
2013
kA



RE: Zustand nach Ende eines Task definieren
(11.05.2015 13:17 )GerdW schrieb:  Es bleibt der zuletzt gesetzte Werte erhalten!
Einen DAQmxTask zu löschen bedeutet nicht, dass die Hardware "abgeschaltet" wird…

Hallo GerdW. Das verstehe ich schon, aber der letzte von mir gesetzte Wert ist ja 0 - soll es zumindest sein.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.05.2015, 15:45 (Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2015 15:46 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zustand nach Ende eines Task definieren
Hallo marhi,

Zitat:soll es zumindest sein
"soll" ist nicht "muss"…
Du kannst deinen DAQmxTask jederzeit abbrechen - z.B. über den Stopp-Button in der WhileLoop. Dies kann auch passieren, während die Ausgabe noch läuft - und schon bleibt der Ausgang auf einem zufälligen Wert stehen…

Wenn man wirklich sicher sein will, welcher Wert nach einem zufälligen Abbruch der Ausgabe ausgegeben wird, dann muss man diesen Wert auch in die Ausgabe schreiben!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.05.2015, 16:21 (Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2015 16:29 von marhi.)
Beitrag #6

marhi Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: May 2015

13
2013
kA



RE: Zustand nach Ende eines Task definieren
(11.05.2015 15:45 )GerdW schrieb:  Hallo marhi,

Zitat:soll es zumindest sein
"soll" ist nicht "muss"…
Du kannst deinen DAQmxTask jederzeit abbrechen - z.B. über den Stopp-Button in der WhileLoop. Dies kann auch passieren, während die Ausgabe noch läuft - und schon bleibt der Ausgang auf einem zufälligen Wert stehen…

Wenn man wirklich sicher sein will, welcher Wert nach einem zufälligen Abbruch der Ausgabe ausgegeben wird, dann muss man diesen Wert auch in die Ausgabe schreiben!

Hallo GerdW, danke, ich hatte das auch vermutet und nach der Schleife Null Schreiben eingebaut (siehe Bild), allerdings nicht mit dem gewünschten Erfolg. Auch Warten auf Task-Ende vor der Freigabe des Tasks hat nichts gebracht.
Kann es sein, dass die Null am Ende des Puffers angehängt wird und so gar nicht zum Tragen kommt. Mit der Wait Funktion komme ich immer in den Timeout. Kann/muss der Puffer zurueckgesetzt werden, bevor ich die Null schreibe?

Vielen Dank weiterhin für jede Hilfe.
(11.05.2015 14:53 )Lucki schrieb:  Ein andere Möglichkeit ist, die ganze Messkarte zurückzusetzen. Das ist in der Regel das Einfachste, leider es ist nur so, dass die Funktion in der Palette gut versteckt ist. Deshalb konntest Du sie auch nicht finden.
Es sei Dir aber hier verraten - bitte nicht weitersagenBig Grin - :
Mess-IO / DAQmx / DAQmx Gerätekonfiguration

Hallo Lucki, danke, da funktioniert zwar, aber verlangsamt die Beendigung des VIs enorm. Da es bei mir zeitkritisch zugeht, ist das leider keine geeignete Lösung meines Problems...
Gruß, marhi


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.05.2015, 16:41
Beitrag #7

marhi Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: May 2015

13
2013
kA



RE: Zustand nach Ende eines Task definieren

Akzeptierte Lösung

Hallo GerdW,

ich habe jetzt eine Lösung, die funktioniert: ich setze den Task zunächst zurueck und initialisiere ihn dann neu mit der gewünschten Null. Ist das aber wirklich der eleganteste Ansatz? Ich habe das Gefühl, das ist eher von hinten durch die Brust ins Auge... Wenn du noch Input geben kannst für eine auch handwerklich saubere Lösung, wäre ich dankbar. Gruß, marhi


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.05.2015, 20:10
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zustand nach Ende eines Task definieren
Hallo marhi,

gib doch mal eine kleine Wartezeit zwischen dem Setzen der Null und dem löschen des Tasks.
Wenn du den Task unmittelbar nach dem Schreiben der Null löscht, wird eben dieses Ausgeben der Null wahrscheinlich gar nicht mehr ausgeführt!

Merke:
Diese (und ähnliche Funktionen wie VISAWrite) schicken die Daten nur in den Buffer des Hardwaretreibers. Dieser Treiber schickt die Daten dann im Hintergrund auf den Ausgabepin - wenn es von der Zeit her "passt", z.B. im Takt deiner Samplerate. Wenn du aber sofort den Befehl zum Abbruch des Task hinterherschickst, wird der Buffer auch gleich mit entfernt…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.05.2015, 08:10
Beitrag #9

marhi Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: May 2015

13
2013
kA



RE: Zustand nach Ende eines Task definieren
Hi GerdW,

selbst bei sehr kurzem Puffer - habe ihn auf nur 10Zyklen gesetzt - und sehr langer Wartezeit (5s) ändert sich das Verhalten nicht.
Werde darum mit meiner obigen Lösung vorlieb nehmen.

Danke und Gruß, marhi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  NI 8255, ISO-Out Zustand abfragen knuemm 1 2.982 28.05.2019 08:05
Letzter Beitrag: GerdW
  tristate, pullup und definierter Zustand ohne Strom gottfried 5 4.828 30.04.2019 13:48
Letzter Beitrag: Lucki
  Countereingang - Flanken zählen: wo Trigger definieren SeeAdler 15 14.682 18.01.2013 17:16
Letzter Beitrag: SeeAdler
  Anzahl der "single retriggerable pulses" definieren FirstSoulWinner 2 3.062 01.08.2012 09:44
Letzter Beitrag: FirstSoulWinner
  Problem mit PFI-Kanal und nach einbinden eines Express VI Andy_B 5 5.030 10.11.2011 15:09
Letzter Beitrag: Andy_B
  Create 2 Task, Fehler nach Start Task Martin Heller 1 4.912 09.09.2011 14:26
Letzter Beitrag: illuminus

Gehe zu: