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 

Problem beim durchsuchen eines Array



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!

15.08.2012, 11:51
Beitrag #1

Kernphysik_Jürgen Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: Nov 2009

8.20
2009
de

55116
Deutschland
Problem beim durchsuchen eines Array
Hi Leute,

ich würde gerne mal wieder eure Hilfe in Anspruch nehmen. Und ich hoffe ich hab das neue Thema im richtigen Bereich gestellt. Sollte dem nicht so sein bitte verschieben.

Ich habe ein Messfile(txt/siehe Anhang) welches ich als Array einlese. Dieses Array bereite ich so auf, dass ich es in einem XY-Graphen anzeigen kann. Es sind insgesamt 11 Signale die ich darstelle. Soweit ist alles klar mit dem Programm.

Was ich jetzt vor habe ist, dass ich das Messfile nach zwei Tagen und Uhrzeiten durchsuchen und die dazugehörigen Messwerte als ausgeben will. Mit den jeweiligen Messwerten muss dann noch ein wenig rechnet werden und schon ist das Ergebnis supi.

Folgende Probleme hab ich bei der Auswahl von dem Anfangsdatum und dem Enddatum werden die Sekunden mitgesucht. Was in meinem Fall ein Problem ist da, dass Messfile auch die Sekunden beinhalten. Und einfach weglassen ist auch nicht so einfach möglich.
In meiner Codeversion Funktioniert das Suchen schon ganz gut nur muss ich den EXAKTEN Zeitwert(Uhrzeit/Datum) eingeben sonst findet LV nichts und kann somit nicht rechnen.
Jetzt wäre die Frage gibt es ein Möglichkeit zum einen nur nach Stunden und Minuten zu suchen und den Messwert auszugeben. Oder irgendwie eine Uhrzeiten anzugeben und es wird der nächst gelegene Messpunkt ausgegeben.

Ich hoffe das ich das Problem halbwegs Verständlich geschildert habe und Ihr mir vielleicht weiterhelfen könnt. Sollten Fragen offen sein immer her damit ich versuche sie dann zu beantworten.

Im Anhang hab ich zum einen das Programm(LV8.20), ein dazugehöriges Monatsmessfile und ein Bild um welchen Codeabschnitt es sich dreht.

Ich danke schon mal und hoffe auf schnelle Hilfe.

Grüße aus Mainz
Jürgen


Angehängte Datei(en) Thumbnail(s)
   

8.2 .vi  Messwerte auslesen- Langzeit_test.vi (Größe: 81,43 KB / Downloads: 220)

0.0 .zip  helium_08-2012.zip (Größe: 339,73 KB / Downloads: 285)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.08.2012, 12:25 (Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2012 12:27 von Kasi.)
Beitrag #2

Kasi Offline
LVF-Stammgast
***


Beiträge: 342
Registriert seit: Dec 2010

6 - 2009
2005
DE_EN

79194
Deutschland
RE: Problem beim durchsuchen eines Array
Da du ja eh schon interpolate einsetzt (obwol da eigentlich nur ein array-index gebraucht wird?) kannst du über threshold direkt das naheliegende Datum erreichen.
Wenn du die Interpoliererei vermeiden willst, kannst du den Threshold-Index dann auch Runden und statt interpolate direkten den arrayindex ansprechen, um an ein exaktes Ergebnis zu kommen.

   

(hoffe, dass ich dich richtig verstanden habe Wink)
--edit-- der eine "dbl"-Konverter in der Mitte Unsinn, ist bei der Ctrl-Drag-Kopierschlacht übrig geblieben

If you're havin' serial communication problems I feel bad for you, son, I got 99 problems but a baud ain't one! (except if using USB2serial converters, then I experience serialous problems)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.08.2012, 12:38
Beitrag #3

Kernphysik_Jürgen Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: Nov 2009

8.20
2009
de

55116
Deutschland
RE: Problem beim durchsuchen eines Array
Hallo Kasi,

ich hab die interpolation verwendet weil mir das am Sinnvollsten erschien.
Ich bin nicht fixiert auf die interpolation. Da ich ja eigentlich nur die Messpunkte verwenden will.

Wie würdest du es denn per Array-index lösen? Ich hab das auch schon per Array-Suche wie du sicher gesehen hast versucht nur bin ich da nicht weiter gekommen.

Ich danke schon und nochmals.

Grüße Jürgen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.08.2012, 12:57 (Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2012 13:20 von Kasi.)
Beitrag #4

Kasi Offline
LVF-Stammgast
***


Beiträge: 342
Registriert seit: Dec 2010

6 - 2009
2005
DE_EN

79194
Deutschland
RE: Problem beim durchsuchen eines Array
Ich hab mal neben der Array-Indizierung noch ein paar weitere Verbesserungen einfließen lassen Wink
(Im Grunde ist das Runden auch überflüssig, da das bei der Konvertierung zu I32 beim Array-Index automatisch geschieht)


Angehängte Datei(en) Thumbnail(s)
   

If you're havin' serial communication problems I feel bad for you, son, I got 99 problems but a baud ain't one! (except if using USB2serial converters, then I experience serialous problems)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.08.2012, 14:12
Beitrag #5

Kernphysik_Jürgen Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: Nov 2009

8.20
2009
de

55116
Deutschland
RE: Problem beim durchsuchen eines Array
Hallo Kasi,

vielen Dank deine beiden Vorschläge funktionieren Super. Ich hab mich für deine zweite Idee entschieden.
Die macht im Taskmanager den eindruck, dass Sie weniger Speicher benötigt.

Was ich allerdings nicht zu 100% verstehe ist die Threshold 1D-Array funktion. Ich hab mir die beschreibung in Deutsch und in Englisch durchgelesen und irgendwie will das nicht in meinen Kopf. Desweiteren ist mir aufgefallen, dass diese Funktion Werte ausgibt die vom index-array so nicht verwendet wird.

In meinen Beispiel gibt die Thresholdfunktion die Zeile 17279 aus welche einen Wert von 199,868 im Messfile enthält. Allerdings wird nach dem Index-Array der Wert 199.770 ausgegeben was der Wert aus Zeile 17281 ist, aber der Wert passt zum suchparameter. Ich finde das komisch(nicht Lustig Smile) )

Ich bitte um Erklärung. Wenn jemand eine hat.

Ich danke schon mal.

Grüße Jürgen


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.08.2012, 14:36 (Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2012 14:41 von Lucki.)
Beitrag #6

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Problem beim durchsuchen eines Array
Die Funktion "1D Array interpolieren" funktioniert auch mit "Array of Points", und zwar hast Du dann genau das was Du brauchts: Der X-Wert (hier: Zeit) wird eingegeben, und der interpolierte Y-Wert kommt heraus. Du brauchst dann keine weitere Funktion zum Herausklauben der Werte.
Glücklicherweise kann man auch beim XY-Graph das Format "Array of Points" verwenden. Es ist nur notwendig, die Daten etwas anders zu organisieren.

8.2 .vi  Messwerte auslesen- Langzeit_test.vi (Größe: 40 KB / Downloads: 274)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.08.2012, 15:15 (Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2012 15:17 von Kasi.)
Beitrag #7

Kasi Offline
LVF-Stammgast
***


Beiträge: 342
Registriert seit: Dec 2010

6 - 2009
2005
DE_EN

79194
Deutschland
RE: Problem beim durchsuchen eines Array
Zu deiner Frage nach dem Index, Jürgen:

Die Array-Indizierung beginnt ab 0, die Textdatei zählt die Zeilen ab 1. Außerdem hat die Textdatei eine Einheitenzeile, die aus dem extrahierten Array rausfliegt (mittels der "Array-Subset" Funktion).
Macht insgesamt einen Unterschied von 2 zwischen Arrayindex und Zeilennummer, bzw. Arrayindex + 2 = Zeilennummer. Also alles korrekt.

If you're havin' serial communication problems I feel bad for you, son, I got 99 problems but a baud ain't one! (except if using USB2serial converters, then I experience serialous problems)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.08.2012, 14:01
Beitrag #8

Kernphysik_Jürgen Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: Nov 2009

8.20
2009
de

55116
Deutschland
RE: Problem beim durchsuchen eines Array
Hallo,

@Lucki: Vielen Dankfür die Hilfe ich hab deine Version mal getestet und war erstaunt wie Lange das gebraucht hat bis der Graph anzeigt. Was allerdings an der Reorganisierung des Programmes bzw. des Messfiles liegen wird. Ich denke ich werde die Version von Kasi verwenden.

@Kasi: Super vielen Dank für die Erklärung. Jetzt hab sogar ich es verstanden Smile. Klar wenn das Array bei Null anfängt und die Textdatei bei 1 plus noch die Spaltenbeschreibung ergibt 2 Unterschied. Macht Sinn Smile

Vielen Dank euch beiden. Für die schnelle Hilfe.

Grüße aus Mainz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.08.2012, 14:32 (Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2012 15:10 von Lucki.)
Beitrag #9

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Problem beim durchsuchen eines Array
(16.08.2012 14:01 )Kernphysik_Jürgen schrieb:  @Lucki: Vielen Dankfür die Hilfe ich hab deine Version mal getestet und war erstaunt wie Lange das gebraucht hat bis der Graph anzeigt. Was allerdings an der Reorganisierung des Programmes bzw. des Messfiles liegen wird. Ich denke ich werde die Version von Kasi verwenden.
Das liegt aber nicht an meinem Code. Es ist ein absolutes No-Go, in der für gewöhnlich zeitkritischen Hautschleife bei jedem Durchgang eine Unmenge von Eigenschaftsknoten aufzurufen. Daran habe ich aber nichts geändert, weil das nicht Gegenstand der Frage war. Kasi hat aus demselben Grund das alles weggelassen. Damit ist das VI um Größenordnungen schneller.

Edit: Was sich sagte, ist zwar richtig, trifft hier aber nicht den Kern der Sache. Die Konvertierung der Daten in das von mir gewählte Format dauert tatsächlich volle 2 Sekunden, ist also nicht optimal.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.08.2012, 10:34
Beitrag #10

rasta Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 245
Registriert seit: Oct 2006

LabVIEW 2009-2017
2006
EN

53909
Deutschland
RE: Problem beim durchsuchen eines Array
(16.08.2012 14:32 )Lucki schrieb:  Edit: Was sich sagte, ist zwar richtig, trifft hier aber nicht den Kern der Sache. Die Konvertierung der Daten in das von mir gewählte Foormat dauert tatsächlich volle 2 Sekunden, ist also nicht optimal.

Offtopic2

Hallo Lucki,
mit der Konvertierung habe ich mich beschäftigt und festgestellt, das die "scan from String" super komfortabel aber auch langsam ist. In dem angehängtem Beispiel habe ich die "Date/Time To Seconds Function" als Case hinzugefügt.
Ergebnis: ~ Faktor 3 schneller.
Derzeitiges noch bestehendes Problem: Die Stunde im Zeitstempel hat einen Offset von +1.
Vielleicht ist es ja von Interesse.

Gruß
Ralf


Angehängte Datei(en)
10.0 .vi  Messwerte auslesen- Langzeit_test-dateTime.vi (Größe: 905,35 KB / Downloads: 212)
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
  Array durchsuchen hulk 16 10.399 29.09.2020 19:47
Letzter Beitrag: hulk
  2d-array durchsuchen Jolle 5 4.840 06.11.2019 15:54
Letzter Beitrag: jg
  Auf Eigenschaften eines Textrings zugreifen, der eine Array-Indexanzeige ersetzt Horst 4 4.009 08.08.2019 08:00
Letzter Beitrag: Horst
  Array Problem mmk1988 4 4.415 22.09.2017 12:52
Letzter Beitrag: Freddy
  Problem beim Array in Labview zu befüllen a.Jaou 4 4.586 13.09.2017 11:54
Letzter Beitrag: GerdW
  Kleines Problem beim Datenloggen hulk 10 9.050 09.05.2017 16:34
Letzter Beitrag: hulk

Gehe zu: