LabVIEWForum.de
Messdaten wahlweise in Datei speichern - Refnum Problem - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Messdaten wahlweise in Datei speichern - Refnum Problem (/Thread-Messdaten-wahlweise-in-Datei-speichern-Refnum-Problem)



Messdaten wahlweise in Datei speichern - Refnum Problem - Cruzaderz - 28.10.2010 20:00

Heyho!

Ich kämpfe gerade mit dem Speichern von Messdaten in eine Datei. Express-VIs sind doof, also lieber gleich ordentlich händisch selbst gemacht. Einziges Problem: Man soll sich auch noch während der Laufzeit entscheiden können. Darum muss die Initialisierung innerhalb des case erfolgen und zwar ebenfalls als case, weil er sie ja sonst bei jedem Durchlauf öffnen würde. So weit so gut - aber der Refnum im inneren "false" case treibt mich in den Wahnsinn, weil "save to file" sagt, der Datentyp wäre falsch. Auch, den Pfad aus dem Case heraus zu nehmen oder mit einer Referenz zu arbeiten hat leider nichts gebracht. Hoffentlich habt ihr eine Idee...?!Huh

Viele Grüße,
Dennis

LV9


Messdaten wahlweise in Datei speichern - Refnum Problem - jg - 28.10.2010 23:51

:hmm:Im inneren False-Case ist doch gar keine File-Refnum vorhanden? Das VI ist zu unvollständig, um deine genaue Fragestellung nachzuvollziehen.Bahn
Gruß, Jens


Messdaten wahlweise in Datei speichern - Refnum Problem - Cruzaderz - 29.10.2010 20:59

Sorry, ich dachte das Problem wäre zu trivial, um den false-case zu füllenWink. Ich hab' jetzt mal alle drei von mir getesteten varianten ins VI gebastelt - klar, dass es so nicht laufen würde. Spätestens im untersten Fall hätt' ich aber doch mit einer Lösung des Problems gerechnetSad

Wie gesagt - das Problem dürfte ja nicht nur File-Variblen betreffen, sondern alles, was man in einem case eingibt. bestimmt gibt's da für alle dasselbe Patentrezept und ich habe bloss wieder Tomaten auf den Augen Rolleyes

Gruß,
Dennis


EDIT: Ach nee - mit 'ner Variable klappt es. Wenn mir jetzt noch jemand in einem Satz den Unterschied zwischen Variable und Referenz erklärt bin ich glücklich. Ich hätt' behauptet beide geben den Wert des auf sie bezogenen Objektes wieder. Scheinbar nicht...

Lv09_img2


Messdaten wahlweise in Datei speichern - Refnum Problem - rbliomera - 29.10.2010 21:14

Edit: Deleted. /EOM


Messdaten wahlweise in Datei speichern - Refnum Problem - Cruzaderz - 03.11.2010 19:15

Schade - der dirty fix löppt in der Praxis nichtSad
"LabVIEW: An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @."

Es klappt aber wie gesagt mit ner ganz normalen Referenz auf die Pfadeingabe. Dabei gibt es nun aber das Problem, dass - obwohl CRLF hinten im Array hängt - "write to text file" immer nur die erste Zeile überbügelt. Ein Kollege von mir hat nicht einmal das LF drin und schreibt schön fortlaufend in seine Datei. Er meinte, vielleicht wäre mein innerer case das Problem aber eine Verfolgung mit highlight hat gezeigt, dass er schön einmal ausführt (open and create), dann auf false springt und dem write-to-file immer nur noch den Dateinamen übergibt.

Zweites Problem: "replace and create" oder "open and create" - was man wählt ist wurscht - er erwartet, dass die Datei schon vorhanden ist. Irgendwie impliziert das Wort "create" doch was anderes, oder?! Ich glaub', ich muss dem Kollegen gleich mal das LV-Buch für den heimweg mopsen...Wink

EDIT: Das Beispiel "write datalog" ist recht schön - ich denke, das wird modifiziert und aus Platzgründen in ein Sub-VI verpacket. Blöde Frage dazu: Wenn ich ein Sub-VI zweimal aufrufe hat er im Speicher doch zwei unterschiedliche Kopien davon, richtig? Nicht, dass ich links was in die Variablen schiebe und der Rechte es in seine Datei speichert. So einen Fehler später zu finden dürfte kniffelig werdenWink

Gruß,
Dennis


Messdaten wahlweise in Datei speichern - Refnum Problem - GerdW - 03.11.2010 21:06

Hallo Dennis,

Zitat:Wenn ich ein Sub-VI zweimal aufrufe hat er im Speicher doch zwei unterschiedliche Kopien davon, richtig?
FALSCH! (Zumindestens in den Grundeinstellungen...)
Du musst ein VI explizit als reentrant ("ablaufinvariant") konfigurieren, damit er sich keine "Variablen" überschreibt. Wobei das Wort "Variablen" schon wieder auf ein nicht vorhandenes Grundverständnis von LabVIEW hinweist: LabVIEW benötigt keine Variablen, Werte speichert man in Drähten!


Messdaten wahlweise in Datei speichern - Refnum Problem - Cruzaderz - 04.11.2010 17:58

OK, verstanden - danke für die AufklärungSmile

Aber was erwartest du denn von einem Chemiker nach etwas über zwei Jahren mit Labview?! Wir machen hier "hauptberuflich" Chemie und kein LV - dafür ist wenn überhaupt mal ein einzelner Tag drin und meist arbeite ich genau deswegen eh von zuhause. Auf der anderen Seite gibt es hier unzählige Dinge, die ohne LV einfach nicht laufen würden wie sie es tun. Ein Zwiespalt, den es möglichst elegant zu umschiffen gilt.

Also cha-chaa... Was euch Experten das LV ist mir die Chemie. Stellt euch einfach vor, damit LV läuft müßtet ihr jeden Tag nen paar "einfache" Synthesen machen - dann würdet ihr auch so viel wie möglich anlesen aber eben auch mal was fragen müssen, was nur Erfahrung oder erhöhter Lernaufwand verankern kann...


Und wo wir beim Stichwort Fragen sind: Ich hab' mir den write-datalog eben nochmal genauer angeschaut und der scheint doch nicht das Wahre zu sein. Vielleich hat ja jemand von euch nen Hinweis, warum das Array (unten bei rbliomera's Beitrag abgebildet jedoch ohne die Rückkopplung, somdern mit Referenz zum Dateinamen) immer nur die erste Zeile der Datei überschreibtSad.



EDIT: OK - selbst gefunden, indem ich das write-to-spreadsheet seziert hab'. "set file position" ist doch nötig...