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 

Dieses Thema hat akzeptierte Lösungen:

Programmabbruch in Ereignisstruktur



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!

15.12.2005, 15:43
Beitrag #1

SGeisler Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Dec 2005

7.2 u 8
2005
de


Deutschland
Programmabbruch in Ereignisstruktur
Hallo zusammen,

ich habe folgendes Problem: Ich möchte (m)ein Programm in jeder Situation abbrechen können ("Not-Aus") und habe mir daher gedacht, dass sich hier die (mir noch nicht ganz erschlossene) Ereignisstruktur anbieten müsste. Jedoch ist mir das noch nicht gelungen. Was muss ich beachten, damit eine Sequenz oder Schleife tatsächlich von überall aus abgebrochen werden kann?

Leider ergibt mein Handbuch, etc. auch keine weiteren Aufschlüsse darüber. Meines Erachtens nach werden die Ereignisse nur dürftig erklärt.

Vielen Dank und schöne Grüße,
Stefan
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.12.2005, 17:02
Beitrag #2

MrSieb Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Nov 2005


-
de


Deutschland
Programmabbruch in Ereignisstruktur
SGeisler schrieb:Was muss ich beachten, damit eine Sequenz oder Schleife tatsächlich von überall aus abgebrochen werden kann?

Wenn du das ganze programm abbrechne möchtest (oder subvi) verwendest ganz
einfach das STOP vi unter den Application Controls, willst du eine sequenz, schleife
vorgang sofort abbrechen muss du den programmfluß so programmieren dass das eben
möglich ist und das ist spezifisch sprich wie werden
schleifen sequenze cases verschachtelt machmal is es ein wenig tricky aber prinzipiell möglich
sowas wie GOTO (was sowieso pervers ist) gibts ned.
post evtl mal ein vi wo du das problem hast.

greez

_______________________________
There is no business like flowbusiness.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.12.2005, 17:32
Beitrag #3

SGeisler Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Dec 2005

7.2 u 8
2005
de


Deutschland
Programmabbruch in Ereignisstruktur
Vielen Dank.

stop.vi kommt dem schon sehr nahe. Wie schaffe ich das denn, dass ich von überall darauf zugreifen kann. Ich möchte, dass das Programm sofort abbricht, und nicht erst nach einem Schleifenablauf, oder am Ende einer Sequenz.
Ermöglicht mir die Ereignisstruktur nicht ein Handeln bei gleichzeitiger Ausführung eines (Sub-)VIs? Heißt: Kann ich nicht, während irgendwo eine Schleife läuft einen Stop-Knopf drücken, der das Programm sofort abbricht? Ich habe das Gefühl, dass immer erst ein Programmteil komplett verarbeitet wird, bevor es wieder zu dem -ich sage mal- Ereignis-Status zurückkehrt und weitere Eingaben gemacht werden können.

Besten Dank nochmals und schonmal,
Stefan

P.S.: Antwort aus der Zukunft (17:02)? Wir haben doch erst halb fünf. ;-)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.12.2005, 18:17
Beitrag #4

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
Programmabbruch in Ereignisstruktur
es geht, indem du das ausfuehrende VI ueber den VI server terminierst!
sprich, entweder arbeitest du alle ereignisse in einem sub-vi ab und terminierst das sub-vi oder du laesst eine eigene while schleife oder auch 2. ereignisstruktur laufen, die sich dann selbst terminiert :-)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.12.2005, 11:12
Beitrag #5

MrSieb Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Nov 2005


-
de


Deutschland
Programmabbruch in Ereignisstruktur
SGeisler schrieb:Vielen Dank.
Wie schaffe ich das denn, dass ich von überall darauf zugreifen kann. Ich möchte, dass das Programm sofort abbricht, und nicht erst nach einem Schleifenablauf, oder am Ende einer Sequenz.

Ich frag jetzt mal ganz praktikabel.

1.Wenn du das komplette Programm einfach stopen
möchtest was spricht gegen den ABORT Knopf ?

2.Wenn du eine art Not Aus benötigst geh ich mal
davon aus das auch etwas gesteuert wird sonst fehlt mir
der sinn eines Not Aus schalters.

3. Wenn etwas gesteuert wird hat das erfahrungs gemäs einen
Sequenzellen ablauf und das bedeutet das der NOT AUS
ein wesentlicher Teil des ablaufes ist.


[quote=SGeisler]Ermöglicht mir die Ereignisstruktur nicht ein Handeln bei gleichzeitiger

_______________________________
There is no business like flowbusiness.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2011, 14:54
Beitrag #6

BeFu Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 84
Registriert seit: Jun 2006

2011
2006
DE_EN

96450
Deutschland
RE: Programmabbruch in Ereignisstruktur
Hallo,

im aktuellen Projekt erfasse ich mit einer Ereignisstruktur in der Producer Loop (PL) Bedieneingaben, die dann in der Consumer Loop (CL) abgearbeitet werden. Vor der CL wird unter anderem eine DC-Prüfversorgung initialisiert. Bei Spannungen von bis zu 600V und Strömen von bis zu 400A muss ich dafür sorgen, dass bei Auslösen des Bedienelements Notaus die CL sofort stoppt (auch bei einer - im beigefügten Notaus.vi - aktuell laufenden Start-Sequnz beendet wird) und im Anschluss an die CL die vorher initialisierten Periferie-Geräte in einen sicheren Zustand gefahren werden. Daher kann ich das LabVIEW eigene STOP.vi nicht mittels Notaus ansteuern.
Das beigefügte Notaus.vi habe ich in LabVIEW 8.5 erstellt; bitte stellt Eure eventuellen Lösungsvorschläge auch in LabVIEW 8.5 zur Verfügung. da ich aktuell mit LabVIEW 8.5 arbeite.
Danke für Eure Hilfe.
Schöne Grüße,

BeFu


Angehängte Datei(en)
8.5 .vi  Notaus.vi (Größe: 28,47 KB / Downloads: 314)

Das Ziel ist der Weg
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.03.2011, 17:32
Beitrag #7

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Programmabbruch in Ereignisstruktur

Akzeptierte Lösung

Ein Brutalo-Stop sollte immer das allerletzte Mittel sein. Was einen sofortigen Stop gewöhnlich verhindert, sind eingebaute Waits an irgendwelchen Stellen des Programms, die nicht unterbrechbar sind.
Timeouts hingegen sind unterbrechbar. Man muß also nur die Wait-Funktionen durch Timeouts ersetzen. Also z.B. man mißbraucht den Timeout-Case einer Ereignisstruktur als Wait-Funktion - und schon ist der sofortige Stop machbar. (andere Möglicheit z.B: Warten auf Occurrence bis zum Timeout)
Habe mal das Programm Notaus vereinacht und entsprechend gändert.
   
Lv10
0 .vi  Notaus1.vi (Größe: 15,82 KB / Downloads: 326)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.03.2011, 08:39
Beitrag #8

BeFu Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 84
Registriert seit: Jun 2006

2011
2006
DE_EN

96450
Deutschland
RE: Programmabbruch in Ereignisstruktur
(23.03.2011 17:32 )Lucki schrieb:  Ein Brutalo-Stop sollte immer das allerletzte Mittel sein. Was einen sofortigen Stop gewöhnlich verhindert, sind eingebaute Waits an irgendwelchen Stellen des Programms, die nicht unterbrechbar sind.
Timeouts hingegen sind unterbrechbar. Man muß also nur die Wait-Funktionen durch Timeouts ersetzen. Also z.B. man mißbraucht den Timeout-Case einer Ereignisstruktur als Wait-Funktion - und schon ist der sofortige Stop machbar. (andere Möglicheit z.B: Warten auf Occurrence bis zum Timeout)
Habe mal das Programm Notaus vereinacht und entsprechend gändert.

Lv10

Danke vielmals Lucki
für Deine Erklärung und Lösung meines Problems. Speziell. dass Du 'nen Screenshot Deiner Lösung beigefügt hat.
Du hast Recht, mein Denkfehler lag in der Wait-Funktion. So lange diese aktiv ist, steht die CPU anderen Threads zur Verfügung.
Schöne Grüße,

BeFu

Das Ziel ist der Weg
Webseite des Benutzers besuchen 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
  Serielle Ereignisstruktur-Variablen in Ereignisstruktur übergeben Hummingbird 15 15.591 02.11.2011 16:13
Letzter Beitrag: Hummingbird
  Eventstrukturen ? Programmabbruch? Stegri 4 4.482 18.05.2006 14:16
Letzter Beitrag: Stegri

Gehe zu: