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 

Stringtabelle



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!

29.10.2015, 13:38
Beitrag #51

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
RE: Stringtabelle
Hi,

innerhalb von 1 Sekunde werden von der Hardware 4 Datenarrays von unterschiedlichen Signalen ausgegeben.
Es ist ja auch zum Testen egal wieviele Werte im Array sind.
Zum Testen habe ich ja auch im VI (Beitrag 47) deswegen erstmal 3 Werte pro Array eingefügt und für die Anzahl der Messungen das ganze mit einer For-Schleife simuliert.
So kann man eigentlich Testen und Programmieren.
Wie das Endprodukt später aussehen soll habe ich in meinen letzten Beitrag gepostet.

Ich füge dennoch das Hauptprogramm (lösche alles unrelevante heraus) an, damit Ihr sehen könnt wie mein Aufbau ist und keine "Verheimlichungen " für eine schnelle Hilfe mehr vorhanden sind.
Im angefüghten VI habe ich alles nochmal detailliert erläutert.

Mit freundlichen Grüßen
HCO


Angehängte Datei(en)
12.0 .vi  Hauptprog zum Testen1.vi (Größe: 65,48 KB / Downloads: 153)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.10.2015, 11:10
Beitrag #52

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Stringtabelle
Jetzt wird es klarer. Das schreit nach einer Übergabe der Ergebnisse 1 Messung (deine 1444er Arrays) per Queue von der Mess-Schleife zu einer Speicher-Schleife.

Hier ein stark vereinfachter Vorschlag:

12.0 .vi  Vorschlag.vi (Größe: 20,31 KB / Downloads: 175)


Bedenke aber den Speicherverbrauch! Da du zum Abspeichern als ASCII-Datei in dem von deinem Chef gewünschten Format die Daten aller Messungen im Speicher vorhalten musst, brauchst du pro Messvorgang (also pro Sekunde) ca. 34 kB Speicher. Pro Minute sind das dann ca. 2 MByte. Und das ist nur die Datenstruktur der DBL-Werte, zur Wandlung in ASCII brauchst du jedes Mal auch einiges an Speicher.

Gruß, 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
30.10.2015, 16:47
Beitrag #53

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
RE: Stringtabelle
Hi,
das hilft mir sehr .
Vielen vielen Dank.

Ich habe dein Beispiel VI in mein Test_HauptVI mit eingefügt und es läuft auch wunderbar.

Nur ich möchte gerne das kontinuierlich in die Logdatei geschrieben wird.

Das Problem ist, ich lege ja in der Eventstruktur quasi den Pfad an und schiebe Ihn hin und er bis ich auf Messung beenden drücke und dann werden die Daten in die Textdatei geschrieben.
Jedoch wenn man wieder auf Messung starten drückt dann werden wieder die alten Daten plus die neuen Daten im Schieberegister angefügt und dann wieder bei Messung beenden in die Textdatei geschrieben. (dann sind die Daten doppelt).
Ich möchte aber nun in der "Speicher While Schleife" direkt die Daten kontinuierlich einlesen, dann wäre das Problem gelöst.

Lösen könnte ich es indem ich den Pfad bzw. die Referenz vor den While Schleifen beim Porgrammstart einfüge, dann würde dies ja nur einmal ausgeführt werden und ich gebe dann den Pfad weiter in die "Speicher Schleife ", wo ich wie schon geschrieben, in die Textdatei kontinuierlich reinschreibe-

Möchte ich jedoch nicht so lösen.
Deswegen ist meine erste Frage wie ich das ohne meinen Vorschlag anzuwenden zu müssen lösen könnte.
Ich müsste ja irgendwie die Referenz von der "Ereignisschleife" in die "Speicher Schleife" bekommen. Würde das wieder mit Queues gehen , indem ich dann die Referenz einmalig reinschiebe und dann in der Speicher-Schleife in eine Schieberegister hineingebe?

Und wie bekomme ich das ganze mit dem Tabellenkopf hin, das muss ja alles dynamisch angepasst werden.

Ich hoffe auf Hilfe.

Gruß HCO


Angehängte Datei(en)
12.0 .vi  Hauptprog zum Testen3.vi (Größe: 54,74 KB / Downloads: 189)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.10.2015, 17:35
Beitrag #54

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Stringtabelle
Hinweise:
1) Für alle Cluster Typdefs anlegen!
2) Mein Vorschlags-VI sollte dir nur das Grundkonzept zeigen. In Realität sollst du die Speicher-Schleife mit deiner Ereignis-Schleife verheiraten! Das Sammeln der Daten könntest du z.B. im Time-Out-Case der Event-Struktur erledigen. Und schon hast du das Schieberegister mit den Messdaten in der Ereignis-Schleife und kannst es im Event "Messung starten" neu initialisieren. Und das mit dem dynamischen Tabellenkopf, da darfst du dich jetzt erst einmal selber dran versuchen. Genügend Vorschläge hast du inzwischen. Kleiner Tipp: Du weißt mit meinem letzten Vorschlag immer genau, wie viele Messungen durchgeführt wurden, dann das ist jetzt Teil des Daten-Clusters. Du brauchst kein "Modulo 3" mehr.

Gruß, 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
03.11.2015, 17:56
Beitrag #55

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
RE: Stringtabelle
Hi,
vielen dank nochmal für deine Tipps.
Habe es so gut wie ich kann umgesetzt und das mit dem Tabellenkopf habe ich auch hinbekommen, sowie die Verheiratung mit meinem Event Case.
Nur ich möchte jedoch die eingelesen Spalten von jedem Signal noch zusätzlich nummerieren.
Das klappt bis 3 Messungen, danach wird es durcheinander.
Meine Logik stimmt in dieser Hinsicht noch nicht so ganz, da ich für jede weitere Messungen eine For Scheife hinzufügen muss. (Habe ich Rot umrandet) Geht jedoch nicht da die Messung bis unendlich gehen soll.

2te und wichtigere Sache: Wenn ich nun die Tabelle in meine Textdatei schreibe dann ist die immer doppelt drin und untereinander. (siehe angehängte Bild), da in meinem Programm die Tabelle immer wieder rangehängt wird.

Muss ich dann das Schieberegister weglassen und dann direkt die Daten im Timeout dauerthaft in die Texdatei schreiben?

Gruß HCO


Angehängte Datei(en) Thumbnail(s)
   

12.0 .vi  Hauptprog zum Testen6.vi (Größe: 69,9 KB / Downloads: 148)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.11.2015, 22:28 (Dieser Beitrag wurde zuletzt bearbeitet: 04.11.2015 16:50 von jg.)
Beitrag #56

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Stringtabelle
(03.11.2015 17:56 )Hydrogencarbonat schrieb:  Habe es so gut wie ich kann umgesetzt und das mit dem Tabellenkopf habe ich auch hinbekommen, sowie die Verheiratung mit meinem Event Case.
Nur ich möchte jedoch die eingelesen Spalten von jedem Signal noch zusätzlich nummerieren.
Das klappt bis 3 Messungen, danach wird es durcheinander.
Meine Logik stimmt in dieser Hinsicht noch nicht so ganz, da ich für jede weitere Messungen eine For Scheife hinzufügen muss. (Habe ich Rot umrandet) Geht jedoch nicht da die Messung bis unendlich gehen soll.
Dann musst den den Header halt in einer For-Schleife dynamisch erstellen. Auch das hatten wir schon in mehreren Varianten. Und dass dein VI/Messung nicht bis unendlich funktioniert (zwecks Speicherüberlauf), auch das hatten wir schon.
(03.11.2015 17:56 )Hydrogencarbonat schrieb:  2te und wichtigere Sache: Wenn ich nun die Tabelle in meine Textdatei schreibe dann ist die immer doppelt drin und untereinander. (siehe angehängte Bild), da in meinem Programm die Tabelle immer wieder rangehängt wird.
Und zu guter Letzt, das mit dem "Datei überschreiben" per FilePointer auf 0 setzen - auch das hatten wir schon! Das ist aber nicht in deinem VI drinnen. Wall

Gruß, Jens

P.S. Der Abschnitt in und über dem roten Rahmen in deinem VI lässt sich auf das hier vereinfachen:
   
Deine Fall-Unterscheidung, ob Anzahl der Messungen <=1 ist, ist überflüssig. "Anzahl Messungen" ist mindestens 1!

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
Anzeige
04.11.2015, 00:31
Beitrag #57

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
RE: Stringtabelle
Hi,
ja, das mit dem Filepointer habe ich vorhin auch schon bemerkt.

Habe das mit den numerierten Spalten noch anders und umständlicher gelöst.(siehe Anhang)

Das mit den For Schleifen und den Schieberegistern geht einfacher und macht mehr Sinn. (Dein Beispiel)

Vielen Dank nochmal.

Habe vorhin das Prog ein bischen länger laufen lassen und schon nach weniger als 50 Messungen ist der Speicherüberlauf und die
Textdatei wird unlesbar. (siehe Anhang)
Das hätte ich nicht gedacht, das die TXT.datei so schnell überläuft...-.-
Vorgesehen waren schon mehr als 1 Messstunde der Daten po Sekunde.

Was kann ich dageben tun? Nicht das alles umsonst programmiert ist .....

Gruß HCO


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.11.2015, 08:28 (Dieser Beitrag wurde zuletzt bearbeitet: 04.11.2015 08:30 von GerdW.)
Beitrag #58

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Stringtabelle
Hallo HCO,

Zitat:Habe vorhin das Prog ein bischen länger laufen lassen und schon nach weniger als 50 Messungen ist der Speicherüberlauf und die Textdatei wird unlesbar. (siehe Anhang)
Wo ist der Text "unlesbar"? Ich kann da alle Werte prima lesen!
Hast du evtl. Notepad zum Anschauen deiner Textdatei verwendet? Dir ist bekannt, dass Notepad überlange Zeilen einfach umbricht? Das es bessere Texteditoren gibt (z.B. Notepad++), die dieses dämliche Verhalten nicht zeigen?
Wall
Wo ist da ein "Speicherüberlauf"? Gab es entsprechende Fehlermeldungen von LabVIEW?

Zitat:Was kann ich dageben tun? Nicht das alles umsonst programmiert ist .....
Das hatten wir doch schon ganz zu Anfang gesagt: ein vernünftiges Format zum Speichern der Daten verwenden!
Wer guckt sich stundenlange Datenhalden schon mit einem Texteditor an… Wall

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.11.2015, 09:31 (Dieser Beitrag wurde zuletzt bearbeitet: 04.11.2015 09:32 von jg.)
Beitrag #59

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Stringtabelle
Die Größe der Txt-Datei kann man ziemlich genau vorab bestimmen. Bei deiner aktuellen Variante sind das:
(14*3+1)*1445 = ca. 61 kB pro Sekunde.
Nach 1 Stunde sind das dann ca. 215 MByte nach 1 Stunde.

Gruß, 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
Antwort schreiben 


Gehe zu: