INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Programm Stop



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

01.08.2009, 08:45 (Dieser Beitrag wurde zuletzt bearbeitet: 01.08.2009 09:45 von Lucki.)
Beitrag #11

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Programm Stop
' schrieb:Ich denke, ich werde noch einen großen Case einsetzen, in dem mein ganzes Programm sitzt, und der ist durch die Stop-Funktion gesteuert.
Und ich sehe da gar keine Schwierigkeit. In einer Viertelstunde ist alles erledigt, wenn Du es so machst:
   
Lv86_img
Sonstige .vi  Stop_sofort.vi (Größe: 7,31 KB / Downloads: 174)


Falls Du aber dafür nur 2 Minuten Zeit zur Verfügung hast, dann bleibt nur es so zu machen (Aber kein anständiger Programmierer macht das. Die Stop-Taste drückt den roten Knopf)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.08.2009, 10:08
Beitrag #12

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Programm Stop
' schrieb:Wie wär es mit folgendem VI. Da eh nur gewartet wird kann man eine Ereignisstruktur mit Timeout einsetzen. Stoppt sofort wenn man Stop drückt.
Dieser Vorschlag ist schlichtweg optimal, und die Umstellung dürfte auch schnell gehen. Ein Anfänger würde sich vielleicht etwas mehr Text wünschen. Also hier ist er:
In den Timeout-Case kommt der Inhalt der bisherigen Haupschleife hinein. (Der Boolsche alternierende Schalter dient nur als Platzhalter) Natürlich abzüglich der Uhren.
Dies Struktur wird man in der Regel noch erweitern. Denn wenn einmal diese schöne Struktur da ist, wird man auch weitere Bedienvorgänge oder sogar alle als Ereignisse behandeln.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.08.2009, 12:35
Beitrag #13

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
Programm Stop
' schrieb:Ich habe das Problem mit langsamem Stop genauer angeschaut:

Stellvertretend für das große Programm habe ich eine Blinkschaltung gebastelt. Blinkfrequenz 10 sec..

In beiden Fällen blinkt das Licht mit der gleichen Frequenz. Drücke ich STOP, ist die Reaktion aber unterschiedlich. Wenn das zeitglied in der gleichen Schleife wie die Stop-Funktion ist, wird der Zeitablauf nochmals gestartet, wenn Stop gegeben ist. Mit dem Zeitglied im Case wird nach Zeitablauf sofort beendet bei Stop.

Für eine schnelle Reaktion auf Stop empfiehlt sich also, das zeitbegrenzende Glied nicht in höchter Ebene einzusetzen.

Das ist doch logisch. Im ersten Fall wird "Stopp" ausgwertet und anschließend gewartet. Wenn du dann auf Stopp drückst wird dies erst in der nächsten Iteration ausgwertet. Mit definiertem Datenfluss könntest du das aber umgehen.

Ich bevorzuge für so etwas eine stinknormale whileschleife, die alle 50 ms ausgeführt wird. Bei einer Ereignisstruktur brauch ich dynamische Ereignisse, wenn ichs als SubVI einsetzen will.

Gruß Julius
Empfehlungen: expressionflow, LavaG , mooregoodideas, OpenG, JKI Blog
Tipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.08.2009, 16:37
Beitrag #14

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
Programm Stop
Danke für die Vorschläge!

Mit einigem Rumprobieren fand ich, daß mir bei meiner LabVIEW-Version (Base) die Ereignis-Struktur nicht zur Verfügung steht. Da fallen einige Vorschläge für mich von Vorn herein flach. Der Vorschlag in Beitrag 11 stoppt auch nicht langsamer, als meine Basteleien, es schien nur so, weil der Timer im Case auf 100ms stand.

Ich habe nochmal rumgebastelt, und die funktion "Auf Frontpanel Aktivität warten" gefunden. Da kann der Timeout als Zeitfunktion verwendung finden, Stop als Eingabe über das Frontpanel bricht diese "Zeitfunktion" ab. Leider läßt sich keine zur Systemuhr synchrone Steuerung damit aufbauen.

Ich habe schließlich einen Timer selbst gebastelt, der alle Bedingungen erfüllt, wie Synchron zur Systemuhr, und Schnellstop: Auslesen der Systemuhr, String in Zahl verwandeln, und nur die Sekunden herausführen. Diesen Wert für die Zeitsteuerung anschließend aufarbeiten, um 2 While-Iterationen pro Minute zu erhalten. Der angesteuerte Case muß nur eine Verzögerung von mindestens einer Sekunde enthalten, damit keine zwei Events innerhalb der Triggerzeit vorkommen (Ist eigentlich nur bei einem so einfachen Programm, wie Blinklicht relevant).


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.08.2009, 08:35
Beitrag #15

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Programm Stop
Nichts desto trotz solltest Du in der While-Schleife ein kleines Wait spendieren, z. B. 50 ms. Das ändert nichts an der Reaktionszeit beim Drücken des Stopp-Knopfes. Es reduziert aber die Prozessorauslastung der anderenfalls volle Kraft voraus die While-Schleife abarbeitet.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.08.2009, 09:16
Beitrag #16

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
Programm Stop
Guter Tip, danke!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Stop eines VIs aus drei Schleifen Lab_fänger 3 3.323 14.10.2015 06:56
Letzter Beitrag: Lucki
  Stop während Eventstruktur am laufen ist haydenfan 5 5.425 05.11.2013 09:50
Letzter Beitrag: haydenfan
  Search & Replace STOP gottfried 8 6.370 01.08.2013 08:44
Letzter Beitrag: eb
  Stop-Button stoppt nicht zwei While-Schleifen wiktor 2 8.411 07.07.2011 19:29
Letzter Beitrag: Lucki
  Reset nach Stop in der whileschleife applefan 8 10.552 22.12.2010 14:17
Letzter Beitrag: NWOmason
  Manueller Start- /Stop-Trigger 4037 22 17.870 01.12.2010 14:42
Letzter Beitrag: 4037

Gehe zu: