LabVIEWForum.de
Beispiel für Fehlerbehandlung und Gliederung in SubVIs - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Beispiel für Fehlerbehandlung und Gliederung in SubVIs (/Thread-Beispiel-fuer-Fehlerbehandlung-und-Gliederung-in-SubVIs)

Seiten: 1 2


Beispiel für Fehlerbehandlung und Gliederung in SubVIs - TSC - 04.03.2009 10:54

Moin zusammen,

da ich schon mehrmals nach meiner Art, auftretende Fehler zu behandeln gefragt wurde und auch die Diskussion um die Verwendung von SubVIs nie abreißt, habe ich mal ein kleines Beispielprojekt implementiert.

Projektbeschreibung:

Die Aufgabe des Programms ist es, Zufallszahlen in einem Diagramm darzustellen und in einer *.txt Datei abzulegen.

Zunächst wird das SubVI INIT (SubVIS habe ich als Sequenzrahmen dargestellt) ausgeführt. Dabei wird der Pfad ermittelt, unter dem später die TXT Datei angelegt werden soll und die Daten abgespeichert werden. In diesem VI wird auch überprüft, ob der verfügbare Speicherplatz ausreichend ist. Zu wenig Speicherlatz verursacht einen Fehler, zum Testen kann man ja mal einen großen Wert angeben.

Wird die Messung gestartet, betritt man eine WhileSchleife die drei SubVIs enthält.

1. Datenerfassung, es wir ein Zufallswert ermittelt und direkt überprüft. Ist der Wert größer als 0,2, so kann er als sinnvoll betrachtet werden. Andernfalls wird ein Fehler ausgelöst. Dieser Fehler ist allerdings unkritisch.

2. Abspecihern der Daten, der ermittelte Zufallswert wir in eine Datei geschrieben. Dabei kann es natrülich auch fehler geben. Diese Fehler sind kritisch, weil eine Messung ohne Datenspeicherung unsinn is.

3. Fehlerbehandlung für unkritische Fehler, hier werden die Fehler gelöscht, die den Programmablauf nicht stören.

Die WhileSchleife kann entweder durch den StoppButton oder durch einen kritischen Fehler beendet werden.
Nach der Schleife werden die kritischen Fehler behandelt.

Lv86_img[attachment=16996]
Lv85_img[attachment=17035]
Und eine passende Grafik für die Leute mit anderen Versionen:
[attachment=16997]

Ich freu mich auf eine lebhafte Diskussion!

LG
Torsten


Beispiel für Fehlerbehandlung und Gliederung in SubVIs - Cruzaderz - 05.03.2009 10:47

Ich hab' das Programm zwar noch nicht ganz verstanden aber zumindest schon halb...Wink. Leider kann ich noch nicht damit spielen, weil wir LV 8.5.1 haben. Kannst du es nochmal kompatibel abgespeichert uppen?


Beispiel für Fehlerbehandlung und Gliederung in SubVIs - TSC - 05.03.2009 10:53

' schrieb:...
Kannst du es nochmal kompatibel abgespeichert uppen?
...
Ja das kann ich! Und ich habs auch schon getan, oben im Beitrag #1!

LG
Torsten


Beispiel für Fehlerbehandlung und Gliederung in SubVIs - Wulfi - 05.03.2009 10:57

Danke für dein Beispiel.
Bin derzeit aucha uf der Suche nach nem schönen Error Handling. Bisher sieht meins eigentlich genau so aus, bin mit aber nicht sicher ob es schöne oder besser ist. Die Error wie in der LV Hilfe mit dem General Error Handler zu erzeugen...
Hat vielleicht noch jemand schöne Idenn zur Fehlercode erzeugung und auswertung?


Beispiel für Fehlerbehandlung und Gliederung in SubVIs - TSC - 05.03.2009 11:19

In meinem aktuellen Projekt verwende ich anstelle der unkritischen Fehler WARNUNGEN. diese erzeugt man indem man einen Fehlererzeugt, dessen Fehlercode ungleich 0 ist, der status allerdings auf FALSE (also okay steht).

LG
Torsten


Beispiel für Fehlerbehandlung und Gliederung in SubVIs - RoLe - 05.03.2009 12:00

' schrieb:Bin derzeit aucha uf der Suche nach nem schönen Error Handling. Bisher sieht meins eigentlich genau so aus, bin mit aber nicht sicher ob es schöne oder besser ist. Die Error wie in der LV Hilfe mit dem General Error Handler zu erzeugen...
Hat vielleicht noch jemand schöne Idenn zur Fehlercode erzeugung und auswertung?
Was man zusätzlich auch machen kann, unter " Tools - Advanced - Edit Error Codes" die eigenen Fehlermeldetexte verwalten und in mehreren Projekten verwenden.

Weiter finde ich, sollte ausser dem Fehler, auch der Ort (welches Vi, welche Instanz, aufgerufen von) in der Fehelermeldung stehen.
Dies macht das "Build Error Cluster" vom OpenG Packet wunderbar.


Beispiel für Fehlerbehandlung und Gliederung in SubVIs - Lucki - 06.03.2009 21:39

' schrieb:Ich freu mich auf eine lebhafte Diskussion!

Habs mir mal kurz angesehen, und sofort mißfällt mir etwas: Die Sequenzrahmen haben überhaupt keine Funktion, sind überflüssig und werden lediglich als Dekorahmen zur Gliederung der Programmteile mißbraucht.
Die Idee mit den Dekorahmen ist ja nicht schlecht, aber warum dann nicht die dafür zuständigen Elemente verwenden?
Dazu ist allerdings ein kleiner Trick erforderlich: Dekoelemente gibt es ja eigentlich nur in der Elementpalette des FP. Von da aus lassen sie sich aber problemlos in das Blockbild hinüberziehen.


Beispiel für Fehlerbehandlung und Gliederung in SubVIs - TSC - 06.03.2009 22:24

' schrieb:Habs mir mal kurz angesehen, und sofort mißfällt mir etwas: Die Sequenzrahmen haben überhaupt keine Funktion, sind überflüssig und werden lediglich als Dekorahmen zur Gliederung der Programmteile mißbraucht.
Die Idee mit den Dekorahmen ist ja nicht schlecht, aber warum dann nicht die dafür zuständigen Elemente verwenden?
Dazu ist allerdings ein kleiner Trick erforderlich: Dekoelemente gibt es ja eigentlich nur in der Elementpalette des FP. Von da aus lassen sie sich aber problemlos in das Blockbild hinüberziehen.


Ich habe die sequenzrahmen verwendet, da diese in meinen Programmen sonst keinen verwendungszweck haben. Außerdem kann man an den Rahmen gut sehen, welche Datenströme ein und aus gehen. Ich hätte genausogut irgendwelche grafische dekorationselemente verwenden können. Aber darum geht es hier ja auch nicht.

Trotzdem danke für den Tipp mit dem "Rüberziehen ins BD".


Beispiel für Fehlerbehandlung und Gliederung in SubVIs - Lucki - 07.03.2009 10:41

' schrieb:Aber darum geht es hier ja auch nicht.
Mein Meinung ist, daß ein Programm als Lehrbeispiel jenseits dessen, was es zu zeigen gilt, auch in der allgemeinen Programmiertechnik einen gewissen Vorbildcharakter haben sollte.
Im realen Leben jedenfalls wäre beispielsweise die Beseitigungen solcher Sachen, daß sich das Programm nach (versehentlicher) wiederholter Betätigung des Startknopfes aufhängt, wichtiger als die ganze Fehlerbehandlung.


Beispiel für Fehlerbehandlung und Gliederung in SubVIs - IchSelbst - 07.03.2009 11:12

' schrieb:Mein Meinung ist, daß ein Programm als Lehrbeispiel jenseits dessen, was es zu zeigen gilt, auch in der allgemeinen Programmiertechnik einen gewissen Vorbildcharakter haben sollte.
Auch wenn ich den neuen Experten in seinem Tatendrang wie in seiner Intension voll und ganz verstehe (ich machs ja nicht anders) - so muss ich doch dem alten (und heute ja noch älterem) Experten zustimmen.Guru1