LabVIEWForum.de
Windows Shutdown abfangen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Windows Shutdown abfangen (/Thread-Windows-Shutdown-abfangen)



Windows Shutdown abfangen - 23uwe - 05.12.2007 10:40

Hallo zusammen,

wir wollen in einem Steuerrechner eine USV einbinden. Diese löst den Shutdown Befehl in Windows aus. Kann ich dieses Message irgendwie programmtechnisch auswerten. An besagten Steuerrechner hängt noch ein PXI-System, welches auf jeden Fall vor dem Herunterfahren des Steuerrechners kontrolliert beendet werden muss (natürlich auch das Steuerprogramm).

Danke schon mal für die Hilfe

23uwe

LV.8.5


Windows Shutdown abfangen - rolfk - 06.12.2007 10:19

' schrieb:Hallo zusammen,

wir wollen in einem Steuerrechner eine USV einbinden. Diese löst den Shutdown Befehl in Windows aus. Kann ich dieses Message irgendwie programmtechnisch auswerten. An besagten Steuerrechner hängt noch ein PXI-System, welches auf jeden Fall vor dem Herunterfahren des Steuerrechners kontrolliert beendet werden muss (natürlich auch das Steuerprogramm).

Danke schon mal für die Hilfe

23uwe

LV.8.5

Die Event Struktur hat ein Application-Exit Event das dazu verwendet werden können sollte. Eventuel kannst Du das Filter Event verwenden und den Exit damit kurzfristig verweigern um zumindest noch die Funktion zum Abschliessen des Systems aufrufen zu können. Danach selber von LabVIEW aus den Shutdown initieren.

Rolf Kalbermatter


Windows Shutdown abfangen - FOX - 06.12.2007 13:08

Hallo 23UWE,

was ist das für ein PXI Sys. mit kontroller oder ohne?
Wenn es einen Kontroller hat welches Betriebsystem läuft darauf?
Wenn Windows darauf Installiert ist würde ich die Nachricht einfach weiter leiten, bei Real - Time muss ich leider passen.

Wenn kein Kontroller vorhanden ist, ist das PXI system nichts anderes als eine Verlängerung des PCI-Bus heißt nachdem der Rechner ausgeschaltet ist einfach licht ;-) aus
ansonsten wäre das wie wenn du im laufenden betrieb dem Rechner, aus dem PCI - Slot die Karte rausreist und wieder reinsteckst (nicht so gut)
Soweit es mir bekannt ist gibt es zwei verschiedene arten wie in diesem Fall der Rechner mit dem PXI sys. verbunden sein kann DB 9pol (RS232) oder über Glasfaser letzteres hat den vorteil das es Galvanisch getrennt ist und abgesehen vom Betriebsys. es dem PXI & Rechner egal ist wann was an und ausgemacht wird.

Ich hoffe ich konnte dir ein wenig helfen

Gruß

Fox


Windows Shutdown abfangen - 23uwe - 06.12.2007 13:48

' schrieb:Die Event Struktur hat ein Application-Exit Event das dazu verwendet werden können sollte. Eventuel kannst Du das Filter Event verwenden und den Exit damit kurzfristig verweigern um zumindest noch die Funktion zum Abschliessen des Systems aufrufen zu können. Danach selber von LabVIEW aus den Shutdown initieren.

Rolf Kalbermatter


Hallo,

"Application Exit"-Event wird leider nicht angesprungen. Man kann es testen, indem man über den Task Manager die Applikation "abschießt". Ich hatte in der Event-Struktur eine Abfrage, ob wirklich beendet werden soll (Yes/No). Diese wurde bei Shutdown jedoch nicht angezeigt.

Gruß
23uwe


Windows Shutdown abfangen - 23uwe - 06.12.2007 13:50

' schrieb:Hallo 23UWE,

was ist das für ein PXI Sys. mit kontroller oder ohne?
Wenn es einen Kontroller hat welches Betriebsystem läuft darauf?
Wenn Windows darauf Installiert ist würde ich die Nachricht einfach weiter leiten, bei Real - Time muss ich leider passen.

Wenn kein Kontroller vorhanden ist, ist das PXI system nichts anderes als eine Verlängerung des PCI-Bus heißt nachdem der Rechner ausgeschaltet ist einfach licht ;-) aus
ansonsten wäre das wie wenn du im laufenden betrieb dem Rechner, aus dem PCI - Slot die Karte rausreist und wieder reinsteckst (nicht so gut)
Soweit es mir bekannt ist gibt es zwei verschiedene arten wie in diesem Fall der Rechner mit dem PXI sys. verbunden sein kann DB 9pol (RS232) oder über Glasfaser letzteres hat den vorteil das es Galvanisch getrennt ist und abgesehen vom Betriebsys. es dem PXI & Rechner egal ist wann was an und ausgemacht wird.

Ich hoffe ich konnte dir ein wenig helfen

Gruß

Fox


Hallo

das PXI System dient als RT-System mit FPGA und wird von einem Windows Host fern gesteuert. Ziel ist es, wenn am Windows Host der Strom ausfällt (USV liefert Shutdown Befehl an das Betriebssystem) noch die Application auf dem RT-System anzuhalten und sauber zu deinitalisieren. Des weiteren müssen auch auf dem Windows System noch einige Routinen durchlaufen werden.

Gruß
23uwe


Windows Shutdown abfangen - FOX - 06.12.2007 14:29

Hallo 23Uwe,

wie ist die USV mit dem Steuerrechner verbunden. (Rj45 / Rs232 oder oder oder)?
Weißt du welchen Befehl die USV absetzt (mit oder ohne Zeitlimits)?
Wenn die USV über RJ45 angeschlossen ist kannst du den Port festlegen?
Wenn dem so ist würde ich versuchen die Nachricht auf einen Port zu legen auf den Du mit LV zugreifst.
Und dann dementsprechend reagierst.

Schau mal hier:

http://www.microsoft.com/technet/prodtechn...6.mspx?mfr=true

scheinbar gibt es befehle die den Shutdown aufhalten.

Ansonsten kann ich mir nur vorstellen das du das runterfahren des Rechners verhinderst in dem du die Nachricht abfängst.

Gruß

FOX


Windows Shutdown abfangen - 23uwe - 07.12.2007 10:34

' schrieb:Hallo 23Uwe,

wie ist die USV mit dem Steuerrechner verbunden. (Rj45 / Rs232 oder oder oder)?
Weißt du welchen Befehl die USV absetzt (mit oder ohne Zeitlimits)?
Wenn die USV über RJ45 angeschlossen ist kannst du den Port festlegen?
Wenn dem so ist würde ich versuchen die Nachricht auf einen Port zu legen auf den Du mit LV zugreifst.
Und dann dementsprechend reagierst.

Schau mal hier:

http://www.microsoft.com/technet/prodtechn...6.mspx?mfr=true

scheinbar gibt es befehle die den Shutdown aufhalten.

Ansonsten kann ich mir nur vorstellen das du das runterfahren des Rechners verhinderst in dem du die Nachricht abfängst.

Gruß

FOX

Hallo,

die USV ist per RS232 am Steuerrechner angeschlossen -> das Protokoll auswerten funktioniert nicht, da die Schnittstelle nicht standardisiert genutzt wird, des weiteren hängt das Überwachungstool auf der Schnittstelle und blockiert diese. Die USV ist eingestellt, dass sobald ein Stromausfall erkannt wird, dass Überwachungstool den Shutdown nach einer gewissen Zeit einleitet. Wie komme ich an die Windows Message ?
Shutdown sollte nach Möglichkeit nicht unterbrochen werden.

23uwe


Windows Shutdown abfangen - rolfk - 07.12.2007 11:18

' schrieb:Hallo,

die USV ist per RS232 am Steuerrechner angeschlossen -> das Protokoll auswerten funktioniert nicht, da die Schnittstelle nicht standardisiert genutzt wird, des weiteren hängt das Überwachungstool auf der Schnittstelle und blockiert diese. Die USV ist eingestellt, dass sobald ein Stromausfall erkannt wird, dass Überwachungstool den Shutdown nach einer gewissen Zeit einleitet. Wie komme ich an die Windows Message ?
Shutdown sollte nach Möglichkeit nicht unterbrochen werden.

23uwe

Wenn Du die USV nicht nach LabVIEW umleiten willst um dann von LabVIEW aus den Shutdown einzuleiten, wirst Du wohl nicht umhin kommen um die LabVIEW Windows Message Queue zu hooken und die entsprechende Windows Event Message abzufangen. Auf ni.com gibt es irgendwo eine Windows Message Queue Library mit DLL und Source Code die so etwas tun kann.

Ich glaube mich aber zu erinnern dass da auch noch Schwierigkeiten waren mit dem Abfangen bestimmter Messages. Und wenn Du sie nicht wirklich abfängst und später neu ins System einfügst ist es noch die Frage, ob Dir genügend Zeit bleibt um eine ordentlichen Remote Shutdown zu initieren bevor Windows das Licht ganz ausmacht.

Rolf Kalbermatter


Windows Shutdown abfangen - 23uwe - 17.12.2007 10:27

Hallo zusammen,

nachdem ich jetzt die USV zum Testen habe (bisher hatte ich nur ein Testtool, welche die USV simuliert) kann ich mitteilen, dass das "Application Exit" Event ausgelöst wird, wenn die USV den Rechner herunter fahren will.
Jetzt muss nur noch sicher gestellt werden, dass XP mir lange genug Zeit lässt, dass Programm zu beenden.
Registry Eintrag: WaitToKillServiceTimeout => auf größer 5 Sekunden gesetzt (default 20s).

Danke an alle für die Informationen.

Gruß
23uwe