LabVIEWForum.de
Ausführung blockiert - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Ausführung blockiert (/Thread-Ausfuehrung-blockiert)



Ausführung blockiert - J_uri - 02.05.2012 14:08

Hallo zusammen,

folgendes Szenario: ein größeres LabVIEW Pojekt wird auf einem Windows XP Rechner ausgeführt. Über den Task-Manager schaue ich mir die Prozessorlast an. Problem: während ich den Task-Manager "aufpoppe" wird die LabVIEW Ausführung blockiert (für ca. 200 ms). Wie kann ich das verhindern?

Vielen Dank.

Gruß
J_uri


RE: Ausführung blockiert - GerdW - 02.05.2012 14:51

Hallo Juri,

Zitat:Problem: während ich den Task-Manager "aufpoppe" wird die LabVIEW Ausführung blockiert (für ca. 200 ms). Wie kann ich das verhindern?
Entweder:
- Lass den Taskmanager zu!
oder:
- Öffne den Taskmanager, bevor du das LV-Programm startest!


RE: Ausführung blockiert - Lucki - 02.05.2012 18:23

Die Auführung wird ja nicht nur beim Öffnen das Task-Managers gestoppt, sondern durch - salopp gesagt - jedes andere Herumspielen mit der Maus oder Tastatur auch. So ist das eben, wenn man kein Echtzeitsystem verwendet.
Ein gutes Programm sollte das berücksichtigen.
Die Datenerfassung auf einer Karte läuft in der Regel autark und wird von solchen Unterbrechungen nicht beeinflusst. Die anschließende Datenverarbeitung hingegen schon. Damit keine Daten verloren gehen, muß die Übergabe gepuffert erfolgen. Wenn die Verarbeitung mal aussetzt, dann sammeln sich eben Daten im Puffer an, die mit größerer Geschwindigkeit anschließend abgearbeitet werden, bis der Puffer wieder leer ist. Das funktioniert eigentlich wunderbar. Tödlich ist es nur für eine Regelung, deren gutes Funktionieren davon abhjängt, dass die Ausgangsdaten unverzögert oder zumindest deterministisch ausgegegben werden.


RE: Ausführung blockiert - J_uri - 04.05.2012 09:33

Hallo,
Lucki sagt es. Der Taskmanager war nur ein Beispiel. Man kann jedes andere Event nehmen.

In diesem speziellen Fall geht es um eine Art WatchDog Berechnung (Sägezahnsignal) die alle 15 ms per CAN übertragen werden muss. Der CAN-Treiber wird durch den "Event" nicht gestört, nur leider wird das WatchDog-Signal nicht mehr neu berechnet wenn der "Event" auftritt, so dass der CAN den selben Wert weiter sendet.

Es riecht wohl nach RT-System...