20.07.2010, 00:54
Beitrag #1
|
Safa
LVF-Gelegenheitsschreiber
Beiträge: 76
Registriert seit: May 2009
2010
-
kA
44866
Deutschland
|
Universal Stop-Button
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
|
|
|
20.07.2010, 05:22
Beitrag #2
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Universal Stop-Button
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.
|
|
|
20.07.2010, 07:32
Beitrag #3
|
SeBa
LVF-Guru
Beiträge: 2.025
Registriert seit: Oct 2008
09SP1 & 10 FDS
2008
DE
65xxx
Deutschland
|
Universal Stop-Button
' schrieb:...und das Ausschalten des Netzteils veranlassen.
So siehts aus.
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
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
|
|
|
20.07.2010, 07:38
Beitrag #4
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Universal Stop-Button
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.
|
|
|
20.07.2010, 07:42
Beitrag #5
|
SeBa
LVF-Guru
Beiträge: 2.025
Registriert seit: Oct 2008
09SP1 & 10 FDS
2008
DE
65xxx
Deutschland
|
Universal Stop-Button
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.
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
|
|
|
20.07.2010, 11:39
Beitrag #6
|
Kiesch
LVF-Stammgast
Beiträge: 422
Registriert seit: Mar 2009
2019, 2018, 2016
2009
DE
04519
Deutschland
|
Universal Stop-Button
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).
Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
|
|
|
20.07.2010, 11:48
Beitrag #7
|
Frederik Berck
LVF-Grünschnabel
Beiträge: 19
Registriert seit: Oct 2008
KEINE
2008
de
63225
Deutschland
|
Universal Stop-Button
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
|
|
|
20.07.2010, 15:46
Beitrag #8
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Universal Stop-Button
' 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.
|
|
|
21.07.2010, 18:41
Beitrag #9
|
Safa
LVF-Gelegenheitsschreiber
Beiträge: 76
Registriert seit: May 2009
2010
-
kA
44866
Deutschland
|
Universal Stop-Button
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 ersetzt
=> 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
|
|
|
21.07.2010, 19:07
(Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2010 19:08 von Matze.)
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Universal Stop-Button
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.
|
|
|
| |