LabVIEWForum.de - Lesen großer txt ohne Laufzeiteinbußen

LabVIEWForum.de

Normale Version: Lesen großer txt ohne Laufzeiteinbußen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Die Daten sind z.T. stark gestört, und da ist vermutlich schon bei der Aufnahme etwas suboptimal gelaufen. Man kann einen gesampelten Verlauf nur dann innerhalb der möglichen Bandbreite von fo = 1/2ts wieder rekonstruieren, wenn entweder der Verlauf kein höheren Frequenzen enthalten hat, oder, wenn nicht, vor der Digitalisierung ein analoges Tiefpassfilter Filter mit fo < 1/2ts vorgeschalten wurde. Das war hier offensichtlich nicht der Fall. Das ist aber auch schwierig zu machen. Aber da gibt es zum Glück noch eine andere Möglichkeit, die überhaupt nix kostet: Da Abtastrate so hoch wie möglich wählen, also z.B 1000Hz statt 1Hz, und, damit nicht zu viel Datenmüll entsteht, gleich von Anfang an von je 1000 Samples den Mittelwert bilden und speichern.
Das Gleiche gilt aber auch, wenn man die erfassten Daten nachträglich weiter reduzieren will. Also nicht jede 50ste Sample verwenden, sondern immer die Mittelwerte von 50 Samples zu einer Sample zusammenfassen.
Und die weitere positive Nachricht: Dafür gibt es ein fertige Funktion. Die macht aus den nicht äquidistanten XY-Paaren einen Verlauf mit konstantem dt und besorgt auch die Mitelwertbildung bzw. Filterung (nach verschiedenen Methoden).
Zu finden unter: Signalverarbeitung/Aufbereitung/Neuabtastung
Hallo Lucki,

bzgl. dieses Posts:


(29.10.2018 22:08 )Lucki schrieb: [ -> ]Das ist ein allzu bekanntes Problem. Dann wird der Dezimalpunkt in Deiner Datei nicht als Dezimal-Trennzeichen anerkannt. Wenn Du Labview und ein deutsches Windows installiert hast und in beiden die Standardeinstellungen gelassen hast, dann ist das leider der Fall. Das zu ändern gibt es mehrere Möglichkeiten:
1. Ganz einfach: Das Formatzeichen "%.;" (ohne Anführungszeichen) verwenden.
2. In den Labview-Optionen "Frontpanel/Lokales Dezimalzeichen" das Häkchen entfernen.
3. In Windows in den Zeit- und Datumseinstellungen den Dezimalpunkt statt des Kommas als lokale (Länder-) Einstellung festlegen.

Ich habe bei mir das Letzgenannte gemacht, und deshalb hatte ich das Problem nicht.
Gruß Lucki

Ich stehe vor der Aufgabe, dass ich von der Anwendung eine .exe zu erstellen habe, die auf einem sog. Zielrechner zum laufen kommt. Auf dem Zielrechner ist die Änderung des Dezimal-Trennzeichens (in Windows) jedoch nicht gewünscht.

Variante 1: Wird von mir favorisiert. Die Änderung des Strings am "Tab. mit Trennzeichen lesen"-Block auf "%.;" oder "%.;.3f" hatte jedoch keinen Effekt. Könntest du mir (anhand des beigefügten Screenshots) bitte einmal aufzeigen, wo genau der Format-string zu ändern ist, und wie genau die Sytax lautet, wenn ich
1) den Punkt als Trennzeichen und
2) drei Nachkomma(punkt)stellen haben möchte.)
Variante 2: Funktioniert, jedoch nur wenn die Anwendung als .VI läuft. Erstelle ich eine .exe davon funktioniert es nicht mehr. (Es sei denn Variante 3 wird zusätzlich umgesetzt.)
Variante 3: Ist für den Zielrechner nicht gewünscht.

Ich tendiere so zu Variante 1, da ich annehme, dass wenn ein VI nach Variante 1 programmiert ist, eine daraus erstellte .exe sich dann genau so verhält; Korrekt?

Wieder einmal vielen Dank im Voraus & schöne W.e.,
Philipp
Hallo Philipp,

die Funktion ReadDelimitedTextfile erwartet dort den passenden Formatstring.
Wenn deine Zahlen nach "deutschen" Konventionen gespeichert wurden, solltest du dort %,; angeben, um ein Komma als Dezimaltrennzeichen zu definieren!

Man könnte sich auch einfach mal die LabVIEW-Hilfe zu den Formatstrings durchlesen…
Hallo Gerd,

ich habe bereits eine ganze Menge Zeit mit der LabView Hilfe zugebracht und natürlich schon längst von der Syntax gelesen. Meine Daten haben das folgende Format: 1.20663 (also amerikanisch)

Gebe ich %.3f im Formatstring des "Delimited Read" Block an wird das VI korrekt ausgeführt, sprich meine Daten inkl. Kommazahlen verarbeitet. Erstelle ich aus dem VI jedoch eine .exe und führe sie auf dem selben Rechner aus, werden die Kommazahlen abgeschnitten. Dies führt natürlich zu schwerwiegenden Fehlern.

Ich benötige hierfür eine Lösung ohne in Windows das Standard-Trennzeichen vom Komma auf den Punkt zu ändern.

Danke für die Hilfe.

Philipp
Hallo Philipp,

Zitat:Ich benötige hierfür eine Lösung ohne in Windows das Standard-Trennzeichen vom Komma auf den Punkt zu ändern.
Dann musst du deiner EXE explizit mitteilen, dass du das englische Zahlenformat auch auf einem Computer mit deutschen Regionaleinstellungen verwenden willst.
Ich verwende dafür "%.;%f"…

Zitat:Gebe ich %.3f im Formatstring des "Delimited Read" Block an wird das VI korrekt ausgeführt, sprich meine Daten inkl. Kommazahlen verarbeitet.
Hast du in den LabVIEW-Optionen etwa eingestellt, dass die Betriebssystem-Vorgabe NICHT beachtet werden sollen? (Pfui!)
Dann gilt das natürlich nur für LabVIEW (bzw. für die IDE) selbst!
Du könntest deiner EXE aber auch einen Key im zugehörigen INI-File mitgeben, sodass sie ebenso die Windows-Vorgaben ignoriert. Ich bevorzuge aber die klare und damit dokumentierte Programmierung.)
Hy Gerd,

vielen Dank! Die syntax "%.;%f" im Format String des "Read Delimited" - Blocks hat es gerichtet! Nun läuft auch die .exe auf dem Rechner auf dem ein Komma als Standardtrennzeichen definiert ist.

Ich habe in den LabView-Optionen unter "Lokales Dezimalzeichen verwenden" das Häckchen wieder gesetzt. Darauf bezog sich dein Pfui, oder?

Und zuletzt: Basierend auf der LabView-Hilfe-Seite "Syntaxelemente für Formatbezeichner" wäre ich NIE Ahrg1 darauf gekommen, dass so die Lösung aussehen würde. Hast du einen Tipp für mich, wo ich weitere / detaillierte Infos zu Themen wie diesen erhalten kann?

(Falls nicht, vielleicht kann st du mir die Knack-punkt-Stelle auf der Seite einmal nennen, aus der diese Information hervor geht?)

Danke Dir!
Philipp
(18.12.2018 11:04 )Philipp841 schrieb: [ -> ]Hast du einen Tipp für mich, wo ich weitere / detaillierte Infos zu Themen wie diesen erhalten kann?

(Falls nicht, vielleicht kann st du mir die Knack-punkt-Stelle auf der Seite einmal nennen, aus der diese Information hervor geht?)


Hallo Philipp,

was die Formatbezeichner angeht, kann man einfach die Funktion "Format into String" irgendwo im BD platzieren und mit einem Doppelklick auf die Funktion in den Dialog für die Formatbezeichner gehen. Dort kann man dann einfach auswählen, was man möchte und LabView baut dir den entsprechenden Formatstring zusammen.
Ähnlich geht es in dem Formatierungsdialog eines FP-Elements --> Fortgeschrittener Bearbeitungsmodus.

Gruß, Marko
Hallo Philipp,

die Formatsyntax für "%,;" und "%.;" wird doch explizit in der Hilfe beschrieben...
Seiten: 1 2 3
Referenz-URLs