Programmabarbeitung unterbricht wenn anderes Fenster "bedient" wird - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Programmabarbeitung unterbricht wenn anderes Fenster "bedient" wird (/Thread-Programmabarbeitung-unterbricht-wenn-anderes-Fenster-bedient-wird) |
Programmabarbeitung unterbricht wenn anderes Fenster "bedient" wird - dwerner - 28.01.2010 15:01 Hallo, im Hauptteil meines Programms werden in einer While-Schleife ständig 8 serielle Schnittstellen auf neu eingetroffene Messages von daran angeschlossenen Anemometern abgefragt und je nach Bedienerauswahl die Werte dann in eine Datei geschrieben. Dieser Teil läuft in einem eigenen Fenster, das die Werte auch anzeigt und verschiedene Bedienerbuttons enthält. Wenn man in Windows ein anderes Fenster „bedient“ (z. B. über den Bildschirm zieht) stoppt die Abarbeitung des Programms in diesen Momenten und die Anemometerwerte gehen verloren. Wie kann ich das Fenster so gestalten, dass das Programm im Hintergrund weiterläuft auch wenn der Bediener gerade mit oder in einem anderen Fenster arbeitet? Danke im Voraus, Detlef Programmabarbeitung unterbricht wenn anderes Fenster "bedient" wird - Y-P - 28.01.2010 17:42 Kannst Du mal ein kleines Bsp. machen? Gruß Markus Programmabarbeitung unterbricht wenn anderes Fenster "bedient" wird - IchSelbst - 28.01.2010 19:40 ' schrieb:Wenn man in Windows ein anderes Fenster „bedient“ (z. B. über den Bildschirm zieht) stoppt die Abarbeitung des Programms in diesen Momenten und die Anemometerwerte gehen verloren.Was ist denn ein "anderes Fenster"? Ist das ein Fenster innerhalb der selben LabVIEW-Anwendung, also z.B. ein zweites, paralleles SubVI? Oder ist das ein Fenster, z.B. von Notepad, das gerade als weitere Applikation in Windows ausgeführt wird? Zitat:Wie kann ich das Fenster so gestalten, dass das Programm im Hintergrund weiterläuft auch wenn der Bediener gerade mit oder in einem anderen Fenster arbeitet?Was immer gehen sollte, unabhängig was es für ein Fesnter ist, ist folgendes: Verlager das Auslesen der Seriellen Schnittstellen in ein selbständiges SubVI, das parallel zum MainVI und im Hintergrund läuft. Die ausgelesenen Daten kannst du (z.B.) per Queue an das MainVI leiten. Die Queue wirkt wie ein Puffer. Das SubVI läuft unabhängig. Normalerweise gehen auch bei Seriellen Schnittstellen keine Daten verloren, auch nicht wenn man Fenster verschiebt. Ausnahmen gibt es aber immer. Was hat du denn für einen Rechner und Betriebssystem? Von welcher Baudrate reden wir denn? Programmabarbeitung unterbricht wenn anderes Fenster "bedient" wird - dwerner - 29.01.2010 07:50 Ich habe einfach mal das Programm hochgeladen, weil ich nicht so recht wusste, wie ein Beispiel aussehen könnte. Der Effekt tritt immer auf, egal ob andere Programme in Windows oder weitere VI's. (in der hier hochgeladenen Ausbaustufe gibt es aber noch kein weiteres Fenster von einem anderen VI und der Bediener kann die Fenster auch nicht verschieben, also Effekt nur bei anderen Programmen. Ordnerfenster verschieben z. B.). Das Betriebssystem ist W2000 mit SP3. Der Rechner (AMD-K6 3D) ist nicht mehr der neueste und etwas lahm. Das scheint mir aber nicht das eigentliche Problem. Die Baudrate ist zurzeit nur 19,2K und es gibt eigentlich auch keine Zeitprobleme. Die Daten scheinen mir auch nicht an der Schnittstelle "verloren" zu gehen sondern weil im Hauptteil (das VI Nr. 19 in der .lbb) während des Schiebens anderer Fenster (z. B. Ordnerfenster) nichts abgearbeitet wird. Die Anzeigen werden nicht erneuert und in die Datei nicht geschrieben. Das VI speichert nichts zwischen. Der Sinn war, das unabhängig wann (zu welchem Zeitpunkt) an der Schnittstelle Daten einlaufen, immer dann wenn ein korrekter Datensatz zusammengekommen ist, die Werte mit einem Zeitstempel versehen in die Datei geschrieben werden. Wie ein Logbuch. Gruß Detlef |