LabVIEWForum.de
Universal Stop-Button - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Universal Stop-Button (/Thread-Universal-Stop-Button)

Seiten: 1 2


Universal Stop-Button - Safa - 20.07.2010 00:54

Hallo,
ich habe wiedermal eine Frage zur Programmierung in LabVIEW. Wenn ich mein VI starte, dann sind dort spezielle Einstellungen gespeichert, zum Beispiel stehen alle Schalter auf Null. Ich habe nun ein Netzteil in LabVIEW eingebunden, bei dem es Hilfreich wäre, es sofort abzuschalten, wenn etwas bei der Versuchsdurchführung schief läuft. Klicke ich auf den roten Button in LabVIEW wird das VI gestoppt, das Netzteil bleibt jedoch aktiv.

Meine Frage: Gibt es eine Art "universal Stop-Button", welcher bei Betätigung das VI komplett auf den Ausgangszustand zurücksetzt?

Wäre wie immer für eure Hilfe dankbar.

Gruß,
Safa


Universal Stop-Button - Matze - 20.07.2010 05:22

Hallo,

so ein VI ist mir nicht bekannt, was jedoch nichts heißen muss.

Spontan fallen mir 2 Möglichkeiten ein:[list=1]
[*]State Machine
Du könntest dein Programm in einer State Machine ausführen und beim Klick auf Stop in einen Zustand wie "Zurücksetzen" springen, der dann abgearbeitet wird und in dem du das Netzteil aus schaltest.<>
[*]Ereignisstruktur
In einer Ereignisstruktur kannst du auf den Stop-Button reagieren und das Ausschalten des Netzteils veranlassen.<>
[st]Letzteres geht bei einem RealTime-System nicht.


Universal Stop-Button - SeBa - 20.07.2010 07:32

' schrieb:...und das Ausschalten des Netzteils veranlassen.

So siehts aus.

Excl Der rote Stop-Knopf in der Menüleiste ist nicht für den Produktiveinsatz gedacht.
Damit wird einfach das VI angehalten... woher soll LV dann wissen, dass du gerne dein Netzteil in irgendeinen anderen Zustand versetzen willst?

Nebenbei...

Notaus ist immer in Hardware zu realisieren.


Gruß SeBa


Universal Stop-Button - Matze - 20.07.2010 07:38

Ich ginge vom roten Schleifen-Stop-Button aus. Wenn er natürlich den roten Button in der Menüleiste meint, dann ist das, als würde ein Prozess abgeschossen werden.

Einen Not-Aus kann man per LabVIEW natürlich nicht umsetzen, aber es ist möglich, z.B. beim Beenden des Programms über einen eigenen Stop-Button das Netzteil auszuschalten.
Und ich ging davon aus, dass er das möchte.


Universal Stop-Button - SeBa - 20.07.2010 07:42

Lassen wir uns überraschen.

Und natürlich spricht nichts gegen eine geeignete Shutdown-Routine... solange man nicht den erwähnten Knopf drückt.


Gruß SeBa

EDIT:

' schrieb:Ich habe nun ein Netzteil in LabVIEW eingebunden, bei dem es Hilfreich wäre, es sofort abzuschalten, wenn etwas bei der Versuchsdurchführung schief läuft.

== Notaus.


Universal Stop-Button - Kiesch - 20.07.2010 11:39

Was er also braucht wäre eher eine Möglichkeit den Roten "aus knopf" von Labview verschwinden zu lassen - da der ungesteuertes Verhalten auslöst. Am besten durch einen noch größeren röteren Knopf auf dem FP ersetzen der bei Betätigung einen kontrollierten Shutdown macht (rot etc. als Eyecatcher, damit der Benutzer nicht den anderen nimmt).


Universal Stop-Button - Frederik Berck - 20.07.2010 11:48

Er möchte also nur einen definierten Shutdown zulassen...

Wie wäre es in den VI-Properties->Windows Appearence auf Customize klicken und das Häckchen bei "Show Abort Button" wegmachen...
Zusätzlich kannst du noch das Häckchen bei "Allow User to close Window" wegmachen...
Um das VI jetzt noch beenden zu können, muss also der hierfür vorgesehene Stop-Button auf dem Frontpanel gedrückt werden. Dadrauf kannst du natürlich mit einer ordentlichen Shutdown-Routine reagieren...
Gruß
Freddy


Universal Stop-Button - Matze - 20.07.2010 15:46

' schrieb:Am besten durch einen noch größeren röteren Knopf auf dem FP ersetzen der bei Betätigung einen kontrollierten Shutdown macht (rot etc. als Eyecatcher, damit der Benutzer nicht den anderen nimmt).
Sehr sichere Vorgehsweise. *g*

Den lässt man dann, wie Frederik schreibt, gar nicht erst anzeigen.

Aber warten wir ab, was er möchte. Ich habe ihn verstanden wie Frederik, aber SeBa könnte auch recht haben und dann wäre LabVIEW ungeeignet dafür.


Universal Stop-Button - Safa - 21.07.2010 18:41

Hallo,

vielen Dank für die zahlreichen Antworten, wusste nicht dass ich damit soviel "Unruhe" auslöse *g*

@Mechatronik-Ingenieur:
Wie genau lasse ich mein VI in einer State Machine laufen? Vielleicht hilft mir das irgendwie bei meinem Problem weiter.

@all:
Also ich meine nicht den roten Knopf in einer Schleife. Ich suche quasi den Befehl, den LabVIEW aufruft, wenn er das VI startet ("Ausganszustand laden")
=> Der rote Knopf, welcher betätigt wird, war wirklich der in der Menu-Leiste (oben) => das Programm hat noch keinen Notaus.

Ich wollte nicht einen Stopp-Button mit dem gesamten VI verdrahten und dachte es gäbe eine Funktion, welche die sogeannte Shutdown-Routine ersetztSad

=> Ich muss also mein Programm so modifizieren, dass bei Betätigung eines Stopp-Buttons alle Geräte abgeschaltet werden. Ist das die einzige Möglichkeit?

Gruß,
Safa


Universal Stop-Button - Matze - 21.07.2010 19:07

Hallo,

das mit der State Machine war nur eine Idee. Theoretisch ginge auch eine (gestapelte) Sequenzstruktur, die beim Programmende ihre zweite Sequenz aufruft.
Aus deiner Haupt-While-Schleife könntest du auch einen Fehlercluster nach rechts herausziehen und mit einem SubVI verbinden, das das Netzteil beim Verlassen der Schleife (= dem Beenden des Programms) ausschaltet.

Da du aber schreibst, es ginge um diesen roten, runden, Stopp-Button in der Menüleiste, kann ich nur sagen: Das geht nicht.

Der Stopp-Button ist u.a. dazu da, dein Programm abzuschießen, wenn es hängt (Endlosschleife o.ä.). D.h. darauf kannst du nicht reagieren und sollst auch nicht reagieren können. Es ist auch nicht zu empfehlen, ein Programm über diesen Button zu Beenden und schon gar nicht, wenn du mit einer Hardware kommunizierst, da undefinierte Zustände auftreten können. Und erst recht nicht, wenn danach noch Code ausgeführt werden muss.
Ein Programm sollte man immer über einen selbst platzieren Stopp-Button beenden, der das Verlassen von Schleifen veranlasst und zwar so, dass Speicher und Referenzen freigegeben werden können etc.

Wenn es um sicherheitskritische Vorgänge geht, muss - wie bereits erwähnt - eine Hardware-Lösung her. Alles andere ist unsicher, da man sich auf Software nie so sehr verlassen kann bzw. viel zu leicht man ein unerwartetes Verhalten auftreten kann.

Ich glaube auch, dass du Begriffe durcheinander wirfst: Mit deinem LabVIEW-Programm wirst du nie einen Not-Aus realisieren können. Du meinst vermutlich einfach, dass man das Programm beendet können muss.