LabVIEWForum.de
Fehlermeldungen in Array sammeln - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Fehlermeldungen in Array sammeln (/Thread-Fehlermeldungen-in-Array-sammeln)



Fehlermeldungen in Array sammeln - Klausenwirt - 04.02.2014 11:41

Hallo,

ich möchte eigene Fehlermeldungen(Fehlercodes), die ich als String erhalte, gerne sammeln. Dabei soll die neueste Fehlermeldung an oberster Stelle stehen. Es reicht auch aus, dass die letzten 10 Fehler angezeigt werden. Bei mir verschiebt sich aber der neue Fehler um 1 nach unten und überschreibt den alten. Nur Fehler, die nicht "0000" sind, werden hinzugefügt.
Die Initialisierung des Arrays mit "--------" und der Startwert für "ErrorCounter" sind außerhalb des VIs und findet bei Programmstart statt.

[attachment=48378]

So sollte das aussehen:
[attachment=48377]

Gruß vom
Klausenwirt.


RE: Fehlermeldungen in Array sammeln - Trinitatis - 04.02.2014 11:44

Hallo,

nimm einfach Build Array mit verdrehten Eingängen und danch TeilArray mit den ersten 5 Elementen.


Gruß, Marko


Edit:

quasi so:


RE: Fehlermeldungen in Array sammeln - jg - 04.02.2014 11:54

Ich rate zu "Rotate 1D Array" und "Replace Array Subset":
[attachment=48380]
Bei 5 oder 10 Elementen ist es zwar ziemlich egal, aber die Vorschlag von Marko ist speicher- und performancetechnisch suboptimal. Vor allem ein Build-Array in der vorgeschlagenen Reihenfolge ist (Skalar + 1D-Array) ist im Vergleich zur umgekehrten Reihenfolge (1D-Array + Skalar) langsam.

Gruß, Jens


RE: Fehlermeldungen in Array sammeln - Trinitatis - 04.02.2014 14:40

(04.02.2014 11:54 )jg schrieb:  Vor allem ein Build-Array in der vorgeschlagenen Reihenfolge ist (Skalar + 1D-Array) ist im Vergleich zur umgekehrten Reihenfolge (1D-Array + Skalar) langsam.

Ich hab´s mit einer Arraygröße von 500 und einer Stringlänge je Arrayelement von 500 probiert. Bei 10.000 Schleifendurchläufen ist die Zeit bei BuildArray in beiden Reihenfolgen identisch ca. 3,4s

Gruß, Marko


RE: Fehlermeldungen in Array sammeln - GerdW - 04.02.2014 15:17

Hallo Marko,

hast du an constant folding und debugging options gedacht? Timing von einfachen Funktionen ist immer etwas tricky!

Christian Altenbach erklärt das immer wieder mal im NI-Forum…


RE: Fehlermeldungen in Array sammeln - Trinitatis - 04.02.2014 15:26

(04.02.2014 15:17 )GerdW schrieb:  hast du an constant folding und debugging options gedacht?

Hallo Gerd,

ich habe das Terminal des anzufügenden Strings in der Schleife verwendet, lese also nicht aus einer Konstanten - in die Konstantenfalle bin ich früher auch schon des öfteren getappt und habe mich gefreut, wie schnell doch alles geht Smile

anbei ein Screenshot (LV8.0) - Stringlänge ist 500 bytes


Gruß, Marko


RE: Fehlermeldungen in Array sammeln - Klausenwirt - 05.02.2014 10:58

Ich hab mal die Struktur angehängt, wie die Befehle ankommen und verarbeitet werden. Ich weiß nicht, wie ich hier ein Shift-Register einbauen kann, aber das ist ja nötig, sonst wird immer nur der erste Index verändert. In meiner while-Schleife gehts nicht, ich muss die Werte ja innerhalb anzeigen.
Timeout-gesteuert wird der Fehlerstring abgefragt und soll dann eben im Array ergänzt werden.

[attachment=48384]


RE: Fehlermeldungen in Array sammeln - GerdW - 05.02.2014 11:02

Hallo Wirt,

Zitat:Ich weiß nicht, wie ich hier ein Shift-Register einbauen kann, aber das ist ja nötig, sonst wird immer nur der erste Index verändert. In meiner while-Schleife gehts nicht, ich muss die Werte ja innerhalb anzeigen.
Hmm Wo, wenn nicht in der While-Loop, sollte das Schieberegister sonst platziert werden? Hmm

THINK DATAFLOW!

[attachment=48385]
Der andere Case lautet "0000"…

Zitat:Timeout-gesteuert wird der Fehlerstring abgefragt und soll dann eben im Array ergänzt werden.
Wieso überhaupt der Aufwand mit der Event-Struktur, wenn du trotzdem Polling betreibst?
Warum nicht einfach ein WaitUntilNextMultiple mit einer 500 dran?
Wozu die zusätzliche Wartefunktion neben der Eventstruktur?
[attachment=48386]


RE: Fehlermeldungen in Array sammeln - Klausenwirt - 05.02.2014 16:36

Ich brauche die Timeout-Struktur, weil ich noch viele andere Ereginisse abfrage. Die zusätzliche Wartefuntion hab ich nur in diesem Besispiel-VI, um die Performance zu verbessern. Ich hab gelesen, man soll eine while-Schleife nicht ohne Wartezeit laufen lassen, da sonst der PC zu viel arbeiten muss.

Danke für deine Hilfe!


RE: Fehlermeldungen in Array sammeln - GerdW - 05.02.2014 16:38

Hallo Wirt,

Zitat:Die zusätzliche Wartefuntion hab ich nur in diesem Besispiel-VI, um die Performance zu verbessern. Ich hab gelesen, man soll eine while-Schleife nicht ohne Wartezeit laufen lassen, da sonst der PC zu viel arbeiten muss.
Das von dir Gelesene hatte schon recht. Aber du hast in deinem Beispiel-VI zwei Wartefunktionen: das Wait und den TimeOut der Eventstruktur. Erstens braucht man nur eine Wartefunktion in der Schleife und zweitens ist der TimeOut der Eventstruktur größer als der Wert am Wait…