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 

Messwerte in TXT 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!

06.06.2019, 06:51
Beitrag #1

MarcoN Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 68
Registriert seit: Mar 2019

2016
2019
DE_EN

562**
Deutschland
Messwerte in TXT schreiben
Hallo,

ich versuche gerade Aufzeichnungen in einer .txt Datei dokumentieren. Klappt soweit auch ganz gut bis auf einen Wert!

Ich möchte :
- Die Uhrzeit erfassen (Diese habe ich mir über einen Timestamp geholt und anschließend auf Stunden, Minuten und Sekunden getrennt)
- Die Raumtemperatur erfassen ( Dafür habe ich einen Sensor der über RS232 Daten sendet)
- Die Messwerte von meinem Drucksensor erfassen.

Ich soll über einen Zeitraum von 5 Minuten alle 2 Sekunden einen Wert in meine txt schreiben. Das Schreiben selbst funktioniert bis auf den Wert "Messung 1" -> siehe Anhang. Dort wird mir in die txt immer eine null geschrieben obwohl ich zu Testzwecken schon nicht den eigentlichen Wert abgreife sondern einfach feste Konstanten gebe.

Falls jemand Verbesserungsvorschläge hat, gerne in die Kommentare setzen Blush


Angehängte Datei(en) Thumbnail(s)
       

Gruß
Marco
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.06.2019, 07:10
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Messwerte in TXT schreiben

Akzeptierte Lösung

Durch die Verwendung von lokalen Variablen und die parallele Ausführung deiner Speicherroutine hast du dir eine wunderbare "Race-Condition" programmiert.

Merke, alles was LabVIEW parallel abarbeiten kann, wird in der Regel auch parallel abgearbeitet. Dazu gehört u.a., dass eine lokale Variable schon ausgelesen wird, obwohl du woanders im Code erst einen Wert in den Indikator schreibst. Und das passiert dir hier. Du schreibst erst einen Wert in "Messung 1", nachdem du 1x mit deinem Fluke kommuniziert hast. Zu diesem Zeitpunkt ist die Datei längst angelegt und der bisher vorhandene Default-Wert aus "Messung 1" ausgelesen.

Mögliche Lösung: Starte das Speichern von Werte erst, wenn du mind. 1x alle Werte ausgelesen hast.

Weiterhin: Gerade die lokalen Variablen "Hour", "Minute" und "second" sind vollkommen überflüssig, hier langt eine Weitergabe per "Draht".
Außerdem wird deine Speicherung so nicht funktionieren, da du in jedem Aufruf die Datei neu anlegst. Datei anlegen und Header schreiben gehört nicht IN die Messschleife!

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.06.2019, 07:17 (Dieser Beitrag wurde zuletzt bearbeitet: 06.06.2019 07:39 von TR61.)
Beitrag #3

TR61 Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Aug 2013

2019
2014
DE


Deutschland
RE: Messwerte in TXT schreiben

Akzeptierte Lösung

Hallo MarcoN,

du tust leider nicht sicherstellen, dass in die Datei geschrieben wird erst nachdem du alle Werte hast.

Zitat: "Think Dataflow"

bzw. da die Anderen Elemente laut deiner txt-Datei Inhalt besitzen, beschreibst du evtl. dein "Messung 1" wo anders im Code mit einer "0" Stichwort Race-Condition


Grüße TR
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.06.2019, 07:44 (Dieser Beitrag wurde zuletzt bearbeitet: 06.06.2019 07:50 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.468
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Messwerte in TXT schreiben

Akzeptierte Lösung

Hallo Marco,

andere haben ja schon auf THINK DATAFLOW! hingewiesen, hier noch der Link in meiner Signatur...

Weitere Kommentare:
- den Timestamp würde ich nicht mit %g formatieren, hier reicht %d vollkommen aus... (Oder gleich korrekt als HH: MM: SS!)
- wozu das separate WriteText, um einen Zeilenvorschub zu schreiben? Warum nicht einfach das LF in den Formatstring aufnehmen?
- wozu gemischte Trennzeichen in deinem Text? Entweder Semikolon oder Space/Tab, aber nicht beides gleichzeitig...
- bei Stringkonstanten ist es hilfreich, immer den Anzeigemodus sichtbar zu machen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.06.2019, 09:39
Beitrag #5

MarcoN Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 68
Registriert seit: Mar 2019

2016
2019
DE_EN

562**
Deutschland
RE: Messwerte in TXT schreiben
Erstmal danke für die vielzähligen Antworten. Ich versuche das mal Schritt für Schritt abzuarbeiten:

@ Jens: Du hast natürlich Recht. Das war nicht gut durchdacht. Ich habe jetzt die Sequenz für das Schreiben der TXT einfach hinter meine Messung gelegt. Jetzt steht in meiner TXT auch der Wert für den Druck. Die Speicherung und den Header habe ich jetzt auch vor meine Whileschleife gesetzt!

@ TR: Ich wollte sicher gehen das mein Anzeigeelement mir beim Start des VI´s keine Werte vom vorherigen Lauf zeigt. Allerdings ist das im Nachhinein gar nicht so kritisch, da ich mit meinem SubVI "FLUKE 700G27 ZERO MEAS" sowieso schon den Sensor wieder auf Null stelle. Deswegen habe ich jetzt alle unnötigen lokalen Variablen entfernt!

@ Gerd:
- Ich habe den umgewandelten TimeStamp jetzt auf %d umgestellt und habe die ";" durch ":" ersetzt.
- Wie meinst du das? Muss ich in den String "%d;....." noch ein Enter einfügen und er würde dann nach dem Durchlauf eine Zeile springen?
- Habe ich geändert. Wird jetzt nur mit Space gemacht.

Im Anhang ist ein Bild wie die txt im Moment aussieht!


Zusammengefasst: Es funktioniert jetzt fast alles. Das einzige Problem ist jetzt nur das ich für einen Durchlauf 9 Sekunden brauche aber theoretisch alles in 2 Sekunden durch sein soll.


Angehängte Datei(en) Thumbnail(s)
   

Gruß
Marco
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.06.2019, 10:01
Beitrag #6

NoWay Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 241
Registriert seit: Jul 2013

LV-2019
2013
EN


Deutschland
RE: Messwerte in TXT schreiben
(06.06.2019 09:39 )MarcoN schrieb:  - Wie meinst du das? Muss ich in den String "%d;....." noch ein Enter einfügen und er würde dann nach dem Durchlauf eine Zeile springen?

Was GerdW an dieser Stelle wahrscheinlich meint, ist der Zusatz "\n" in deinem Format String.
Beispiel:    
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.06.2019, 06:36
Beitrag #7

MarcoN Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 68
Registriert seit: Mar 2019

2016
2019
DE_EN

562**
Deutschland
RE: Messwerte in TXT schreiben
Wunderbar! Funktioniert alles super!

Vielen Dank an alle!

Gruß
Marco
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
  Messwerte in Excel schreiben heaster 5 8.515 24.07.2015 07:38
Letzter Beitrag: GerdW
  Messwerte in Datei schreiben lola2014 1 5.384 14.11.2014 13:47
Letzter Beitrag: Y-P
  Messwerte in Datei Schreiben Carpediem47 3 5.463 09.08.2012 12:02
Letzter Beitrag: Y-P
  Messwerte in Excel schreiben jonnymi 7 15.394 25.06.2012 21:29
Letzter Beitrag: jonnymi
  Messwerte in Datei schreiben mit absoluter Zeitangabe easydive 2 7.416 27.01.2012 13:02
Letzter Beitrag: easydive
  Messwerte mit Header in Datei Schreiben sumsi 12 22.574 09.05.2011 14:11
Letzter Beitrag: n00b32

Gehe zu: