LabVIEWForum.de - Komplexes Programm - Fehlerbehandlung

LabVIEWForum.de

Normale Version: Komplexes Programm - Fehlerbehandlung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen miteinander,

ich arbeite derzeit an einer relativ komplexen Messanwendung, an der auch Mehrere verschiedene Geräte über GPIB, RS232 und TCP/IP angesteuert werden.
Jetzt ist mein Programmcode mittlerweile schon relativ komplex geworden, aber ich habe noch immer keine für mich zufriedenstellende Lösung für die Fehlerbehandlung gefunden.
Das Problem ist, das es sich ja um eine Laufzeitkritische Anwendung handelt.
Ich habe mir überlegt, über die Fehlerleitung Fehler zu generieren und mit einer fortlaufenden Nummer zu versehen.
Sobald ein Fehler auftritt einfach alles beenden und sauber herunterfahren.
Ich finde irgendwie im Netz kein Ordentliches Beispiel zur Fehlerbehandlung in komplexen Programmen.

Könnte mir jemand ein Beispiel posten, wie ich das effizient machen könnte?

Vielen Dank im Voraus.

Viele Grüße
Besonders interessant wäre für mich auch denke ich ein Fehlerbehandler mithilfe eines Error-Code-Files.
Aber Ich weiß auch nicht, wie ich ein solches File in ein Projekt/Programm übernehme.
Wenn ich einen Fehler generiere, benutzt Labview immer das erste von mir erstellte File.
Also ich habe mir ein Standar-Fehlerbehandlunge VI geschrieben das schreibt
  • ein Error LOG mit
  • ermöglicht Dialog oder keinen Dialog
  • fügt den kompletten Aufrufpfad dazu

dann sieht man sehr schön was passiert ist. Das VI steht immer am Ende eines Sub-VIs und sonst an "kritischen" Stellen

Ich hoffe das hilft

Gottfried
Wenn ich mal so ein komplexes Projekt mit professioneller Fehlerbehandlung machen sollte, dann würde ich die in dem Buch von Johnson/Jennings (LV Graph. Progr.) vorgestellte Lösung zum Vorbild nehmen. (Kap 8, Building an Apppl. / Handling Errors). Ich habe das nicht alles verstanden, nur so viel: es ist genial. Stichworte: Fehler wird an FGV übergeben, diese zündet ein user-definiertes Event. Außerdem spielen Queues mit, aber wie gesagt, ich habe mich nicht damit beschäftigt und weiß nicht wie es genau geht. Vileicht hat jemand die beschriebenen VIs schon mal nachgebaut und kann sie posten.
Bei einer State-machine-Archtitektur kann sich ein Zustand um die Fehlerbehandlung kümmern. Falls ein Fehler in einem Zustand auftritt, wird nicht mit dem Folgezustand weitergearbeitet, sondern die Fehlerbehandlung durchgeführt. Je nach Fehler könnte z. B. das Programm danach herunterfahren oder mit anderen Parametern weiterarbeiten.

In bestimmten Situationen bietet es sich an, Fehler gleich zu behandeln: Z. B. wenn eine Datei zum Schreiben geöffnet werden soll, könnte der Pfad noch nicht existieren. Wenn also der Fehler "kann Datei nicht erzeugen" auftritt, könnten gleich - ggf. nach Bestätigung durch den Benutzer - die erforderlichen Ordner erstellt werden und dann noch einmal versucht werden, die Datei zu erstellen und zu öffnen. Hier wäre das sofortige Beenden des Programms weniger zweckmäßig.

Es gibt verschiedene Fehler mit unterschiedlichen Schweregraden, die adequat berücksichtigt werden müssen.

Manchmal bietet es sich an, weiterzuarbeiten und den Fehler wie ein Ereignis in eine Log-Datei zu schreiben. Dieses würde man mit einer Queue, die die Ereignisse entgegen nimmt und einer parallel zum Hauptprogramm laufenden Schleife, die die Ereignisse aus der Queue in eine Log-Datei schreibt, umsetzen.
Referenz-URLs