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 

Fehler visualisieren



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!

24.09.2014, 08:17
Beitrag #1

NoWay Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 241
Registriert seit: Jul 2013

LV-2019
2013
EN


Deutschland
Question Fehler visualisieren
Hallo zusammen.

Rahmenbedingung:
In einem aktuellen Projekt werden von mehreren (min. einer, max. sechs) Hardwarecontrollern Daten verarbeitet. Für jeden Controller gibt es ein separates UI. Für den Anwender ist es absolut wichtig, dass er später eine Rückmeldung bekommt, wenn und wo welcher Fehler aufgetreten ist. Derzeit gibt es noch keine "Anzeige" für Fehler, die während der Laufzeit aufgetreten sind. Es ist angedacht, eigene Fehlercodes zu entwerfen und diese dann an entsprechenden Stellen im Programm "auszulösen" wenn es nötig ist. Vereinfacht ausgedrückt: Man weiß, wo welche Fehler auftreten könnten. Die Anzeige selbst sollte dann in einem eigenen Fenster erfolgen.

Ansatz:
Um dieser Anforderung gerecht zu werden, habe ich verschiedene Ansätze verfolgt, um mögliche Fehler zu visualisieren. Meine Schwierigkeit besteht darin, dass ich mich nicht festlegen kann, welche der folgenden Optionen (oder Optionen, die ich nicht kenne Big Grin ) die sinnvollste ist. Derzeit beschäftige ich mich rein theoretisch damit.

FGV:

Bei der Verwendung einer FGV würde ich das so machen wollen, dass diese die Daten von den Fehlerleitungen aufnimmt und in einem separaten VI in ein Array für den jeweiligen Hardwarecontroller schreibt. In dem anzeigenden VI würde ich dann somit n Arrays anzeigen lassen, die jeweils alle aufgetretenen Fehler beinhalten. Meine Bedenken hierbei: Kann ich sicher sein, dass ich immer alle Fehler in das Anzeige-VI übertrage?

Queue:

Queue Referenz für jeden Hardwarecontroller erzeugen und im Anzeige VI die Queues auslesen und anzeigen lassen, z.B. via Arrays (siehe FGV). Ich könnte mir sicher sein, dass alle Fehler in der Queue landen und nichts verloren geht.

Notifier:
Nie mit den Viechern gearbeitet. Der Hilfe nach zu urteilen, könnte man diese auch für das Melden von Fehlern heranziehen. Ich bin mir aber nicht sicher, ob das der gängigen Praxis entspricht.

Wie macht man sowas also "richtig"? Welche Methoden ist die Ideale, zwecks Statusmeldungen für den Anwender, ohne den Programmablauf zu beeinträchtigen?
Hoffentlich konnte ich mein Anliegen präzise genug schildern und freue mich auf eure Rückmeldung!

Der NoWay
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2014, 08:23 (Dieser Beitrag wurde zuletzt bearbeitet: 24.09.2014 08:24 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Fehler visualisieren
Hallo NoWay,

ich verwende dieses Grundprinzip:
Ich starte eine parallel laufende Schleife, die ein ErrorLog erstellt. Diese Routine öffnet eine Queue namens "ErrorLog" und wartet dort auf Botschaften/Einträge. Jede andere Routine darf in diese benannte Queue schreiben - und sendet sinnvolle ErrorCluster, in denen ErrorSource und ErrorCode vermerkt ist…

Alternativ habe ich auch eine FGV, die ErrorCluster verschiedener Routinen anhand einer Kennung verwaltet (Key-Value-Paar mittels Variant-Attributen). Hier wird immer der aktuelle Fehlerzustand vermerkt und kann von einem Anzeige-VI abgefragt werden, um dann alle Fehlerquellen/-zustände in einer Listbox darzustellen…

Zum Notifier: Du musst sicherstellen, dass der Notifier gelesen wird, bevor er erneut überschrieben wird. Eine Queue ist sicherer, wenn du keine Werte "überlesen" willst…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2014, 09:06
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Fehler visualisieren
Ergänzung zu Gerd: Notifier ist prädestiniert für eine One-to-Many Kommunikation, Queue für eine Many-to-One. Du braucht garantiert eine Many-To-One.

Vielleicht lohnt sich für dich ein Blick auf den Structured Error Handler (SEH).

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2014, 09:56
Beitrag #4

NoWay Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 241
Registriert seit: Jul 2013

LV-2019
2013
EN


Deutschland
RE: Fehler visualisieren
@GerdW, danke für den Denkanstoss.

@Jens
Das ist korrekt. Ich habe mehrere Teilnehmer die an ein VI "berichten", was alles passiert ist. Derzeit verfolge ich den Ansatz via Queue genauer und konnte bereits einen Erfolg verzeichnen, indem ich an einer beliebigen Stelle einen Fehler an das ErrorLog Vi sende. Das Problem, welches sich mir aktuell in den Weg stellt ist das folgende:

Ich bin hingegangen und habe einen Custom Error Code 5000 in einem Fehlercluster angegeben. Der Fehler wandert dann brav durch die Queue zu meinem VI und wird dort aus der Queue entfernt. Da aber der Fehler nirgends "definiert" ist, spuckt die Queue dann eine Meldung aus, in der ich darauf hingewiesen werde, dass es sich um einen unbekannten Fehler handelt. Mittlerweile bin ich auf den Trichter gekommen, dass ich unter Tools->Advanced->Edit Error Codes eigene Error Codes definieren und als Datei abspeichern kann. Wie aber kann ich meinem Programm dann zu verstehen geben, dass es genau diese Datei für die zusätzlichen Error Codes verwenden soll?

Was den Structured Error Handler angeht: Ich habe die Seite überflogen und werde mir diese in einer ruhigen Minuten etwas genauer zu Gemüte führen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2014, 10:03 (Dieser Beitrag wurde zuletzt bearbeitet: 24.09.2014 10:07 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Fehler visualisieren
Hallo NoWay,

der AllgemeineFehlerBehandler kennt Eingänge für Benutzer-definierte ErrorCodes…

Wenn man die Hilfe dazu weiterverfolgt, findet man auch einen Hinweis auf den Fehler-Editor und dessen Verwendung! Diese ErrorCodes lassen sich auch im AppBuilder angeben…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.10.2014, 09:02 (Dieser Beitrag wurde zuletzt bearbeitet: 14.10.2014 09:14 von NoWay.)
Beitrag #6

NoWay Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 241
Registriert seit: Jul 2013

LV-2019
2013
EN


Deutschland
RE: Fehler visualisieren
(24.09.2014 08:23 )GerdW schrieb:  Alternativ habe ich auch eine FGV, die ErrorCluster verschiedener Routinen anhand einer Kennung verwaltet (Key-Value-Paar mittels Variant-Attributen). Hier wird immer der aktuelle Fehlerzustand vermerkt und kann von einem Anzeige-VI abgefragt werden, um dann alle Fehlerquellen/-zustände in einer Listbox darzustellen…

Wie gibst du die Daten an die Listbox weiter? In meinem Fall würde ich gerne Fehler und Statusmeldungen als "Statusview" für den Anwender in einer Listbox darstellen. Gelöst habe ich dies bisher mit einem String Array. Macht man das so oder gibt es da eventuell eine geschicktere Lösung? Ich könnte mir vorstellen, dass dies problematisch ist, wenn das Programm über lange Zeit läuft (unwahrscheinlich aber eben möglich) und dadurch das StringArray aufgeblasen wird.

Klar, ich könnte das Array begrenzen, aber das will ich eigentlich nicht. Die einzige Lösung in meinen Augen wäre demnach das Wegschreiben der Logdaten.

Gruß
NoWay
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.10.2014, 09:08
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Fehler visualisieren
Hallo NoWay,

da ich immer nur den "aktuellen" Fehlerstatus vermerke, bleibt die Liste übersichtlich - die Anzahl der Fehlerquellen ist begrenzt…

Zitat:Gelöst habe ich dies bisher mit einem String Array. Macht man das so
Eine Listbox erwartet nunmal ein Stringarray - also muss man auch eines erstellen…

Zitat:Klar, ich könnte das Array begrenzen, aber das will ich eigentlich nicht.
Was ist dir lieber: ein unbegrenzt wachsendes Array mit Gefahr eines "OutOfMemory"-Fehlers oder ein stabil laufendes Programm?

Zitat:Die einzige Lösung in meinen Augen wäre demnach das Wegschreiben der Logdaten.
Das Speichern von Log-Daten ist immer eine sinnvolle Entscheidung…

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
  Messdaten visualisieren und in vorhandenem Video anzeigen lab_ws10 2 3.652 29.11.2012 00:25
Letzter Beitrag: lab_ws10
  Bytes auswerten und visualisieren BEng Thomas 4 7.044 24.08.2012 15:02
Letzter Beitrag: BEng Thomas
  Binäre Uhr mit LED visualisieren Bighardy 4 5.177 22.05.2011 22:20
Letzter Beitrag: Bighardy
  "Seltsamer Fehler", LabView-Anwendung erzeugt einen Fehler 2200 ASM 5 7.149 23.01.2011 17:40
Letzter Beitrag: Y-P
  CSV/XML Dateien auslesen und visualisieren Graf_Nasenbär 15 21.552 20.11.2010 10:43
Letzter Beitrag: Lucki
  Visualisieren Sini 10 8.694 05.10.2007 07:20
Letzter Beitrag: rolfk

Gehe zu: