LabVIEWForum.de
System wird träge bei Messdatenerfassung und Speicherung in Echtzeit - 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: System wird träge bei Messdatenerfassung und Speicherung in Echtzeit (/Thread-System-wird-traege-bei-Messdatenerfassung-und-Speicherung-in-Echtzeit)



System wird träge bei Messdatenerfassung und Speicherung in Echtzeit - chris_kit - 13.06.2019 09:45

Hallo,
in meinem aktuellen Projekt werden bis zu 16 Messdaten über NI 9211 Thermocouple Module ausgelesen und in einer TDMS Datei abgelegt. Zusätzlich wird ein externes Netzgerät angesteuert.
Die Werte beider "Geräte" werden in Echtzeit mit einer Abtastrate von 5Hz in zwei Waveform Charts dargestellt und mit der selben Frequenz gespeichert.

Nun zu meinem Problem:
Das VI verliert bei einer Laufzeit von ca. 1 Tag und länger den Bezug zur Echtzeit. Die Systemzeit des PCs läuft der Zeit, die am Wavechart zu sehen ist, voraus, wodurch die Reaktion des Netzgerätes auf Temperaturänderungen der Thermocouples träge wird.
Es macht den Eindruck, als würde das Programm stumpf die 5 Loops pro Sekunde ablaufen und dabei jeglichen Bezug zur Systemzeit außer acht lassen.
Der Übersicht halber möchte ich nicht jedes Detail meines Projektes auflisten. Ich suche nur nach allgemeinen Ansätzen zur Lösung eines solchen Problems (evlt. Synchronisation mit Systemzeit, Umgestalten des Speicherverfahrens, etc.)

Bisherige (erfolglose) Lösungsansätze:
- Herabsetzen der Abtastrate: Da das Problem auch bei einer Abtastrate von 1Hz in gleicher Weise besteht, gehe ich davon aus, dass der Prozessor meines PCs nicht die Fehlerquelle sein sollte, sondern evtl. die Organisation meines Programms
- Reduzierung der Rechenoperationen im Hauptloop auf das Mindeste
- Benutzung eines einfachen Speicherformates (TDMS)
- nach 12 Stunden wird eine neue TDMS-Datei angelegt, um eine einzelne Datei nicht zu groß werden zu lassen

Im angehängten Screenshot ist der Hauptloop meines Programms zu sehen, der 5x pro Sekunde durchlaufen wird. Ich bitte um rücksichtsvolle Antworten (hinsichlich meiner Blockdiagrammstrukturierung und meines Programmierstils), da ich kein Profi in LabView bin Big Grin

Vielen Dank im Voraus!


RE: System wird träge bei Messdatenerfassung und Speicherung in Echtzeit - GerdW - 13.06.2019 09:57

Hallo Chris,

herzlich willkommen im Forum!

Zitat:Das VI verliert bei einer Laufzeit von ca. 1 Tag und länger den Bezug zur Echtzeit. Die Systemzeit des PCs läuft der Zeit, die am Wavechart zu sehen ist, voraus, wodurch die Reaktion des Netzgerätes auf Temperaturänderungen der Thermocouples träge wird. Es macht den Eindruck, als würde das Programm stumpf die 5 Loops pro Sekunde ablaufen und dabei jeglichen Bezug zur Systemzeit außer acht lassen.
Ein Waveform-Chart hat nichts mit der "Systemzeit" zu tun. Da gibt es also keinen Bezug, den man außer acht lassen könnte…

Was man im Bild so sieht:
- bunter Mix aus "normalen" Datentypen mit DDT-Drähten: das ist im Allgemeinen eher hinderlich als hilfreich…
- es wird viel in dieser Schleife gemacht, von DAQAssistent-ExpressVIs über Kommunikation mit externen Geräten, Darstellung in Charts und Speichern der Daten in einer Messdatei: schafft diese Schleife überhaupt die 5Hz Taktrate???

Tipp:
Schau dir mal Producer-Consumer-Schemata an: Dinge parallel zu handhaben kann sehr hilfreich sein…

Zitat:Ich bitte um rücksichtsvolle Antworten (hinsichlich meiner Blockdiagrammstrukturierung und meines Programmierstils), da ich kein Profi in LabView bin
Deshalb erstmal nur das: Bitte nie, NIE, NIEMALS das Label von Terminals im Blockdiagramm löschen/ausblenden! (Ganz schlechter Programmierstil…)


RE: System wird träge bei Messdatenerfassung und Speicherung in Echtzeit - chris_kit - 13.06.2019 10:25

Vielen Dank für die schnelle Antwort Smile

Zitat:schafft diese Schleife überhaupt die 5Hz Taktrate???
Gibt es eine Möglichkeit eine Verzögerung des Programmdurchlaufs schneller zu erkennen (wenn der Prozessor nicht hinterherkommt), als es jedes mal 1 Tag oder länger Testen zu müssen? So könnte ich schneller Anpassungen vornehmen.


Zitat:Deshalb erstmal nur das: Bitte nie, NIE, NIEMALS das Label von Terminals im Blockdiagramm löschen/ausblenden! (Ganz schlechter Programmierstil…)
Danke für den Hinweis, werde ich mir zu Herzen nehmen!


RE: System wird träge bei Messdatenerfassung und Speicherung in Echtzeit - GerdW - 13.06.2019 13:04

Hallo Chris,

mess doch einfach mal die Zeit für einen Schleifendurchlauf:
[attachment=60056]

Trotzdem die Empfehlung: Wenn sich Prozesse möglicherweise gegenseitig behindern/verzögern, sollte man sie in parallel laufende Schleifen auslagern.
Was spricht dagegen, dein DAQmx-Gerät in einer anderen Schleife abzufragen als diese PSI-Einheit?

Zitat:bei einer Laufzeit von ca. 1 Tag und länger …
Gerade bei diesen gewünschten Laufzeiten sollte man vor der Programmerstellung etwas Planung investieren!


RE: System wird träge bei Messdatenerfassung und Speicherung in Echtzeit - jg - 13.06.2019 14:13

(13.06.2019 10:25 )chris_kit schrieb:  
Zitat:schafft diese Schleife überhaupt die 5Hz Taktrate???
Gibt es eine Möglichkeit eine Verzögerung des Programmdurchlaufs schneller zu erkennen (wenn der Prozessor nicht hinterherkommt), als es jedes mal 1 Tag oder länger Testen zu müssen? So könnte ich schneller Anpassungen vornehmen.
Da gibt es kein allgemeingültiges Verfahren. Manche Fehler findet bzw. erkennt man einfach erst nach längerer Laufzeit eine Programms.

Gruß, Jens