LabVIEWForum.de - Bitte um Optimierungen

LabVIEWForum.de

Normale Version: Bitte um Optimierungen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich habe mal wieder was programmiert. Es geht um eine Fehlerbehandlung. Die eigentliche Fehlerbehandlung habe ich hier mal minimiert (Ausgabe des Fehlers durch einen einfachen ErrorHandler und Fehler löschen). Das ganze ist ein SubVI, welches in meiner Hauptapplikation mehrmals aufgerufen wird. In dem aufrufenden VI soll ein Array mit allen auftretenden Fehlern gefüttert werden. Der Fehler muss also vor dem Löschen in meinem SubVI noch in das Array des HauptVIs eingefügt werden. Die Arrayanzeige soll dabei immer den zuletzt aufgetretenen Fehler anzeigen (vgl. "Array-Anzeige soll letztes Element anzeigen").

Zum besseren Verständnis habe ich mein SubVI in drei Bereiche eingeteilt.

Rahmen 1 dient dazu, das FehlerArray aus dem HauptVI einzulesen.

In Rahmen 2 wird der neue Fehler diesem FehlerArray hinzugefügt.

Rahmen 3 setzt den Index des AnzeigeElementes vom FehlerArray auf den letzten Wert.

[attachment=17112]
Lv86_img[attachment=17113]

Das ganze Funktioniert bisher zuverlässig. Allerdings vermute ich noch optimierungspotential, besonders in Rahmen 3. Evtl gibt es eine geschicktere Möglcihkeit, das Array zu referenzieren?

Lieben Dank an alle die sich hiermit auseinander setzen.
Torsten
:bahn:Hab' LabVIEW auf Englisch und kann das nicht mal nachbauen. Kannst Du mal das VI hochladen?
Bei mir gibt's überhaupt keine Methode oder Property "Element".... O

Gruß Markus
' schrieb::bahn:Hab' LabVIEW auf Englisch und kann das nicht mal nachbauen. Kannst Du mal das VI hochladen?
Bei mir gibt's überhaupt keine Methode oder Property "Element".... O

Gruß Markus

Habs oben im Beitrag #1 ergänzt. Dachte ein VI-Upload Bringt nichts, weil das Main-VI ja eh nicht dabei ist. Soll ich das auch noch zusammenbasteln? Oder geht es so?
Ich blick' irgendwie nicht ganz, was Du da machst. Blush Kannst Du mal kurz erklären, was Du da in den einzelnen Rahmen so machst? Huh

Gruß Markus
Wenn ich ein paar Elemente (Controls) einfüge und im Error-Control einen Fehler erzwinge, bekomme ich Fehler1.....
(vgl. Bsp.)
[attachment=17114]
Lv80_img

Gruß Markus

EDIT: Beim VI-Pfad nehme ich übrigens ein Current VI's path (hat's bei der Konvertierung nach 8.0 weggehauen...)

' schrieb:Ich blick' irgendwie nicht ganz, was Du da machst. Blush Kannst Du mal kurz erklären, was Du da in den einzelnen Rahmen so machst? Huh

Gruß Markus
Mal zurück zum Hauptthema, ohne dass ich mir das jetzt im Detail angeschaut habe:

Wäre das nicht möglicherweise über Queues wesentlich einfacher und übersichtlicher zu lösen?

Gruß, Jens
' schrieb:Ich blick' irgendwie nicht ganz, was Du da machst. Blush Kannst Du mal kurz erklären, was Du da in den einzelnen Rahmen so machst? Huh

Gruß Markus


Okay also im Ersten Rahmen erstelle ich zunächst eine Referenz auf das HauptVI (Der Pfad dazu ist gegeben). Im HauptVI gibt es ein Element mit dem Namen "Fehler" und vom Typ "Array von FehlerClustern". Der Eigenschaftsknoten Elementwert.Ermitteln liefert mir ein Variant mit den Daten die in diesem Array "Fehler" sind. Dieses Variant wandel ich in den richtigen Datentyp um.

Rahmen 2 fügt zu diesem Array von FehlerClustern noch ein weiteres Element hinzu (den aktuellen Fehler). Das erweiterte Array wird dann wieder mittels Eigenshcaftsknoten in das Element im HauptVI geschrieben. Diesesmal verwende ich den Knoten "Elementwert.Setzen". Der Name des Elementes ist nach wie vor "Fehler".

Im dritten Rahmen verscuhe ich zunächst, eine Referenz auf das Array "Fehler" zu bekommen. Dazu erstelle ich eine Referenz auf das Panel des MainVIs, daraus ermittel ich dann ein Array mit allen Anzeige und Bedienelementen. Dieses Array durchsuche ich in der Forschleife. Da ist dann ein kleiner Fehler in der Grafik. Ich verglecihe den Beschriftungstext jedes Elements mit dem String "Fehler" (nicht "Fehler und Warnungen"). Wenn ich das Element gefunden habe, beende ich die Forschleife und gebe die Referenz auf das Element raus. Diese Referenz wandel ich dann in eine ArrayReferenz um. Mit dieser Referenz auf das Array "Fehler" kann ich nun den angezeigten Index einstellen. Dazu verwende ich wiederum einen Eigenschaftsknoten.
' schrieb:Mal zurück zum Hauptthema, ohne dass ich mir das jetzt im Detail angeschaut habe:

Wäre das nicht möglicherweise über Queues wesentlich einfacher und übersichtlicher zu lösen?

Gruß, Jens

Das wäre schon mal ein stichwort, was ich mir ansehen könnte. Da kenne ich mich noch nicht mit aus.
ich hab mal Main und Sub zusammen gebastelt.

Lv86_img[attachment=17117]
Lv86_img[attachment=17118]
Ich steh' voll auf dem Schlauch.... Ich verstehe den Sinn immer noch nicht. Blush

Gruß Markus
Seiten: 1 2
Referenz-URLs