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 

Programm stoppt nicht



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.10.2016, 15:03
Beitrag #1

Alighieri Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: Mar 2015

2011
-
kA



Programm stoppt nicht
Hallo zusammen,

anbei findet ihr mein LabView Programm (auf das Problem runtergelöscht), in dem ich in einer Schleife (der unteren) analoge Werte von einer NI Karte auslese und in eine Queue gebe, zusammen mit der Zeit.
In der oberen Schleife sollen dann die Elemente aus der Queue entnommen und gespeichert werden. Wenn ich jetzt aber das Programm beenden möchte durch Drücken der Stopp Taste, stoppen zwar die Schleifen, aber nicht das VI. Ich habe schon mit der Highlight Funktion nach dem Problem gesucht aber blieb bisher erfolglos. Was mir jedoch auffiel ist, dass die Speicher-Schleife immer einmal mehr läuft als die Erzeuger-Schleife was ja eigentlich nicht sein kann oder?
Es gehen zwar keine Werte verloren, aber richtig kann das ja nicht sein.
Ich hoffe ihr könnt mir weiterhelfen.

MfG


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  Test.vi (Größe: 81,54 KB / Downloads: 210)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.10.2016, 16:41 (Dieser Beitrag wurde zuletzt bearbeitet: 07.10.2016 16:41 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Programm stoppt nicht
Hallo Alighieri,

THINK DATAFLOW!
So ziemlich alles hat hier mit Race Conditions zu tun…

Außerdem:
- Warum keine Timeouts bei den Queue-Operationen?
- Warum Controls ohne Label?
- Warum wird die Queue nirgends entsorgt?
- Warum wird der Stopp-Button per PropertyNode abgefragt?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.10.2016, 17:35
Beitrag #3

Alighieri Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: Mar 2015

2011
-
kA



RE: Programm stoppt nicht
Hallo GerdW,

ich bin kein Experte in LV deswegen ist manches 'komisch' Big Grin aber das mit den RaceConditions klingt plausibel.
Aber wie kann man das Problem denn jetzt lösen?

Außerdem:
zu 1: Queue Timeout ist default -1. Was genau die Timeouts aber machen ist mir noch schleierhaft.
zu 2: ist ja nur ein Beispiel
zu 3: Queue entfernen hab ich ausversehen mitgelöscht aber ändert nicht viel an dem eigentlichen Problem
zu 4: ja okay geht auch über LokaleVariable oder viele andere Möglichkeiten, ändert aber auch nichts.

Über eine Queue in einer zweiten Schleife zu speichern ist doch der Standard oder nicht?

MfG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.10.2016, 18:37
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Programm stoppt nicht
Hallo Alighieri,

Zitat:1: Queue Timeout ist default -1. Was genau die Timeouts aber machen ist mir noch schleierhaft.
Dabei wird das doch in der LabVIEW-Hilfe beschrieben…

Zitat:2: ist ja nur ein Beispiel
Zeugt aber von schlechten Programmiergewohnheiten - und macht dein VI nicht besser…

Zitat:3: Queue entfernen hab ich ausversehen mitgelöscht aber ändert nicht viel an dem eigentlichen Problem
Doch, das würde eine Menge bewirken!
Wenn man nämlich eine Queue-Referenz ordentlich löscht, werden noch wartende Dequeue-Funktionen beendet!

Zitat:4: ja okay geht auch über LokaleVariable oder viele andere Möglichkeiten, ändert aber auch nichts.
Ja, das ändert nicht direkt etwas am Problem.
Das Problem sind ja auch eher die Race Conditions, die du genau hier programmiert hast!

Zitat:Über eine Queue in einer zweiten Schleife zu speichern ist doch der Standard oder nicht?
Ja, das stimmt.
Und deswegen gibt es ja auch fertige Beispiel-VIs und -Projekte, die den Umgang damit demonstrieren!
Einfach mal diese Beispiele anschauen!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.10.2016, 13:30
Beitrag #5

Alighieri Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: Mar 2015

2011
-
kA



RE: Programm stoppt nicht
Hallo Gerd,

ja ich hätte mal direkt in die Beispiele schauen sollen. Anbei, falls es jemanden interessiert, habe ich mein Minimalbeispiel angehängt. Funktioniert jetzt auf diese Weise wie es soll.

MfG


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  Test_v2.vi (Größe: 83,91 KB / Downloads: 235)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.10.2016, 17:10 (Dieser Beitrag wurde zuletzt bearbeitet: 09.10.2016 17:11 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Programm stoppt nicht
Hallo Alighieri,

ich wiederhole mal einen Punkt aus Beitrag #2:
Zitat:- Warum Controls ohne Label?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Programm funkioniert nach LV-Neustart nicht mehr TeCruz 9 6.069 23.03.2018 13:33
Letzter Beitrag: TeCruz
  Vi stoppt nicht b.s 2 3.634 10.01.2015 17:00
Letzter Beitrag: GerdW
  LabView stürtz bei Programm start ab, weiß nicht warum ? Stadi 5 5.171 03.05.2014 18:21
Letzter Beitrag: Trinitatis
  LabVIEW stoppt nicht feinm 3 4.591 31.07.2013 20:43
Letzter Beitrag: jg
  Problem mit Occurrences - Programm beendet nicht Geistesblitz 8 7.944 07.09.2011 13:57
Letzter Beitrag: Y-P
  Stop-Button stoppt nicht zwei While-Schleifen wiktor 2 8.862 07.07.2011 19:29
Letzter Beitrag: Lucki

Gehe zu: