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 

Zugversuch - Oberfläche: Programmablauf?



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!

19.11.2019, 11:29 (Dieser Beitrag wurde zuletzt bearbeitet: 19.11.2019 11:29 von _Markus_.)
Beitrag #1

_Markus_ Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Sep 2018

2018
-
DE


Deutschland
Zugversuch - Oberfläche: Programmablauf?
Hallo zusammen,

ich will für einen Zugversuch eine LV-Oberfläche machen. Wie man da am besten vorgeht ist mir noch nicht so ganz klar. Ein fertiges Diagramm sieht z.B. so aus:
https://de.wikipedia.org/wiki/Zugversuch...grenze.svg

Ich habe Sensoren die Weg und Kraft erfassen und das als analoge Spannung ausgeben. Ich benötige ja einen XY-Plot. Der XY-Plot kann ja Daten nicht fortlaufend schreiben so wie ein Diagramm, wenn ich es richtig weiß. Ich müsste also das aktuelle XY-Wertepaar jeweils in ein Array speichern und dann immer das gesamte Array plotten, richtig? Beim ersten Durchlauf wäre dann halt ein Wertepaar drin, beim zweiten zwei, etc.

Da ich derzeit mit 10 kHz abtaste und mein Programm nicht schnell genug laufen wird für eine Einzelwertübertragung, lasse ich jeweils 1000 Messwerte paketweise kommen, speicher die in das Array und plotte (würde das in einer while-Schleife machen). Nach Beenden des Zugversuchs (und Verlassen der while-Schleife) würde ich das gesamte Datenarray noch in eine csv-Datei speichern.

Das wäre so mein Vorgehen. Ist das so sinnvoll? Da ich damit sicher einige Stunden, wenn nicht zwei Tage beschäftigt sein werde, wollte ich mal eure Meinung wissen, bevor ich mir unnötig Mühe mache, wenn es doch eine viel einfachere Lösung gibt (ich habe bisher noch nicht angefangen mit dem Programm, nur bissel rumgespielt und da schon Probleme mit den vielen Typkonvertierungen und Arrays gehabt).

Viele Grüße
Markus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.11.2019, 13:47
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zugversuch - Oberfläche: Programmablauf?
Hallo Markus,

Zitat:Ich benötige ja einen XY-Plot.
Ja.

Zitat:Der XY-Plot kann ja Daten nicht fortlaufend schreiben so wie ein Diagramm, wenn ich es richtig weiß. Ich müsste also das aktuelle XY-Wertepaar jeweils in ein Array speichern und dann immer das gesamte Array plotten, richtig? Beim ersten Durchlauf wäre dann halt ein Wertepaar drin, beim zweiten zwei, etc.
Ja. Du musst alle Daten, die du plotten willst, in einem Array sammeln.

Zitat:Da ich derzeit mit 10 kHz abtaste und mein Programm nicht schnell genug laufen wird für eine Einzelwertübertragung, lasse ich jeweils 1000 Messwerte paketweise kommen,
Prima Idee!

Zitat:speicher die in das Array und plotte (würde das in einer while-Schleife machen).
Das wird jetzt langsam fragwürdig!
Willst du wirklich pro Sekunde 10000 Punkte in deinen Graph malen lassen? Das ist unsinnig:
- Was glaubst du, wie viel CPU-Zeit das fressen wird?
- Wieviel davon ist sinnvoll, wenn dein Graph geschätzte 600 Pixel breit ist?
Alle Samples zu speichern ist sinnvoll, aber auch alle im Graph anzuzeigen nicht mehr! Hier kommt das Stichwort "dezimieren" ins Spiel: man könnte z.B. von jedem 1000-Samples-Block nur den Mittelwert (und vielleicht noch min/max oder ±StAbw) plotten…

Zitat:Nach Beenden des Zugversuchs (und Verlassen der while-Schleife) würde ich das gesamte Datenarray noch in eine csv-Datei speichern.
Auch das ist fragwürdig: du bekommst pro Sekunde 20000 Samples (2 Kanäle mit 10kS/s). Dein Versuch dauert vielleicht 100s: dann willst du wirklich 2MS im Speicher halten und hinterher abspeichern? Was passiert, wenn dein Programm (oder der Rechner) zwischendrin abstürzt? Daten futsch…
Also: Daten gleich in eine Datei speichern. DAQmx bietet dir hier an, direkt schon im DAQmx-Treiber in eine TDMS-Datei zu speichern: damit hast du dann gar keine Arbeit beim Datenspeichern…

Zitat:ich habe bisher noch nicht angefangen mit dem Programm, nur bissel rumgespielt und da schon Probleme mit den vielen Typkonvertierungen und Arrays gehabt
Ich empfehle deshalb mal die Links in meiner Signatur…

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
  Längere Wartezeit im Programmablauf quattro888 5 3.588 21.05.2019 14:26
Letzter Beitrag: quattro888
  Oberfläche von SubVI in Main Programm einbinden sara2211 13 7.832 17.11.2016 08:41
Letzter Beitrag: sara2211
  Symbol-Editor startet mit anderer Oberfläche Hotte-BW 2 3.857 03.03.2016 16:46
Letzter Beitrag: Hotte-BW
  LabVIEW Oberfläche erstellen leobi 2 3.362 27.03.2015 08:52
Letzter Beitrag: GerdW
  Oberfläche mit Array und Formel grafisch ausgeben? flink 6 4.575 14.07.2014 08:56
Letzter Beitrag: jg
  Programmablauf creo_123 4 4.405 27.05.2013 11:43
Letzter Beitrag: GerdW

Gehe zu: