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:

Fehler abfangen



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!

21.12.2020, 08:08
Beitrag #1

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: Dec 2015

LV 2021
2016
DE


Deutschland
Fehler abfangen
Da mittlerweile mein Wissen langsam besser wird, habe ich beschlossen mich um die Fehlererkennung zu kümmern. Dies habe ich bisher vernachlässigt.
Eine Idee die ich gefunden habe, ist das registrieren von Fehlern als Event.
Im angehängten Beispiel ist eine Visa ressource (abgerufen im state ini) nicht angeschlossen. Ich hätte vermutet, dass ein Event auslöst.
Tut es aber nicht. Er bleibt im Ini hängen.
Wenn das wieder Think data flow ist, tut es mir leid. Ich tue mich sehr schwer damit und verstehe es hier nicht.
Ziel war es hier anhand des Fehlercodes irgedwann einen state/aktion auszulösen

Gruß
Steffen


Angehängte Datei(en)
16.0 .vi  MAIN.vi (Größe: 32,24 KB / Downloads: 185)

16.0 .ctl  state control cluster.ctl (Größe: 7,26 KB / Downloads: 165)

16.0 .ctl  states 2.ctl (Größe: 4,31 KB / Downloads: 169)

16.0 .ctl  states.ctl (Größe: 6,07 KB / Downloads: 179)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.12.2020, 10:11
Beitrag #2

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 426
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Fehler abfangen
Hi Steffen,

ich kürze das nicht mit "Think Dataflow" ab. Da ich mir die Frage stelle, was du denn meinen könntest, was in dem Case "INI" mit dem Fehler passiert, führt mich zu etwas ganz Grundsätzlichem:

Was macht ein VI oder eine Funktion, wenn am Eingang ein Fehler in Form eines Error Clusters anliegt? Antwort: Es macht einfach nichts.
Was also tut "Send Notification"? Antwort: Es macht nichts.
Fazit: Du musst irgend etwas tun, damit im Fehlerfall auch irgend etwas passieren kann.

Etwas konkreter: Hänge z.B. den Error Handler einfach hinten an "VISA Open" ran und sende anschließend "EXIT" mittels "Send Notification". So bekommt der Benutzer eine Fehlermeldung und anschließend wird das Programm beendet. Die Leitung des Error Cluster zwischen "VISA Open" und "Send Notification" musst du natürlich weglassen.

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2020, 10:20 (Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2020 10:27 von th13.)
Beitrag #3

th13 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 177
Registriert seit: Oct 2013

2020 SP1
2013
EN


Deutschland
RE: Fehler abfangen
Du musst den VISA-Fehler auch behandeln, d.h. prüfen, ob am Fehlerausgang ein Fehler auftritt. Im einfachsten Fall so:
   
Du kannst auch den Errorcode auswerten und je nachdem verschiedene Meldungen ausgeben.

Ein Tipp noch bzgl. Fehlerhandling: man sollte immer den Originalfehler (hier der VISA-Fehler) anzeigen oder zumindest loggen, das erleichtert das Finden von Fehlerursachen deutlich.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2020, 11:56 (Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2020 12:00 von Freddy.)
Beitrag #4

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Fehler abfangen
Hallo Steffen,

Dein Event muss aber schon irgendwie durch den "Error (Ausgang)" gestartet werden. Durch den "Error (Eingang) kein Fehler" wird Auf keinen Fall ein Fehler gemeldet. es sei den die Benutzerereignisse währen falsch. Den Eintrag im Event ändern.

Die INI Fehlerleitung würde ich nicht ändern, da eine Initialisierung ohne VISA nicht funktioniert.

Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2020, 12:10
Beitrag #5

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: Dec 2015

LV 2021
2016
DE


Deutschland
RE: Fehler abfangen
ich hatte es zu Anfang so ähnlich versucht.
Nur das funktionierte auch nicht. Daher klang die Idee mit dem Event interessant.
Aktuell (in der Verständnisphase) reicht es mir, wenn das Programm in exit springt und sich beendet.
Das tut es aber nicht. Im Anhang ist ein Bild was mit dieser Variante geschieht.
Das exit wird ausgelöst. Aber das Programm insgesamt beendet sich nicht. Statt dessen kommt die besagte Fehlermeldung.

Gruß
Steffen


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2020, 12:15 (Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2020 12:18 von Martin.Henz.)
Beitrag #6

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 426
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Fehler abfangen
Hallo Freddy,

(21.12.2020 11:56 )Freddy schrieb:  Die INI Fehlerleitung würde ich nicht ändern, da eine Initialisierung ohne VISA nicht funktioniert.

Lass doch dem Steffen seine Freiheit :-)

Wenn er diesem Ratschlag folgt und das so macht wie unten, dann ist es schlicht und ergreifend falsch.

   

Nachtrag: Da ist es ja schon (schneller als meine Antwort) ... und es ist falsch den Error Cluster zu verbinden ...

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.12.2020, 12:32
Beitrag #7

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 426
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Fehler abfangen
Hi Steffen,

lass die Verbindung des Error Clusters zu "Send Notofication" im Fehlerfall weg (sonst wird da nichts gesendet).
Und irgendwie ist es vermutlich sinnvoll, dem Anwender mitzuteilen, welcher Fehler aufgetreten ist. Um bei deinem
Ansatz zu bleiben, irgendwie so:

   

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2020, 13:27
Beitrag #8

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: Dec 2015

LV 2021
2016
DE


Deutschland
RE: Fehler abfangen
Hm..Danke für die Bemühungen.
Ich habe mal die Error-Verbindung zum Notifier getrennt.
Jedoch ändert das nichts. Er sendet den state nicht ab. Es kommt ziemlich genau dieselbe Fehlermeldung.

Gruß
Steffen


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2020, 13:56 (Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2020 14:12 von Martin.Henz.)
Beitrag #9

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 426
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Fehler abfangen
Hallo Steffen,

du machst bei EXIT auch nichts außer, dass zwei von den drei While-Schleifen beendet wird. :-)

Momentan zumindest sollte es doch im Fehlerfall so sein, dass beim Start des Programms festgestellt wird, dass das Gerät nicht vorhanden ist, der Benutzer eine Fehlermeldung bekommt. Anchließend wird das Programm wieder beendet. Du musst dann auch dafür sorgen, dass nach EXIT dein Programm auch tatsächlich vollständig beendet wird.

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2020, 14:12
Beitrag #10

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: Dec 2015

LV 2021
2016
DE


Deutschland
Sad RE: Fehler abfangen
Doch dataflow...(unabhängig von der Meldung)
In meinem Universum schickte ich die Meldung raus und die ging in das event rein und sollte dann die trues zum Beenden verteilen.
Dem scheint aber nicht so zu sein, so dass ich nur die while Schleife mit den states beende.

Aber war dann mein Ansatz vom Wochenende nicht besser, einen Fehlerfall als event zu triggern? Dann würde ich alles beenden.
Nur warum funktionierte diese Variante nicht?
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
  Button Doppelklick abfangen Fuchs 8 5.601 09.11.2023 18:12
Letzter Beitrag: jg
  Windows Fehlermeldung abfangen ahebauer 3 4.288 22.11.2017 09:11
Letzter Beitrag: GerdW
  3 Bedingungen abfangen Susanne 6 6.452 07.01.2015 10:43
Letzter Beitrag: Susanne
  Reiterwechsel auf Registerkarte abfangen creo_123 5 6.010 07.10.2013 08:50
Letzter Beitrag: Masterg4941
  Cluster in Ereignisstruktur - einzelnes Element abfangen curby23523 2 4.630 15.11.2012 13:09
Letzter Beitrag: curby23523
  "Seltsamer Fehler", LabView-Anwendung erzeugt einen Fehler 2200 ASM 5 7.794 23.01.2011 17:40
Letzter Beitrag: Y-P

Gehe zu: