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 

Datenerfassung unterbricht vorübergehend in unregelmäßigen Abständen



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!

01.07.2015, 11:03 (Dieser Beitrag wurde zuletzt bearbeitet: 01.07.2015 11:58 von royal_k.)
Beitrag #1

royal_k Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Jun 2015

8.5
2014
DE



Datenerfassung unterbricht vorübergehend in unregelmäßigen Abständen
Hallo,

ich bin neu in diesem Forum und möchte mich erstmal kurz vorstellen: Mein Name ist Kai und ich bin Student des Maschinenbaus.
Im letzten Jahr habe ich als Belegarbeit eine Prüfstandssteuerung / -regelung für einen Bremsenprüfstand in LabVIEW 8.5 aufgebaut. Jetzt bin ich studentische Hilfskraft und habe in diesem Zusammenhang die Software noch etwas erweitert, um den Prüfstand universeller nutzen zu können.

Kurz zu der geschriebenen Software: Sie wurde als Echtzeitanwendung implementiert. Auf dem Bedienrechner wurde das Programm als .exe kompiliert, um die Bedienung auch LabVIEW - Unerfahrenen zu ermöglichen. Auf dem Echtzeitrechner wurde die Software ebenfalls kompiliert und im Autostart hinterlegt. Das Ganze läuft in dem größeren Rahmen eines Zustandsautomaten mit folgenden Zuständen:

Initialize - Startwerte einstellen, Kontakt zwischen den Rechnern herstellen
Idle - Parameter eingeben und übertragen, auf Start warten
Measure - Durchführung der eigentlichen Messung
Stop - Prüfstand in sicheren Zustand überführen, auf Benutzereingabe warten (neue Messung oder schließen)
Shutdown - beide Programme schließen.

Ich hatte bereits letztes Jahr festgestellt, dass im Zustand Idle manchmal keine Messwerte an den Bedienrechner übergeben werden, habe das aber damals nicht weiter verfolgt, weil das nur in diesem einen Zustand auftrat und ich davon ausging, dass das nicht weiter kritisch wäre.
Jetzt hat sich aber gezeigt, dass dem nicht so ist. Die Messwertübertragung wird auch während des Betriebs unterbrochen. Genauer gesagt funktioniert die gesamte Regelung, Messwerterfassung und Wertausgabe nicht mehr. Das ist äußerst kritisch und kann so nicht bleiben! Ich konnte den Fehler bereits genauer einschränken:

Er liegt im Echtzeit - Hauptprogramm RT-Main.vi. Dort habe ich 3 zeitgesteuerte Schleifen. Eine Schleife übernimmt die gesamte Datenerfassung, -ausgabe und die Regelung. In ihr laufen die einzelnen Messmodi.
Dann gibt es eine Verarbeitungsschleife für die Messdaten. Sie läuft mit einer höheren Frequenz als die Erzeugerschleife. Die Daten werden über einen FIFO übergeben. Wenn eine Einzelmessung des Messprogramms abgearbeitet wurde, werden die Daten über einen weiteren FIFO an eine dritte Schleife übergeben, die die Daten in die TDMS Datei schreibt. So kann ich die Datei kompakt halten.
Der Fehler liegt in der Erzeugerschleife. Das kann ich sehen, weil während eines solchen Aussetzers die CPU Auslastung massiv absinkt. Durch die manuelle Verteilung der Schleifen auf die beiden Prozessorkerne konnte ich sehen, dass nur die CPU Auslastung auf dem Kern absank, der ausschließlich diese Schleife abarbeitet (von ca. 35% auf 6-10 % auf diesem Core, der andere Core bleibt unverändert bei 67 - 69%). Dort finde ich aber kein Problem! Der Schleifenzähler läuft weiter, nur sonst scheint die Schleife nichts mehr zu machen. Die Netzwerkverbindung steht zuverlässig (Sondenwerte werden sauber übertragen). Edit: Das merkwürdige daran ist nur, dass das in unregelmäßigen Abständen passiert. Manchmal vergehen mehrere Minuten zwischen diesen Aussetzern, manchmal nur wenige Sekunden. Die Aussetzer sind unterschiedlich lang, ich schätze mal maximal 10 Sekunden aber das Programm macht immer irgendwann wieder weiter. Wenn es dann wieder weiter geht, ist interessant, dass die CPU Auslastung 2 - 3 Sekunden auf über 50% auf diesem Kern geht und danach wieder auf das Normalniveau absinkt. Ich komme einfach nicht weiter.
Sämtliche DAQ-Tasks sind im MAX definiert und das soll auch so bleiben, da je nach Messung zusätzliche Sensoren integriert werden müssen, für die individuelle Skalierungen nötig sind und dafür keine Programmcodeänderung vorgenommen werden soll.

Vielleicht hat ja einer von euch eine Idee, woran es liegen könnte.

Das Programm lade ich hoch. Ich habe hier zu Hause allerdings kein LabVIEW und komme ziemlich sicher in dieser Woche nicht nochmal an den Prüfstand. Deshalb hoffe ich, dass es kein Problem ist, wenn ich das gesamte Projekt als .zip hochlade.
Weiterhin bitte ich zu entschuldigen, dass es dem gesamten Programm an Übersichtlichkeit mangelt. Es war mein erstes LabVIEW - Projekt und ich konnte nicht einschätzen, wie sich das ausdehnt. Bisher fehlte mir auch die Zeit, alles übersichtlich zu verpacken.

Edit: Vielleicht ist das noch interessant: Alle Werte werden als einzelne Samples gelesen. Die Abtastfrequenz beträgt bedingt durch den Schleifendurchlauf 500 Hz. Es werden analog mittels der PXI-6229 16 Kanäle gemessen und 3 Kanäle geschrieben. Digital werden 4 Kanäle geschrieben, gelesen werden 7 Kanäle. Digital I/O passiert über die PXI-6528.


Angehängte Datei(en)
0.0 .zip  Prüfstandsteuerung.zip (Größe: 3,12 MB / Downloads: 180)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Datenerfassung unterbricht vorübergehend in unregelmäßigen Abständen - royal_k - 01.07.2015 11:03

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Ausführung unterbricht bei Anwahl der Titelleiste stoa 12 7.781 28.04.2020 20:18
Letzter Beitrag: BNT
  Datenerfassung cDAQ + NI9203 keine synchrone Datenerfassung dieseldunst 5 5.947 24.06.2016 14:49
Letzter Beitrag: jg
  Datenerfassung in unterschiedlichen Abständen Titus85 7 4.996 16.07.2014 10:09
Letzter Beitrag: Titus85
  Unregelmäßigen Takt erzeugen LV-User00 5 4.164 25.10.2013 09:16
Letzter Beitrag: GerdW
  Beliebigen (unregelmäßigen) Analogsignal-Verlauf ausgeben dejay 9 6.942 10.12.2012 15:29
Letzter Beitrag: Lucki
  Dateidialog unterbricht Datenerfassung cfreitag 10 8.668 20.09.2007 17:24
Letzter Beitrag: Y-P

Gehe zu: