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 

Rückgabewerte von Sub-VIs im Fehlerfall



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!

08.01.2009, 11:38
Beitrag #1

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
Rückgabewerte von Sub-VIs im Fehlerfall
Moin zusammen,

ich habe immer Probleme mit den Übergabeparametern von SUB-VIs. Als Beispiel habe ich mal ein VI angehängt, in dem aus einer HDF5 Datei ein Dataset ausgelesen wird.

Übergabeparameter sind:

-Pfad zu der Datei
-Name des Datasets innerhalb der Datei
-Datentyp des Datasets (bei mir ein 1D-Array aus Clustern)
-Error in

Rückgabeparameter:
-Ref out der Datei
-Daten aus dem Dataset
-Error out

Im normalfall funktioniert alles so wie es soll. Wird allerdings ein Fehler übergeben, so weiß ich nicht, ob meine Rückgabewerte so sinnvoll sind. "Refout" und "Daten" machen mir sorgen. kann mir da jemand tipps geben, was ich korrekterweise zurück gebe wenn etwas schief gegangen ist?

Lv82_img
Sonstige .vi  HDF5_ReadDataset.vi (Größe: 23,91 KB / Downloads: 236)


Viele Dank,
Torsten

P.S. Ich hoffe das ist so verständlich, ich bin grad bissl verwirrt.

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.01.2009, 14:09
Beitrag #2

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Rückgabewerte von Sub-VIs im Fehlerfall
Verstehe ich ehrlich nicht, wie ein Experte wie Du so etwas fragen kann. Es ist doch der Normalfall, daß, wenn ein Sub-VI als Rückgabewert einen Fehler meldet, alle anderen Rückgabewerte nicht zu gebrauchen sind. Man muß dafür doch nicht im Sub-VI etwas ändern, sondern man wird im Anschluß an das Sub-VI eine Fehlerbehandlung anschließen. Oftmals wird man das gesamte Programm beenden, aber es kann natürlich auch etwas anderes gemacht werden, immer unter Berücksichtigung dessen , daß die Rückgabewerte ungültige, nicht zu verwendende Werte sind.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.01.2009, 14:44
Beitrag #3

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
Rückgabewerte von Sub-VIs im Fehlerfall
Entweder verwende den error cluster und verschiebe alles nachfolgende in eine case struktur, wobei der error cluster an den case selector angeschlossen ist.
Die andere moeglichkeit waere die ref out auf gueltigkeit zu ueberpruefen mit der LabVIEW primitive function ist not a path/constant/refnum
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.01.2009, 14:51
Beitrag #4

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
Rückgabewerte von Sub-VIs im Fehlerfall
' schrieb:Verstehe ich ehrlich nicht, wie ein Experte wie Du so etwas fragen kann. Es ist doch der Normalfall, daß, wenn ein Sub-VI als Rückgabewert einen Fehler meldet, alle anderen Rückgabewerte nicht zu gebrauchen sind. Man muß dafür doch nicht im Sub-VI etwas ändern, sondern man wird im Anschluß an das Sub-VI eine Fehlerbehandlung anschließen. Oftmals wird man das gesamte Programm beenden, aber es kann natürlich auch etwas anderes gemacht werden, immer unter Berücksichtigung dessen , daß die Rückgabewerte ungültige, nicht zu verwendende Werte sind.

Stimme da schon irgendwie mit dir überein. Das Problem entsteht bei mir, wenn ich eben trotz Fehler das Programm nicht beenden möchte. Klar, der Fehler wird dann protokolliert und gelöscht, so dass das Programm normal weiter laufen kann. Allerdings ist es in dem Beispiel VI von mir ja so, dass ich in der Casestruktur etwas zurück geben muss. Sicherlich kann ich da irgendwas anschließen, weil es ja eh nicht zu verwerten ist (weil ein Fehler da ist). Theoretisch kann ich also irgendein Datenpaket zurück geben und irgeneine Refnum. In meinem VI habe ich an den "Refnum out" Anschluss die Konstante "keine refnum" angeschlossen.

Wollte also nur wissen, was man so zurück geben kann, wenn man eigentlich nix zurück geben möchte,..

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.01.2009, 15:36
Beitrag #5

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
Rückgabewerte von Sub-VIs im Fehlerfall
' schrieb:Stimme da schon irgendwie mit dir überein. Das Problem entsteht bei mir, wenn ich eben trotz Fehler das Programm nicht beenden möchte. Klar, der Fehler wird dann protokolliert und gelöscht, so dass das Programm normal weiter laufen kann. Allerdings ist es in dem Beispiel VI von mir ja so, dass ich in der Casestruktur etwas zurück geben muss. Sicherlich kann ich da irgendwas anschließen, weil es ja eh nicht zu verwerten ist (weil ein Fehler da ist). Theoretisch kann ich also irgendein Datenpaket zurück geben und irgeneine Refnum. In meinem VI habe ich an den "Refnum out" Anschluss die Konstante "keine refnum" angeschlossen.

Wollte also nur wissen, was man so zurück geben kann, wenn man eigentlich nix zurück geben möchte,..
Hilft das vll.?
[Bild: ErrorCase.JPG]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.01.2009, 15:41
Beitrag #6

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
Rückgabewerte von Sub-VIs im Fehlerfall
' schrieb:Hilft das vll.?
[Bild: ErrorCase.JPG]


Kann mir jemand irgendwas hartes geben,.. Brauch was wo ich meinen Kopf gegen schlagen kann. Danke!

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.01.2009, 15:45
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Rückgabewerte von Sub-VIs im Fehlerfall
' schrieb:Sicherlich kann ich da irgendwas anschließen, weil es ja eh nicht zu verwerten ist (weil ein Fehler da ist). Theoretisch kann ich also irgendein Datenpaket zurück geben und irgeneine Refnum. In meinem VI habe ich an den "Refnum out" Anschluss die Konstante "keine refnum" angeschlossen.
Ja, genau.
Es ist völlig egal, ob und was du im Fehlerfall zurückgibst. Im aufrufenden VI hat die Fehlerüberprüfung, die ja indirekt eine Freigabe der Rückgabewerte darstellt, immer Vorrang vor der Auswertung der Rückgabewerte. So gesehen schließt du also an, was sinnvoll ist - also Standardwerte.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.01.2009, 15:58 (Dieser Beitrag wurde zuletzt bearbeitet: 08.01.2009 16:03 von eg.)
Beitrag #8

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Rückgabewerte von Sub-VIs im Fehlerfall
' schrieb:Hilft das vll.?
[Bild: ErrorCase.JPG]


Was soll das Platzieren des Outputs innerhalb der Case-Struktur eigentlich bewirken?

Ja ich mache schon seit langem die Inhalte aller meiner SubVIs in No-Error-Case. Ist doch ne gute Lösung. Falls irgendwo vor dem Aufruf eines solchen SubVIs ein Fehler passieren sollte, werden die nachfolgende SubVIs zwar aufgerufen, aber es passiert halt nichts, nur der Fehler wird weitergeleitet bis der Error endlich mal quittiert und gelöscht wird. Somit wird das SubVI, das die Referenz (die im Fehlerfall ungültig sein kann) gebrauchen kann, gar nicht ausgeführt.

Gut dabei ist auch, dass du beim Quittieren des Fehlers die richtige Fehlerquelle feststellen kannst.

Gruß, eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.01.2009, 16:02
Beitrag #9

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
Rückgabewerte von Sub-VIs im Fehlerfall
' schrieb:Was soll das Platzieren des Outputs innerhalb der Case-Struktur eigentlich bewirken?

Ja ich mache schon seit langem die Inhalte aller meiner SubVIs in No-Error-Case. Ist doch ne gute Lösung. Falls irgendwo vor dem Aufruf eines solchen SubVIs ein Fehler passieren sollte, werden die nachfolgende SubVIs zwar aufgerufen, aber es passiert halt nichts, nur der Fehler wird weitergeleitet bis der Error endlich mal quittiert und gelöscht wird.

Gruß, eg
Ich mache das genau so. Wenn ich die Outputs innerhalb des NO-Error-Case habe wird im Fehlerfall auch nix reingeschrieben. Das ist alles was ich damit bewirke.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.01.2009, 16:06
Beitrag #10

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Rückgabewerte von Sub-VIs im Fehlerfall
' schrieb:Ich mache das genau so. Wenn ich die Outputs innerhalb des NO-Error-Case habe wird im Fehlerfall auch nix reingeschrieben. Das ist alles was ich damit bewirke.

Verstehe, aber hast du mal überprüft was an den Ausgängen des SubVIs anliegt? Denkst du die zuletzt gültigen Werte?

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: