LabVIEWForum.de
Array überschreiben - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Array überschreiben (/Thread-Array-ueberschreiben--21905)

Seiten: 1 2


Array überschreiben - Lutz_ca - 19.05.2012 12:45

Hallo,

ich habe eine Frage bezüglich des Überschreiben eines Array mit neuen Daten gleicher Datenlänge.
In dem VI (case Anweisung)habe ich vereinbart, wenn die Schleife erneut durchlaufen wird sollen die alten Daten im Array durch die neuen Daten ersetzt werden und zum Schluss als Liste ausgeben werden. Stattet dessen werden die neuen Daten aber angehängt.
Kann mir jemand sagen worin der Fehler besteht?

Gruss Lutz


RE: Array überschreiben - BNT - 19.05.2012 15:11

Hi

Replace Array Elements geht so: http://zone.ni.com/reference/de-XX/help/371361H-0113/glang/replace_array_subset/.

Gruß Holger


RE: Array überschreiben - Lucki - 20.05.2012 14:55

Wobei noch erwähnt werden sollte, dass Replay Array Elements eigentlich dazu dient, einen Teil der Elemente eines Array zu ersetzen. Alle Elemente zu ersetzen wäre möglich, fällt aber dann in die Kategorie Rube-Goldberg.
Man braucht doch dann nur die Anzeige mit den neuen Werte zu beschreiben - fertig.


RE: Array überschreiben - Lutz_ca - 20.05.2012 17:53

Hallo Lucki,

wie wahr wie wahr!
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Ich weiss auch nicht, warum ich es noch komplizierter machen muss?

Danke für den Denkanstoß!


RE: Array überschreiben - Lucki - 20.05.2012 21:13

Ich habe den Eindruck, dass sich in dem VI manches noch vereinfachen ließe. Poste es doch mal und schließe auf der linken Seite eine Strinkonstante mit typischem Inhalt an.


RE: Array überschreiben - Lutz_ca - 20.05.2012 23:35

Hallo Lucki,

ich habe dir mal 3 Teilstücke zusammengestellt.
1 Datei holen und Daten lesen. Die besagten 120 Zeilen a 2Stunden. Zeitschleife zum holen über Internet.
Da muss noch einiges für die Sicherheit getan werden.
z.B wenn Server nicht erreichbar dann muss im Abstand von 5min der Vorgang neu gestartet werden.
2. Textdatei einlesen. Werte einlesen und in String für Verarbeitung und Archivierung vorbereiten. (While Schleife) .Das Array habe ich entfernt.
3. Auswertung der Zeitstempel für die Darstellung im Chart.

[attachment=39852] [attachment=39853] [attachment=39854]


zu. 1. Das Abholen der Daten funktioniert. Nur man darf die 120 minuten nicht überschreiten, sonst fehlen Daten da endlos
Daten. Deshalb werde ich wahrscheinlich alle 30 min. abholen. Wenn dann Verbindung fehlgeschlagen werde ich den
Zyklus auf 3Minuten herabsetzen bis die Verbindung wieder steht.

zu.2. Dann übergebe ich die Txt an die While Schleife um die Daten für die Archivierung und Verarbeitung vorzubereiten.
Das hatte ich am Anfang mit einem Array lösen wollen. Habe ich jetzt so gelöst. Habe aber irgendwie einen Denkfehler drin.
Um die Pick Line Funktion nutzen zu können, habe ich einen LineFeed hinzugefügt und sende es zusammen an Teil 3 um
die alten und neuen Daten an Hand des Zeitstempel zu filtern.
Das Problem ist, wenn ich das erste mal das Programm laufen lasse dann funktioniert es. Dann nicht mehr, weil die
nächsten Zeilen angehangen werden. Wundere Dich nicht, weshalb so viele Stringindikatoren im VI sin die sind
nur zur reinen Prüfung für mich.
Ich komme ja sonst aus der Controller Programmierung und ich habe gedacht, wenn neue Werte in der While Schleife
auftreten, dann habe ich am Ende auch nur noch diese. Aber irendwie sind die alten Werte noch da und werden mit der
Feedback Node aufeinandergesetzt.


RE: Array überschreiben - Lutz_ca - 21.05.2012 00:31

Hallo Lucki,

hier ist der Rest vom vorhergehenden Teil. Hab ausversehen den Beitrag vorher gesendet.


zu . 3. Also ich hole mir die letzte Zeit aus der 120 Zeile und die Letzte Zeit aus den bis dahin gespeicherten Daten. Das geht klappt auch
ganz gut. Die Zeilendifferenz = MinutenZeitabstand zwischen den Daten gebe ich über Pick Line an Match Pattern und separiere mit
String nach dem Match und schreibe die Zeilen an das Ende der Archivierungsdatei um den Tageschart aus der Gesamtdatei zu
erstellen.

Na ja und da steckt der Teufel im Detail. Es geht bestimmt noch einiges zu vereinfachen. Ist nur dass ich mich mit LV erst mal anfreunden muss.
Das ist auch nur ein Teil des Programms, denn über die USB Schnittstelle werden noch ADWandler Daten alle 5 Sekunden von einem Längstwellen Empfänger parallel auf einen anderen Chart gesendet. Die jetzigen Daten vom Goes15 dienen dann zur Korellation mit dem Empfänger.
Ich glaube mal, da wird es noch zu Timingproblemen kommen.
Nun gut! Also ich bin Dir für alle Hinweise sehr dankbar!

Gruss Lutz


RE: Array überschreiben - GerdW - 21.05.2012 08:08

Hallo Lutz,

Zitat:Ich habe den Eindruck, dass sich in dem VI manches noch vereinfachen ließe. Poste es doch mal und schließe auf der linken Seite eine Strinkonstante mit typischem Inhalt an.
"Poste mal das VI" bedeutet nicht, 3 Bilder anzuhängen... Sollen wir hier Bilder editieren oder VIs?

- Mal im Ernst: wozu machst du Schleifen, die dann nur ein einziges Mal durchlaufen? Und das auch noch mehrfach?
- Wie Lucki schon sagte: da kann man viel vereinfachen! Aber nur im VI und nciht in irgendwelchen Bildern...


RE: Array überschreiben - Lucki - 21.05.2012 13:01

Ja, wenn ich so ein integerer Mensch wäre, hätte ich es genau so gesagt wie Gerd. So aber wollte ich mich wegen des immer noch fehlenden VIs einfach aus dem Thread davonschleichen..


RE: Array überschreiben - Lutz_ca - 29.05.2012 08:06

Hallo Gerd Hallo Lucki,

Ich war einige Tage unterwegs und deshalb erst jetzt das VI.
Das mit den Bildern habe ich nur gamacht,weil ich nicht weiss wie groß Euer Bildschirm ist.Big Grin
Also hier ist das VI.
[attachment=39929]
Für alle Hinweise, zur Vereinfachung bin ich Euch sehr dankbar.
Gruss Lutz