Hallo tom,
Zitat:Wenn ich nun allerdings einen dritten Logging Loop hinzufügen will wird die UI wieder träge und die Graphen stellen die Daten nur noch teilweise dar.
Da hast du auch einen groben Fehler eingebaut! Du versuchst an zwei Stellen aus ein und der selben Queue zu lesen: wer bekommt da wohl welche Daten ab?
Eine Queue sollte (üblicherweise) immer als "N Producer, 1 Consumer" verwendet werden.
Nur, wenn es egal ist, wer welche Daten in welcher Reihenfolge abbekommt, kann man sie auch für "N Producer, N Consumer" verwenden!
Wenn du also
alle Daten loggen und
alle Daten auch anzeigen/verarbeiten willst, dann benötigst du zwei Queues! Die Logging-Routine könnte z.B. alle Daten speichern und in eine zweite Queue weiterschieben, die dann von der Rechenloop geleert wird…
Das hätte auch den Vorteil, dass die UI-Loop nicht noch einmal die gleiche Berechnung durchführen muss, die schon in der anderen Loop erledigt wurde!
In eben diesem VI:
Wenn Autoindizierung, dann ist die Anzahl der Iterationen (hier) unnötig!
Nur ein IndexArray - und auch ohne Index-Konstanten!
Bitte sonst auch auf passende Datentypen und dazu passende Funktionen achten!
Warum ist "Preset Number of Cycles" ein DBL-Wert statt eines Integers? Vergleiche mit float-Werten kräuseln (bei mir) immer die Zehnägel hoch!
Wenn du Pfade bauen willst, dann verwende Pfad-Funktionen! Wenn du Zeitangaben in einen Dateinamen formatieren willst, dann verwende FormatIntoString:
(Ich habe den Formatstring nach meinen Vorlieben gestaltet, kannst du ja gern nach deinen Requirements anpassen…)