LabVIEWForum.de - Labview Datenerfassung sehr langsam

LabVIEWForum.de

Normale Version: Labview Datenerfassung sehr langsam
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo antwort,

zum Bild mit dem Schreiben deiner Messdatei:
Ja, ein Array kann nur einen Datentyp enthalten. Wenn du also ein Array of Strings haben willst, musst du alle Elemente als String formatiert bereitstellen…
Hallo Zusammen,

vielen Dank für Eure Hilfe. Schön langsam komme ich dem Ziel näher.
Leider zeigen meine Druckanzeigen jetzt einen Wert von 12,8 bar an bei Umgebungsdruck (Eingangsspannung 1,9x Volt bei Umgebungsdruck) (0-5bar Sensor 0-10V Signal)

Es scheint so als würde er nicht die 0,5 als Steigung nehmen, sondern die letzte Steigung im Array (entspricht 6,7008) --> 1,90V Eingangsspannung * 6,7 ergibt ca die 12,8

[attachment=57705]

Der Sondenmonitor zeigt aber, dass bei jedem Schleifendurchgang der jeweilige richtige Wert aus den Arrays genommen wird

[attachment=57706]

Habe ich hier einen Fehler in der kanalspezifischen Skalierung oder ist dies nicht möglich?

Vorab Vielen Dank für Eure Hilfe :-)
Hallo antwort,

Zitat:Es scheint so als würde er nicht die 0,5 als Steigung nehmen, sondern die letzte Steigung im Array (entspricht 6,7008)
Ja, genau - weil du es so definierst!

Wenn du unterschiedliche Skalierungen verwenden willst, solltest du ihnen auch unterschiedliche Namen geben. Ansonsten bekommst die Skalierung namens "Druckskalierung" in der letzten Iteration deiner Schleife eben die Steigung 6.7 zugewiesen - und alle Kanäle verwenden ja die "Druckskalierung"!

Außerdem:
- Wieso schließt du an den N-Anschluß deiner FOR-Loop überhaupt etwas an (und im ersten Bild auch noch den falschen Wert)? Nutze doch einfach konsequent die Autoindexierung!
- Von Aufräumen in deinem VI hälst du nicht viel, oder?
Hallo GerdW,

vielen Dank für Deine Hilfe. Nach deinem Tipp, dass auch jede Skalierung seinen eigenen Namen braucht hat es sofort geklappt. :-)

Jetzt stehe ich leider nur noch vor dem letzten Problem, der zur Fertigstellung der Prüfstandssteuerung fehlt -> Die Datenspeicherung.

Ich habe aktuell ein Sub VI in dem ich die analogen Signale sowie Thermoelemente erfasse (ohne Express VI's). Ist auch super schnell bzw. vollkommend ausreichend.

Habe zum Testen der Datenspeicherung nochmals mit dem Express VI getestet -> Wie vermutet: Sobald man die Messung aktiviert wird das ganze Programm ultra langsam.

Ich habe in angehängtem VI angefangen mit der Datenspeicherung ohne Express VI. Leider bekomme ich es nicht hin was ich brauche. Bitte nicht erschrecken - ich habe im oberen Bereich einiges getestet..

Ich brauche:
Headerzeile mit folgenden Spalten: Absolute Uhrzeit/Zeit , Relative Zeit, alle Namen der Messkanäle
und darunter eben Zeile für Zeile alle Messkanäle im 100ms Raster

Das Problem ist, ich kriege die ganzen Datentypen irgendwie nicht so zusammen, dass ich diese alle in ein Array schreiben kann und in die Excel Datei schreiben lassen kann.
Könnt Ihr mir bitte helfen und kurz zeigen wie man sowas am besten aufbaut, wenn man relativ viele Variablen hat ?

Eine Idee von mir wäre noch, dass ich den Nullabgleich nicht in der Schleife durchführe, sondern mit der benutzerdefinierten Skalierung als Y-Achsenabschnitt durchführen lasse. Dazu müsste mein Programm das den Nullabgleich berechnet anschließend das SubVI zur Erfassung kurz schließen und neu öffnen, dass die neuen Werte zum Nullabgleich auf die kanalspezifische Skalierung geschrieben / aktualisiert werden.

Vielleicht ist es besser für alle Temperaturen, Drücke, etc je ein eigenes Array mit den entsprechenden Datentypen zu machen.

Stehe gerade voll auf dem Schlauch und weiß nicht wie man soetwas am besten / sinnvollsten aufbaut, sodass auch die verschiedenen Formate für die Zeit, etc. berücksichtigt werden.

Vorab Vielen Dank für Deine/Eure Hilfe.

Viele Grüße
antwort
Hallo,
In die For Schliefe Kanaleinstellung gehst Du mit Arrays für 9 Durchläufe. Durchlaufen wird die For Schleife aber nur 8mal (Schleifenzähler =8). Lass den Schleifenzähler weg. Dann wird die Anzahl der Durchläufe über die Arrays geregelt.

S_MESSUNG muss True sein bevor das VI gestartet wird. Denn der Boolschewert wird sofort an den Eingang der While Schleife gelegt.
Zum Verständnis, schon vor der Kanaleinstellung, legst Du fest Aktivieren Ja/Nein. Die Variable wird nur einmal am Anfang des VI -Starts ausgelesen. Danach interessiert eine Änderung der Variable nicht mehr.

Gruß
Freddy
Seiten: 1 2
Referenz-URLs