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 

Hinzufügen von Messdaten in Tabelle



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!

04.12.2017, 16:21
Beitrag #1

Raiden90 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jan 2017

LV2009 und LV2014
2015
DE


Deutschland
Hinzufügen von Messdaten in Tabelle
Sehr geehrte Damen und Herren,


ich, Lv09_img2 User, habe die Aufgabe ein Messgerät zu programmieren. Die Messwerte sollen in eine Tabelle reingeschrieben werden und bei neuer Messung dazugefügt werden.
Ich habe das Problem, das entweder die Datei ersetzt wird oder der Header mehrfach eingespeichert wird.

Ist mein Konstrukt grundlegend falsch bzw. ist diese Kombination nicht möglich? Habe ich was vergessen?
Siehe Anhang!


Vielen Dank im Voraus!

LV2009
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2017, 17:14
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Hinzufügen von Messdaten in Tabelle
Ironie
Das Problem sind die sich überschneidende Drähte und dass du von Rechts nach Links programmierst. Da muss LabVIEW durcheinander kommen.

Scherz beiseite, hast du die Hilfe zu "Write to Text File" gelesen?

Zitat:file: can be a refnum or absolute file path. If you wire a path to the file input, the function opens or creates the file before writing to it and replaces any previous file contents. If you wire a file refnum to the file input, writing begins at the current file position. To append to an existing file, set the file position to the end of the file by using the Set File Position function. The default is to display a file dialog box and prompt you to select a file.

If you specify an empty or relative path, this function returns an error. If you specify a path to a hidden file, this function returns an error.

Da du mit einem Pfad ins SubVI reingehst, wird also bei jedem Aufruf entweder ein neuer File angelegt oder, falls der File-Name schon exisitiert, dieser überschrieben.

Wenn du das anders haben willst, verwende "Open File" und "Set File Position" aus der Advanced File Palette.

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
04.12.2017, 17:42
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Hinzufügen von Messdaten in Tabelle
Hallo Raiden,

herzlich willkommen im Forum!

Zitat:Ich habe das Problem, das entweder die Datei ersetzt wird oder der Header mehrfach eingespeichert wird.
Das Ersetzen der Datei hat Jens schon erklärt.
Zum Header: den schreibst du doch selbst jedesmal erneut in die Datei! Warum machst du das, wenn du es eigentlich gar nicht willst?

Lösung:
1. Vor einer Schleife eine (neue) Datei öffnen, dann den Header hineinschreiben
2. Die FileRef in eine Schleife hineinverdrahten und in der Schleife die Messdaten in die Datei schreiben.
3. Nach der Schleife dann den Footer in die Datei schreiben und die Datei schließen.
"Vor/in/nach" ergibt sich aus THINK DATAFLOW!

Zitat:Habe ich was vergessen? Siehe Anhang!
Ja: Deine VIs anzuhängen…
Bilder kann man so schlecht debuggen!
Außerdem hast du vergessen, mal AutoCleanup auszuführen (hatte Jens auch schon "kritisiert").
Solange AutoCleanup ein Blockdiagramm noch verbessern kann, musst du deinen Programmierstil ebenfalls noch verbessern… Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.12.2017, 13:33
Beitrag #4

Raiden90 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jan 2017

LV2009 und LV2014
2015
DE


Deutschland
RE: Hinzufügen von Messdaten in Tabelle
Vielen Dank für die Antworten. Diese haben mir auf jeden Fall weitergeholfen.

Ich habe aber leider immer noch Probleme mit dem Header, aber diesmal ein anderes, dieses wird gar nicht reingeschrieben.
Aber dafür werden jetzt meine Messdaten schön eingespeist in die Datei.

Weiß einer was sich da beißt?
Danke im Voraus

PS: auch danke für die konstruktive Kritik ^^

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.12.2017, 13:39 (Dieser Beitrag wurde zuletzt bearbeitet: 05.12.2017 13:41 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Hinzufügen von Messdaten in Tabelle
Hallo Raiden,

Zitat:Ich habe aber leider immer noch Probleme mit dem Header, aber diesmal ein anderes, dieses wird gar nicht reingeschrieben.
Wo genau schreibst du deine Headerdaten?
Du erzeugst zwar einen String, aber der wird nirgends in die Datei geschrieben!
Tipp: Einfach mal die LabVIEW-Hilfe zu den verwendeten Funktionen lesen…

Zitat:Aber dafür werden jetzt meine Messdaten schön eingespeist in die Datei.
Warum schreibst du die Messdaten vor dem Header in die Datei?
Warum setzt du die FilePosition in einer Schleife auf "Ende"? Warum eine Schleife, die nur genau einmal iterieren soll? Wozu die Wartezeit in der Schleife?
Warum setzt du die FilePosition, wenn du die Datei gleich danach wieder schließt?
Hmm

P.S.: Ich bin kein Fan von großen ConcatString-Funktionen: die lassen sich so gut wie immer einfacher durch FormatIntoString ersetzen…
P.P.S.: Kannst du mal deine LabVIEW-Version im Profil angeben? "student" ist jedenfalls keine offizielle Version… Profil_ergaenzen

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.12.2017, 15:55
Beitrag #6

Raiden90 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jan 2017

LV2009 und LV2014
2015
DE


Deutschland
RE: Hinzufügen von Messdaten in Tabelle
erstens: ich bin Student und programmiere mit Lv09_img2 und Studentversion lv14_img, da ich aber grad für eine Instution arbeite und für die was schreibe, darf ich diese Studentenlizenz nicht hernehmen.
Dadurch macht das für mich kein Sinn, wenn ich anschließend wieder mit der 14ner programmiere.

Gab ja bei meiner Threaderöffnung Lv09_img2 als Userversion an.



So hab jetzt ne Case Struktur mit enum von create and open. Gedanke ist: Wenn ich eine neue Datei erstelle, soll mein Header am Anfang stehen. Bei der nächsten Messung und die Messdaten sollen darunter geschrieben werden, setzte ich das Enum auf Open.
Problem: still Header, der nicht geschrieben wird. Wie kann ich den, laut meinem Anhängen, einfügen. Ich weiß das du Gerd meintest, ich schreib den auch nicht, aber ich sehe grad nicht was ich hinzufügen soll, dass es funktioniert.


   


   

Vielen Dank!!!Yahoo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.12.2017, 16:16 (Dieser Beitrag wurde zuletzt bearbeitet: 05.12.2017 16:18 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Hinzufügen von Messdaten in Tabelle
Hallo Raider,

Zitat:Gedanke ist: Wenn ich eine neue Datei erstelle, soll mein Header am Anfang stehen. Bei der nächsten Messung und die Messdaten sollen darunter geschrieben werden, setzte ich das Enum auf Open.
Also eine kleine Statemachine - prima!

Zitat:Problem: still Header, der nicht geschrieben wird.
Weil du den nirgends in die Datei schreibst…

Im "Create"-State erstellst du einen Header und schreibst ihn in eine Datei. Dann hängst du mittels WriteSpreadsheetFile die Daten ran. (Vorschlag: ersetze WriteToSpreadsheetFile durch die zwei Funktionen ArrayToSpreadsheetString und WriteText.) Dann öffnest du die Datei erneut, setzt die FilePosition und schließt die Datei wieder - dieser Teil ist Unsinn, weil du die Datei mit dem Modus "Create" öffnest! Was wird da wohl passieren?

Im "Open"-State hängst du wieder Daten an, um erneut das Spiel Öffnen/FilePos/Schließen unsinnigerweise zu spielen…

Wenn du dein VI mal hier anhängen würdest, hättest du wahrscheinlich schon die Korrektur vor Augen! Bilder lassen sich mit LabVIEW so schlecht debuggen…

Zum Profil_ergaenzen
Schreib dich einfach LV2009 und LV2014 rein - besser jedenfalls als ein unbestimmtes "student"…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2017, 13:29
Beitrag #8

Raiden90 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jan 2017

LV2009 und LV2014
2015
DE


Deutschland
RE: Hinzufügen von Messdaten in Tabelle
Grüße und danke erstmal,

Profil wurde geändert2hands

Zu meinem neue Problem: 3 mal wird der Header reingeschrieben, kommt das von dem Arraysize? Kann ich das manipulieren? Und die aller erste Messung wird nicht reingeschrieben. Sobald ich auf Create Enum klicke, speist es wie gesagt schön ein, so wie ich es will.

Ich hab euch jetzt mal das ganze VI hochgeladen.
Bin offen für konstruktive Kritik mit Hilfe!


Vielen Dank im Voraus


9.0 .vi  testsimpleroneway.vi (Größe: 50,1 KB / Downloads: 246)


Einige SubVIs sind enthalten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2017, 13:37
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Hinzufügen von Messdaten in Tabelle
Du bist immer noch nicht mit FileIO warm geworden!

Die Reihenfolge beim Anhängen an ein bestehendes File ist:

- File öffnen
- File Pointer auf File Ende setzen
- Jetzt erst Schreiben (Write File).
- File bei Bedarf schließen.

   

In deinem "Open" Case kannst du dir das zusätzliche FileIO nach dem Write Spreadsheet File sparen, dort erledigst du das Anhängen durch die Optionen am Eingang dieses VI. Schau dir einfach mal den Sourcecode dieses VI an (aber NICHT abändern!!!!!).

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
06.12.2017, 15:53 (Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2017 15:54 von GerdW.)
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Hinzufügen von Messdaten in Tabelle
Hallo Raiden,

Zitat:Bin offen für konstruktive Kritik mit Hilfe!
Siehe Anhang…

- Willst du eigentlich immer erst händisch den Modus von "create" nach "open" umschalten? Warum machst du nicht eine Abfrage, ob die Datei schon existiert oder noch nicht? Wenn Datei noch nicht existiert: Header schreiben. Wenn Datei schon da: Messdaten anhängen…
- Warum hat dein VI keine "über alles"-Schleife? Wie sollen da mehrfach (programmatisch) Daten erfasst werden?


Angehängte Datei(en)
9.0 .vi  testsimpleroneway.vi (Größe: 16,11 KB / Downloads: 241)

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
  Messdaten in Tabelle daniel84daniel 2 3.992 23.11.2011 14:53
Letzter Beitrag: daniel84daniel
  Logdaten in .csv Datei hinzufügen Bratfisch 6 6.749 18.11.2009 10:51
Letzter Beitrag: Bratfisch
  Header hinzufügen physiker13 13 13.728 01.10.2009 23:23
Letzter Beitrag: Lucki
  Datei eine Spalte hinzufügen cnongs 4 5.857 02.12.2008 13:33
Letzter Beitrag: cnongs
  TDMS Datei Header hinzufügen SchwarzerPeter 1 4.739 28.11.2008 17:50
Letzter Beitrag: IchSelbst
  ZIP-File hinzufügen Thor 11 10.375 19.11.2008 14:07
Letzter Beitrag: Thor

Gehe zu: