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!
11.06.2012, 13:00 (Dieser Beitrag wurde zuletzt bearbeitet: 11.06.2012 13:08 von Heimbo.)
Liebe LabVIEW Freunde,
ich bin absoluter Anfänger, also bitte etwas Nachsicht. Ich möchte einen Rührer steuern und gleichzeitig Rührgeschwindigkeit und Drehmoment aufnehmen und in eine Datei speichern. Dabei habe ich gleich mehrere Probleme: Die Wiedergabe (und damit auch die Speicherung) der aufgenommenen Daten findet viel zu langsam statt und die aufgenommenen Messparameter wechseln in den unterschiedlichen Anzeigeelementen hin und her. Außerdem ist die Formatierung in der geschriebenen Datei nicht so wie gewollt.
Für Anregungen und Hilfe wäre ich sehr dankbar!
MfG
Heimbo
Anzeige
11.06.2012, 13:05 (Dieser Beitrag wurde zuletzt bearbeitet: 11.06.2012 13:05 von GerdW.)
Hallo GerdW,
meine Wartezeit beträgt eine Sekunde, weil ich einen Messwert pro Sekunde aufnehmen möchte.
Den Parameter Rührzahl greife ich mit dem Befehl "r" ab, den Parameter Drehmoment mit "m".
Die Formatierung soll so aussehen, dass nach einem Datum-Zeit-Stempel die einzelnen Parameter, wie sie im Frontpanel untereinander stehen, in einer Tabelle nebeneinander stehen.
Gruß
Zitat:Den Parameter Rührzahl greife ich mit dem Befehl "r" ab, den Parameter Drehmoment mit "m".
Falsch - zumindest in deinem VI oben...
Zitat:meine Wartezeit beträgt eine Sekunde, weil ich einen Messwert pro Sekunde aufnehmen möchte.
Du fragst aber 4 Werte ab. Wie schnell antwortet dein Messgerät denn überhaupt?
Zitat:Die Formatierung soll so aussehen, dass nach einem Datum-Zeit-Stempel die einzelnen Parameter, wie sie im Frontpanel untereinander stehen, in einer Tabelle nebeneinander stehen.
1.) Die FOR-Loop mittendrin ist Blödsinn.
2.) Die ganze Whileschleife ist Blödsinn, da du den Datenfluss nicht beachtet hast. Deine Speicherschleife wird erst nach Ende der Messschleife aufgerufen und speichert dann immer nur die letzten Messwerte... THINK DATAFLOW!
3.) FormatDateTimeString braucht keinen extra Timestamp am Eingang - einfach mal die Hilfe lesen...
4.) Die Sequenzstruktur in der Messschleife ist unötig - THINK DATAFLOW!
Hallo GerdW,
ich habe das VI nochmal überarbeitet: Mess- und Datenschleife habe ich zusammengeführt, so dass auch dauerhaft Daten gespeichert werden. Danke für den Hinweis schonmal!
Ich schicke aber auch mal ein so gespeichertes Excel-Sheet mit, dann siehst du, wie gespeichert wird. Kannst du mir einen Tipp geben, wie ich da vorgehen kann, um in jeder Zeile einen TimeStamp und dahinter die geloggten Messwerte zu erreichen?
Außerdem habe ich die Wartezeit rausgenommen. Trotzdem ist es immer noch so, dass die gezeigten und gespeicherten Parameter mit fortlaufender Messdauer immer mehr hinter der korrkten Zeit hinterherhängen. Weisst du, woran das liegen könnte? Wie schnell das Messgerät antwortet, weiß ich leider nicht.
Gruß
ich könnte mir vorstellen, dass die Antworten deines Rührers ein Zeilenumbruch mit ausgeben und daher die Messwerte untereinander stehen. Du könntest dir die ausgegebenen Strings ja mal in der "Code"-Anzeige anschauen, ob da zB ein "\n" nach dem Wert steht. In dem Fall müsstest du das löschen. Die Zeit steht ja in deiner Datei schon am Anfang der Zeile drin.
Mir scheint aber auch, dass du den Speicher des Rührgerätes nicht komplett ausliest, da in jedem Absatz bei dir die 3 Werte in unterschiedlicher Reihenfolge stehen.
Du könntest die ganzen Messwerte, wenn du sie als String hast, auch in eine Textdatei schreiben.
Eine *.xls-Datei ist hier gar nicht von Nöten (Wie Schwand schon erwähnte). Die Einträge sollen durch einen Tabulator getrennt in eine Binärdatei geschrieben werden. Dies würde eher dem *.csv-Format entsprechen. Und da kannst du den String genauso zusammensetzen, wie du ihn brauchst. z.b. Kannst du deine *.xls-Datei mal in *.csv umbennen. Dann siehst du gleich die zusätzlichen Zeilenumbrüche
Beste Grüße,
NWO
9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris.
NI schrieb:To use the abort button is like using a tree to stop a car!
(11.06.2012 22:10 )NWOmason schrieb: Die Einträge sollen durch einen Tabulator getrennt in eine Binärdatei geschrieben werden.
kurze Korrektur, um Verwirrung vorzubeugen: Textdatei, nicht Binärdatei
If you're havin' serial communication problems I feel bad for you, son, I got 99 problems but a baud ain't one! (except if using USB2serial converters, then I experience serialous problems)
Hey Leute,
vielen Dank für eure Antworten schonmal!
Schwand, du hast recht. Der Rührer schliesst standardmäßig jede Antwort mit einem Zeilenumbruch ab, daher stehen meine Messwerte untereinander. Da ich als Befehl aber z.B. nur "r" eingebe, weiß ich nicht, wie ich das umgehen/ändern kann.
Und wenn ich den auszulesenden Speicher erhöhe, ändert sich leider nichts in Bezug auf die unterschiedliche Reihenfolge. Außerdem wird mir auch kein Fehler/keine Warnung angezeigt, dass der Speicher nicht komplett ausgelesen würde. Vielmehr ist es so, dass der ausgelesene Speicher deutlich langsamer wiedergegeben wird, als er aufgenommen wird. Je länger ich eine Messung laufen lasse, desto länger dauert es, bis mir Parameteränderungen angezeigt werden, obwohl sie längst eingetreten sind. Hängt das mit meiner eingestellten 1 Sekunde Wartezeit zusammen? Habs auch mit Time-Delay versucht. Ist genau so. Aber ganz ohne eine Zeitverzögerung funktioniert das VI gar nicht. Weiß jemand Rat?
Gruß
du kannst die Strings, die dir ausgegeben werden, ja nach den Zeilenumbrüchen durchsuchen und diese dann löschen. In der Stringpalette müsste es geeignete Funktionen geben.
Um was für ein Rührgerät handelt es sich den eigentlich?