LabVIEWForum.de
Messwerte aktualisieren und anzeigen - 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: Messwerte aktualisieren und anzeigen (/Thread-Messwerte-aktualisieren-und-anzeigen)



Messwerte aktualisieren und anzeigen - sgtdodo - 24.01.2010 11:14

Beim Testen an der Heizungsanlage bei meinem Dozenten lief jetzt die serielle Schnittstelle, nachdem ich einen anderen Adapter benutzt habe.
Ich musste jedoch nach einiger Zeit feststellen, dass sich meine Werte nicht aktualisieren, bzw. den Wert der als erstes eingelesen wird, der wird die ganze Zeit durchgängig geschrieben.

Ich hatte damals eine Zeitgesteuerte Schleife um das ganze VI gelegt, da ich sonst Probleme mit dem Speichern von Daten über einen gewissen Zeitraum bekommen hatte. die Daten sollten z.B alle 30sek aktualisiert werden durch die Schleife und 3 Minute lang in eine Datei geschrieben werden, bevor die nächste erstellt wird.

1. an welcher stelle müsste ich die Schleife einstellen, dass diese immer den aktuellen Wert erfasst, bzw. den Wert neu einliest? Zu Testzwecken hatte ich mal mitgeloggte Daten von einem anderen PC an mein VI gesand und vorher die Zeitgesteuerte Schleife durch eine Zeitgesteuerte Sequenz ersetzt. Hier weiß ich natürlich nicht ob die Daten dann wirklich so abgehackt erscheinen, wenn ich an der Heizung dranhänge oder ob das nur durch das senden von PC zu Pc kam, da ich erst am Samstag wieder zu meinem Dozenten komme. Die Datenspeicherung könnte auch in einem anderen VI geschehen, ich könnte ja die Messwerte übergeben.

2. Zum speichern nutze ich das Express VI wegen der oben 3 Minütigen speicherung. Habe zwar versucht mir sowas einzeln zusammenzubasteln, aber irgendwie hat es nicht geklappt. Aber das express vi schreibt die Daten in LVM (eine *.*txt Datei), wenn ich mir diese anschaue sind auch die Werte vorhanden mit einer Urzeit. Nur wenn ich mir diese DAtei im nachhinnein mit z.B einem Signalverlaufsdiagramm anzeigen lassen möchte stimmt die höhe auf der Y- Achse (Temperatur) aber auf der Zeitachse ist nur ein Punkt. In der Datei sind aber in diesen besagten 3 Minuten 6 Messwerte geschrieben worden. Ziel ist es wenn ich diese besagten Dateinen mir anschauen will, dass auf der X-Achse die Uhrzeit steht, wo dieser Wert geschrieben worden ist.

Lv82_img


Messwerte aktualisieren und anzeigen - Lucki - 24.01.2010 13:33

Ja, wie solle sich die Werte auch aktualisieren? Es wird ein einziges Mal gelesen, dann wird Visa geschlossen und die gelesenen Werte an die Schleife übergeben. Die macht dann mit diesen immer gleichbleibenden Werte immer dasselbe.
Richtig muß es so aussehen:
Vor der Schleife wird Visa konfiguriert, d.h geöffnet.
In der Schleife wird Visa (immer wieder) gelesen.
Nach der Schleife, d.h. beim Beenden des Programms, wird Visa geschlossen.
Das zusätzliche Problem ist dann die Synchronisation der Schleife mit den Visa-Daten. Dies kann am besten mit TermChar erfolgen: Visa Read wartet so lange, bis am Ende eines Datensatzes z.B ein Ctrl-A auftritt und übergibt dann den jeweils einen Datensatz. Damit hast Du genau einen Schleifendurchlauf pro Datensatz. Kein Wait in die Schleife reinmachen!
Ich würde auch sagen, daß sich der Flächenverbrauch deines BD von 100% auf zumutbare 20% verringern läßt, was aber u.a. einen besseren Code voraussetzt.


Messwerte aktualisieren und anzeigen - sgtdodo - 24.01.2010 18:10

Wenn ich jetzt alles richtig gemacht habe sieht das ganze dann wie folgt aus. Bei dem Abschlußzeichen habe ich eine 24 gesetzt, da laut hex code dieses dem $ entspricht. Dieser wert taucht zu beginn eines Datensatzes immer wieder auf. Ich hoffe das war richtig. Werde mal ein Beispiel mit hochladen von den Heizungsdaten die ich mal per Hyperterminal mitgelogt habe.
Habe nur das Problem gehabt, dass wenn ich jetzt die daten von pc zu pc sende das die spalten immer wechseln (mal steht in der ersten Spalte der name, dann mal in der dritten etc. deshalb wird das diagramm immer unterbrochen bis der name wieder in der ersten spalte auftaucht) Liegt das an der pc zu pc verbindung?

Lv82_img


Messwerte aktualisieren und anzeigen - Lucki - 25.01.2010 09:07

So wie Du es gemacht hast funktioniert die Synchronisation nicht.
Du scheinst aber in der glücklichen Lage zu sein, die Zeichen auf der Sendeseite verändern zu können, das ist sehr gut. Also: Das Abschlußzeichen sollte natürlich am Ende des Datensatzes stehen und nicht an dessen Anfang. Standard bei LabVIEW ist Hex0A (LineFeed). Das kommt in den Daten sonst nicht vor, warum nimmst Du nicht einfach das? Und: Die Konfiguration mit TermChar muß nicht mit jedem Schleifendruchlauf wiederholt werden.
So funktioniert VISA Read: Es wartet so lange, bis eine der folgenden Bedingungen erfüllt ist, und liest dann (außer bei Bedingung 3) die Zeichen aus dem Buffer:
1. TermChar triftt ein
2. Die angegebene Bytezahl wird erreicht
3. Timeout
Damit die gewünschte Bedingung 1 zutrifft, müssen die Hürden für Bedingungen 2 und 3 entsprechend hoch gelegt werden, als z.B 1000 bytes und 10sec. Wenn Du hingegen vor dem Lesen die Anzahl Bytes im Buffer feststellst und genau diese Anzahl dann ausliest, dann wartet VisaRead natürlich überhaupt nicht und von Synchronisation kann überhaupt keine Rede sein.


Messwerte aktualisieren und anzeigen - Lucki - 25.01.2010 12:09

So könnte es gehen:
Lv82_img[attachment=23894]