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 

Zeitstempel in Array schreiben



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!

26.08.2008, 11:55
Beitrag #1

tommy111 Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Aug 2008

8.5
2008
de

668xx
Deutschland
Zeitstempel in Array schreiben
Hallo,

folgendes Problem steht in meinem VI aus:

Ich will mir den Zeitstempel in ein Array schreiben. Diese Array hat eine Größe von 10049 und werden mittels Schieberegister nach jeder Schleife aktuallisiert.
Bei den "Datenpuffern" 0, 1, 2 und AC funktioniert das soweit ganz gut (siehe angehängtes Array 2). Will ich das gleiche jedoch mit einem Zeitstempel machen, hab ich immer nur einen Wert im Array drinne stehn (siehe angehängtes Array).

   

..was mach ich da falsch? Oder kann man einen Zeitstempel nicht in ein Array schreiben?

Ziel und Zweck ist es später, die Daten (Puffer 0, 1 und 2) und deren zugehörigen Zeitwert (Puffer Zeitstempel) in eine Textdatei (siehe Anhang Datenausgabe.txt) abzuspeichern.

Hänge das Programm mal mit dazu in Lv85_img


Angehängte Datei(en)
Sonstige .vi  J_D_Version_3_neue_Datenerfassung_11.vi (Größe: 185,89 KB / Downloads: 331)

Sonstige .txt  Datenausgabe.txt (Größe: 553,55 KB / Downloads: 314)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.08.2008, 12:51 (Dieser Beitrag wurde zuletzt bearbeitet: 26.08.2008 13:09 von sccompu.)
Beitrag #2

sccompu Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 105
Registriert seit: Feb 2005

2014
2000
DE

89293
Deutschland
Zeitstempel in Array schreiben
Hallo tommy,

ist eigentlich klar warum sich dein Vi so verhält.
Du hast den Schleifenzähler auf >199 überwacht. Dann schaltet dein Case auf True
und du teilst dein Array auf (Alle Daten >Index 50)
Dies wird 4 mal durchgeführt und dein Array ist dann kleiner 50 Datensätze.
Der Teil größer Index 50 enthält dann keine Datensätze mehr (also leeres Array) wird beim nächsten
Schleifendurchlauf um einen Wert erhöht (1 Datensatz im Array), usw.

Gruß

Christian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.08.2008, 16:16
Beitrag #3

tommy111 Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Aug 2008

8.5
2008
de

668xx
Deutschland
Zeitstempel in Array schreiben
Zitat:ist eigentlich klar warum sich dein Vi so verhält.
Du hast den Schleifenzähler auf >199 überwacht. Dann schaltet dein Case auf True
und du teilst dein Array auf (Alle Daten >Index 50)
Dies wird 4 mal durchgeführt und dein Array ist dann kleiner 50 Datensätze.
Der Teil größer Index 50 enthält dann keine Datensätze mehr (also leeres Array) wird beim nächsten
Schleifendurchlauf um einen Wert erhöht (1 Datensatz im Array), usw.

..hmm, entweder steh ich jetzt auf em Schlauch oder ich versteh das net?! Pccrash

Die ersten 4 Datenpuffer (Schieberegister) funktionieren doch mit diesem Prinzip super. Ich hab immer nur einen bestimmten Datensatz im Array drinne.

Nur wenn ich geanu das selbe mit dem Zeitstempel machen will, funktioniert das net. Hängt das nun an meinem Verständnis, oder an dem Zeitstempel? Kann ich den nicht einfach so wie meine anderen Daten in ein Array schreiben?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.08.2008, 19:51 (Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2008 19:52 von jg.)
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Zeitstempel in Array schreiben
Dein Problem liegt, denke ich, hier begraben:

Deine Datenarrays sind zu Beginn 50x größer als dein Zeitstempel-Array. Denn pro Schleifendurchlauf sampelst du 50 Datenpunkte, aber nur einen 1 Zeitstempel.

Wenn also nach 200 Schleifendurchläufen der True-Case zuschlägt, sind deine Datenarrays zwar, wie beschrieben 10500 Elemente groß, dass Zeitstempel-Array enthält aber nur 201 Elemente.

MfG, Jens

Offtopic2

Ein gut gemeinter Rat: Jedes Frontpanel-Element sollte ein einfaches für den Programmierer aussagekräftiges Label haben, dass man dann auch bei dem entsprechenden Symbol im BD anzeigt. Wenn du dann für den Anwender eine andere Bezeichnung brauchst, dann verwende hierfür bitte die Caption / Untertitel, also Label unsichtbar machen, Caption anzeigen. Weiterer Vorteil bei diesem Vorgehen: Caption kann man auch zur Laufzeit per PropertyNode setzen, Label nicht!

Abschreckendes Bsp aus deinem BD:
   
Die Labels sind lang und verschoben, jetzt hast du sie im BD verkleinert und teilweise sogar freie Texte als Beschreibung dazu gesetzt. Gleich diesen kurzen Text als Label verwenden wäre einfacher...

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.08.2008, 06:53
Beitrag #5

sccompu Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 105
Registriert seit: Feb 2005

2014
2000
DE

89293
Deutschland
Zeitstempel in Array schreiben
Hallo tommy,

schau mal das angehängte Vi an.
Soll das so funktionieren? Willst du im Zeitstempelarray immer die letzten 50 Werte haben?
Dann sollte das so funktionieren.
Ist etwas umständlich programmiert, aber auf die schnelle tuts das schon.

Gruß
Christian


Angehängte Datei(en) Bild(er)
   

Sonstige .vi  J_D_Version_3_neue_Datenerfassung_11.vi (Größe: 150,42 KB / Downloads: 298)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.08.2008, 08:48
Beitrag #6

tommy111 Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Aug 2008

8.5
2008
de

668xx
Deutschland
Zeitstempel in Array schreiben
Zitat:Dein Problem liegt, denke ich, hier begraben:

Deine Datenarrays sind zu Beginn 50x größer als dein Zeitstempel-Array. Denn pro Schleifendurchlauf sampelst du 50 Datenpunkte, aber nur einen 1 Zeitstempel.

Wenn also nach 200 Schleifendurchläufen der True-Case zuschlägt, sind deine Datenarrays zwar, wie beschrieben 10500 Elemente groß, dass Zeitstempel-Array enthält aber nur 201 Elemente.

MfG, Jens

..hab mir das nochmal durch en Kopf gehn lassen und ich denke genau das ist das Problem. Ich glaub ich muß den Zeitstempel vor die Programmschleife setzen. Dann an die derzeitige Stelle des Zeitstempels muß ich dann irgendwie die Zeit pro Schleifendurchlauf im Schieberegister hochzählen, dann müsste das ganze funktionieren?!

Zitat:Ein gut gemeinter Rat: Jedes Frontpanel-Element sollte ein einfaches für den Programmierer aussagekräftiges Label haben, dass man dann auch bei dem entsprechenden Symbol im BD anzeigt. Wenn du dann für den Anwender eine andere Bezeichnung brauchst, dann verwende hierfür bitte die Caption / Untertitel, also Label unsichtbar machen, Caption anzeigen. Weiterer Vorteil bei diesem Vorgehen: Caption kann man auch zur Laufzeit per PropertyNode setzen, Label nicht!

..werd ich für die kommenden Vi's beherzigen. Danke für den Rüge.Unsure

Zitat:Hallo tommy,

schau mal das angehängte Vi an.
Soll das so funktionieren? Willst du im Zeitstempelarray immer die letzten 50 Werte haben?
Dann sollte das so funktionieren.
Ist etwas umständlich programmiert, aber auf die schnelle tuts das schon.

Gruß
Christian

..hmm ich will eher die 10050 Zeitwerte passend zu meinen 10050 Messwerten der oberen Datenpuffer (0, 1 und 2) haben. Trotzdem danke für die Mühe. Werd's mal, wie oben beschrieben, versuchen.

Bin trotzdem für jeden weiteren Rat dankbar....
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.08.2008, 13:59
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Zeitstempel in Array schreiben
' schrieb:..hab mir das nochmal durch en Kopf gehn lassen und ich denke genau das ist das Problem. Ich glaub ich muß den Zeitstempel vor die Programmschleife setzen. Dann an die derzeitige Stelle des Zeitstempels muß ich dann irgendwie die Zeit pro Schleifendurchlauf im Schieberegister hochzählen, dann müsste das ganze funktionieren?!
Nein, das ist auch nicht die Lösung, zumindest, wenn du zu jedem Datenwert eine Zeitstempel haben willst und dieses Array immer genauso groß sein soll!

Nochmal, pro Schleifendurchlauf hängst du 50 Datenpunkte an deine 3 großen Arrays dran, aber an dein Zeitstempel-Array nur einen Wert! In deiner Case-Struktur schneidest du aber bei allen Arrays immer 50 Werte weg!

Jetzt verstanden, was falsch läuft?

Übrigens, du hast jeweils schon einen Zeitstempel zu jedem 50er Satz an Daten, denn dein Read-AI Array gibt dir Waveforms zurück, die aus den Komponenten t0 (=Zeitstempel des ersten Datenwerts), Delta-t (zeitunterschied zwischen 2 Werten) und den Daten selbst besteht.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.08.2008, 14:29
Beitrag #8

tommy111 Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Aug 2008

8.5
2008
de

668xx
Deutschland
Zeitstempel in Array schreiben
Zitat:ZITAT(tommy111 @ 28.08.2008 , 09:48:31) *
..hab mir das nochmal durch en Kopf gehn lassen und ich denke genau das ist das Problem. Ich glaub ich muß den Zeitstempel vor die Programmschleife setzen. Dann an die derzeitige Stelle des Zeitstempels muß ich dann irgendwie die Zeit pro Schleifendurchlauf im Schieberegister hochzählen, dann müsste das ganze funktionieren?!

Nein, das ist auch nicht die Lösung, zumindest, wenn du zu jedem Datenwert eine Zeitstempel haben willst und dieses Array immer genauso groß sein soll!

Nochmal, pro Schleifendurchlauf hängst du 50 Datenpunkte an deine 3 großen Arrays dran, aber an dein Zeitstempel-Array nur einen Wert! In deiner Case-Struktur schneidest du aber bei allen Arrays immer 50 Werte weg!

Jetzt verstanden, was falsch läuft?

..ja, ist mir jetzt endlich auch mal aufgefallenIdee

Zitat:Übrigens, du hast jeweils schon einen Zeitstempel zu jedem 50er Satz an Daten, denn dein Read-AI Array gibt dir Waveforms zurück, die aus den Komponenten t0 (=Zeitstempel des ersten Datenwerts), Delta-t (zeitunterschied zwischen 2 Werten) und den Daten selbst besteht.

...dazu hab ich auch schon einige Themen im LV-Forum gelesen. War meine zweite Idee.
Da die spätere Ausgabe der Messdaten ja sowieso in Excel weiterverarbeitet werden sollen wär es sinnvoller nur das dt zu jedem Messwert anzugeben, zusätzlich halt noch eine genaue Angabe über den Zeitpunkt der Messung.
Die *.txt soll dann wie im Anhang aussehen, das reicht vollkommen.

Nur muß ich jetz noch schauen wie ich mir ein array baue, welches aus den 10050 Elementen besteht und der Abstand jedes Elementes dann halt dt hat. (siehe Anhang)

Bin heut nur etwas am kränkeln und net ganz auf der Höhe, mal sehn ob ich morgen sowas auf die Reihe bekommen oder sogar hier schon sowas gepostet wurde. Falls einem von euch was derartiges über die Füße läuft bin ich natürlich über en link oder so dankbar. Offtopic2

LG
Jürgen


Angehängte Datei(en)
Sonstige .txt  Datenausgabe.txt (Größe: 357,43 KB / Downloads: 349)
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
  Aus 2D-Array jede x-te Zeile in weiteres 2D-Array schreiben P.J. 5 6.281 13.11.2020 09:05
Letzter Beitrag: GerdW
  Werte in Array schreiben- Mittelwert bilden und ausgeben um0k 10 8.668 25.08.2020 14:19
Letzter Beitrag: GerdW
  Werte nacheinander in Array schreiben über ein Schieberegister BlackEagle 5 8.552 13.12.2019 13:40
Letzter Beitrag: GerdW
Question Parallele FOR-Schleife: Parallel in gleiches Array schreiben..? wassersebastian 4 5.592 04.10.2016 11:18
Letzter Beitrag: wassersebastian
  Spektren mit For-Schleife sortieren und in Array schreiben Daniel100 2 3.949 03.09.2016 08:25
Letzter Beitrag: Lucki
  Messwerte mit Zeitstempel in Tabelle schreiben versuch1 1 3.827 22.06.2014 20:22
Letzter Beitrag: GerdW

Gehe zu: