LabVIEWForum.de - Darstellen eines definierten Bereiches in einem XY-Graphen in einer laufenden Messung

LabVIEWForum.de

Normale Version: Darstellen eines definierten Bereiches in einem XY-Graphen in einer laufenden Messung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
Ich bin ein absoluter Neuling in Sachen LabView. Von daher bitte ich um Verständnis, wenn ich mich an manchen Stellen etwas unpräzise oder falsch ausdrücke Hmm.

Zu meinem Projekt:
Ich möchte gerne 3 Strom-Signale einlesen (1x Temperatur und 2x Druck). Die Abtastfrequenz möchte ich dabei gerne wie diverse andere Inhalte (Kanal-Name etc.) vor jeder Messung einstellen können. Die Messungen dauern bis zu 40 Minuten.
Innerhalb der Messungen sollen die aktuellen Werte (inklusive Zeitstempel) in einem Diagramm angezeigt werden. Es ist wichtig dass dieses in Echtzeit geschieht, also stets die aktuellen Werte in der laufenden Messung dargestellt werden.

Bis dahin konnte ich das ganze für den ersten Messkanal (Temperatur), dank diversen Internet-Anleitungen und vielen, in diesem Forum niedergeschriebenen Beiträgen realisieren. (Siehe Anhang) Für die fehlenden Kanäle (2x Druck) würde ich das ganze später identisch umsetzen.

Nun zu meinen konkreten Problemstellungen:
  1. Wie kann ich es realisieren, dass in meinem XY-Graph mit Zeitbezug, immer nur die letzten fünf Minuten/ Bzw. letzten 10 % der Daten, als „Historie“ angezeigt werden? Bei einer 40 minütigen Messung verliert das Diagramm stark an Aussagekraft. Daher würde ich gerne nur die vergangenen 5 Minuten in dem XY Graphen darstellen.
  2. Kann es Probleme verursachen, das Schieberegister mit so vielen Messwerten zu füllen, falls ja, wie sieht eine sinnvolle Variante aus.
  3. Wie man bestimmt bis hier herauslesen konnte, bin ich wirklich ein blutiger Anfänger2hands! Daraus ergibt sich meine letzte Fragestellung:
    Ist die Realisierung bis hierhin soweit sinnvoll? Gibt es ev. bessere / elegantere Wege, um das aufgeführte Ziel zu erreichen?

Als kleiner Ausblick:
Auf Dauer sollen die Werte der gesamten Messung inkl. Zeitstempel noch in einer Excel Liste abgespeichert werden. (Davon bin ich derzeit jedoch noch weit entfernt)Cool

Vielen Dank für die Hilfe im Voraus!!!!!




[attachment=55466][attachment=55467][attachment=55465]
Hallo Poepsken,

Zitat:1. Daher würde ich gerne nur die vergangenen 5 Minuten in dem XY Graphen darstellen.
Ein Graph zeigt exakt die Daten an, die du per Draht bereitstellst.
Logische Konsequenz: Wenn du also nur die letzten 5Min anzeigen willst, solltest du hier auch nur die Daten der letzten 5Min an den Graph weiterleiten. Tipp dazu: ArraySubset…

2. Ja. Unbegrenzt wachsende Arrays sind immer ein Problem…

3. Sieht doch schon nett aus…
- wenn man mehrere DAQmx-Kanäle anlegt, die alle die selben Einstellungen nutzen, kann man sie in einem Rutsch anlegen, indem man die Kanalangabe entsprechend wählt…
- man kann beim Thermometer eine numerische Anzeige anzeigen lassen, da benötigt man keinen zweiten Indicator anlegen…
(15.03.2016 11:04 )Poepsken schrieb: [ -> ]Als kleiner Ausblick:
Auf Dauer sollen die Werte der gesamten Messung inkl. Zeitstempel noch in einer Excel Liste abgespeichert werden. (Davon bin ich derzeit jedoch noch weit entfernt)Cool
Bist du nicht. Das ist im Grunde ziemlich einfach, da Labview dir hierfür schon alles bereitstellt, was du brauchst: http://zone.ni.com/reference/en-XX/help/...heet_file/
Du musst lediglich deine Messdaten als Array an besagtes VI anhängen. Pfad noch angeben und ggf. deine Zeitstempel mit ins Array packen. Im Großen und Ganzen war es das dann auch schon. Jenachdem wieviele Messdaten du speichern willst, empfiehlt es sich, diese päckchenweise wegzuschreiben.
Besten Dank für die Antworten.

Ich werde ausprobieren die beschriebenen Punkte einzubinden und berichte dann die Tage von den ErgebnissenBig Grin
Ich konnte mitlerweile die Änderungen in mein Programm einfließen lassen.
Mein ursprüngliches Problem wurde gelöst.
Ich habe der Vollständigkeit halber das entsprechende Programm angefügt.


Vielen Dank !!!
Habe das Progr. kurz angeschaut. Was mir gleich auffiel: In der Schleife mit der verstrichenen Zeit fehlt ein Wait. So läuft die Schleife quasi unendlich schnell, was zu erhöhter CPU-Belastung führt. Überzeuge Dich selbst: Task Manager --> Leistung
OK, dann werde ich das noch entsprechend ändern...
Wie muss ich mir das denn vorstellen?
Ich taste mein Messsignal ja mit 1000 Hz ab und lese zum Beispiel 1000 Werte auf einmal ein. Habe eigentlich gedacht das ich dann jede Sekunde einen Schleifendurchlauf habe.
Anscheinend ist das ja dann nicht der Fall Big Grin
Wenn ich jetzt durch einen Timer den Schleifendurchlauf auf z.B 500ms stelle. Wird dann der Block "DAQmx-lesen" nur jedes 2. mal ausgeführt oder bestehen die 1000 eingelesenden Werte dann aus 500 "alten" und 500 "neuen" Werten ?

Vielen Dank und viele Grüße
(23.03.2016 15:06 )Poepsken schrieb: [ -> ]Ich taste mein Messsignal ja mit 1000 Hz ab und lese zum Beispiel 1000 Werte auf einmal ein. Habe eigentlich gedacht das ich dann jede Sekunde einen Schleifendurchlauf habe.
Anscheinend ist das ja dann nicht der Fall Big Grin
Genau so muss es sein. Ein Timer (Wait) hat in der Schleife nichts zu suchen. Hast ja auch keinen drin, denkst aber darüber nach. Und: Der Datenpuffer muß natürlch größer sein als die auf einmal gelesene Samplezahl. Beachte die Hilfe zu "Sample-Takt" : Im cont-Modus ist der Eingang "Samples per Kanal" umfunktioniert!! Er sollte in der Regel unangeschlossen bleiben!
Referenz-URLs