Antwort schreiben 

Zeitsteuerung abbrechen



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!

06.01.2011, 16:33
Beitrag #1

Maurice Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Oct 2010

8.6
2010
de

76646
Deutschland
Zeitsteuerung abbrechen
Hallo Experten,

ich möchte eine zeitgesteuerte Profilsteuerung aufbauen. Dabei wird eine csv Datei eingelesen, in der 1. Spalte steht immer die Zeit, wie lange die Werte in den restlichen Spalten gehalten werden sollen.
Ich realisiere das mit einer Verzögerung der while Schleife. Beispielsweise wenn die Werte der restlichen Spalten 2...i 10 Sekunden gehalten werden soll, ist die Verzögerung 10000ms.

Mein Problem ist, während diesen 10000ms kann ich die Schleife nicht abbrechen, was aber unbedingt funktionieren soll. Ich kenne auch keine andere Möglichkeit der Zeitmessung, habt ihr eine Idee? Die Stop anweisung
kann ich nicht verwenden, da die Profilsteuerung ein SubVI ist und das HauptVi trotzdem weiterlaufen soll.

Anhang: Das Vi in LabView 8.6

Vielen Dank für euere Hilfe,

viele Grüße

Maurice

PS: Die Datei profst.csv muss nach C:profst.csv damit die Pfade stimmen.

EDIT: csv Dateien darf ich nicht hochladen, also hab ich sie in txt geändert. Bitte umbenennen.


Angehängte Datei(en)
Sonstige .vi  Profilsteuerung.vi (Größe: 17,24 KB / Downloads: 73)

Sonstige .txt  profst.txt (Größe: 88 Bytes / Downloads: 69)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.01.2011, 17:14 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2011 17:17 von Mike###.)
Beitrag #2

Mike### Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 64
Registriert seit: Sep 2008

2009
2008
de

10707
Deutschland
Zeitsteuerung abbrechen
Hallo,

vielleicht so?

Gruß

Mike


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.01.2011, 17:50
Beitrag #3

Maurice Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Oct 2010

8.6
2010
de

76646
Deutschland
Zeitsteuerung abbrechen
Hey,

Dank Dir, dein Ansatz sieht gut aus, es fällt mir nur ein bißchen schwer, das in mein Programm zu integrieren, hast du noch eine Idee?

Danke und Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.01.2011, 19:12
Beitrag #4

Maurice Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Oct 2010

8.6
2010
de

76646
Deutschland
Zeitsteuerung abbrechen
Nachtrag: Mitterlweile bin ich sogar am Zweifeln ob eine zeigesteuerte Profilsteuerung wie ich sie vor habe überhaupt ohne das Verzögerungs-Symbol auskommt, sprich ein Abbruch ist immer erst zur nächsten Zeitsteuerung möglich. Wenn ich zum Bsp folgende Zeiten fahren will:

10 sek lang die Werte halten dann
12 sek lang die Werte halten dann
2 sek die Werte halten.

Das heißt man müsste beim Abbruch nach 4 sek bspw. 6 Sekunden warten.

Oder seht ihr eine andere Möglichkeit?

MFG

Maurice
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.01.2011, 21:33
Beitrag #5

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Zeitsteuerung abbrechen
10 s sind 100 mal 100 ms. Wenn Du das "Wait" in eine Reihe von "Wait until next multiple ms" zerlegts, dann kannst Du die Schleife alle 100 ms abbrechen, was eine verschmerzliche Wartezeit ist.

Vielleicht geht es auch mit einer Ereignisstruktur, bei der das Timeout entsprechend der gewünschten Wartezeit gesetzt wird. Zusätzlicht kann die Eventstruktur Ereignisse eines Stopbuttons auswerten.

Man könnte auch die Systemzeit pollen und prüfen, ob die gewüschte Wartezeit vorbei ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.01.2011, 22:59
Beitrag #6

Maurice Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Oct 2010

8.6
2010
de

76646
Deutschland
Zeitsteuerung abbrechen
' schrieb:10 s sind 100 mal 100 ms. Wenn Du das "Wait" in eine Reihe von "Wait until next multiple ms" zerlegts, dann kannst Du die Schleife alle 100 ms abbrechen, was eine verschmerzliche Wartezeit ist.

Vielleicht geht es auch mit einer Ereignisstruktur, bei der das Timeout entsprechend der gewünschten Wartezeit gesetzt wird. Zusätzlicht kann die Eventstruktur Ereignisse eines Stopbuttons auswerten.

Man könnte auch die Systemzeit pollen und prüfen, ob die gewüschte Wartezeit vorbei ist.


Ich Danke Dir für deinen Hilfreichen Beitrag!

Viele Grüße

Maurice
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.01.2011, 00:35 (Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2011 00:36 von Lucki.)
Beitrag #7

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

Beiträge: 6.798
Registriert seit: Mar 2006

bis 2013 ohne Addons
1995
DE

01108
Deutschland
Zeitsteuerung abbrechen
Ich nehme dafür immer eine Ereignisstruktur, so wie Unicorn es schon angedeutet hat.
Lv86_img
Sonstige .vi  Profilsteuerung.vi (Größe: 13,91 KB / Downloads: 96)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.01.2011, 09:35
Beitrag #8

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Zeitsteuerung abbrechen
Es braucht noch eine klitzekleines angebundenes TRUE im dem Timeout-Fall der Ereignisstruktur in Luckis Beispiel, damit die Schleife auch nach der gewünschten Zeit zu Ende ist. Damit ist dann das Beispielprogramm auch insgesamt zu Ende. D. h. man braucht noch eine Schleife drum herum im Hauptprogramm, die dann aber keine weitere Ereignisstruktur haben dürfte. Folglich packt man das abbrechbare Warten in ein SubVI, damit es alles LabVIEW regelkonform ist.

Ich hoffe, Maurice, Du kannst mir folgen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.01.2011, 18:54
Beitrag #9

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

Beiträge: 6.798
Registriert seit: Mar 2006

bis 2013 ohne Addons
1995
DE

01108
Deutschland
Zeitsteuerung abbrechen
' schrieb:Es braucht noch eine klitzekleines angebundenes TRUE im dem Timeout-Fall der Ereignisstruktur in Luckis Beispiel, damit die Schleife auch nach der gewünschten Zeit zu Ende ist.
Das verstehe ich nicht: Im TimeOut-Fall soll die Schleife doch nicht abbrechen, sondern weitermachen. Nur wenn die Taste "Abbrechen" gedrückt wird, soll ohne weitere Wartezeit sofort gestoppt werden.
Allerdings sollte sich das VI auch ihne Stopp-Befehl von selbst beenden: Wenn nämlich alle Aufgaben erfüllt sind. In Vorbereitung dazu hat Maurice schon einen Vergleicher "=" installiert:
   
- der allerdings noch nicht angeschlossen ist. Da das nicht das Thema der Anfrage war, habe ich das so stehen gelassen. (- und wenn nicht, würde ich hier nicht vergleichen, sondern eine For-Schleife mit Bedingungsanschluß verwenden)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.01.2011, 22:32
Beitrag #10

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Zeitsteuerung abbrechen
Ich dachte Maurice wollte in erster Linie eine gewisse Zeit (10 s) warten und ggf. die Wartezeit durch Drücken eines Knopfes vorzeitig beenden. Das Timeout der Ereignisstruktur hätte ich nun zum Warten genutzt. Optional kann die Ereignisstruktur (im Gegensatz zum einfachen Wait) auf andere Ereignisse wie den Abbrechenknopf reagieren. Danach wäre das Programm, so weit ich es interpretiert hatte, in einem anderen Zustand. Es würde nicht mehr Warten und nicht mehr auf Knöpfe reagieren, sondern steuern, messen oder rechnen.

Vielleicht liegt es auch daran, dass ich mit dem Begriff Profilsteuerung nur bedingt etwas anfangen kann.

Wenn Maurice eine Abbruchbedingung außer der Zeit hat, braucht er eigentlich nicht zu warten (außer einem obligatorischen Wait in einer Schleife, damit der Prozessor sich nicht "tot" macht), sondern kann gleich entweder die Bedingung oder den Abbruchknopf auswerten. Das kann man auch mit der Ereignisstruktur machen. Das Timeout würde ich dann auf etwa 1/10 der typischen Dauer einstellen, bis die Abbruchbedingung erreicht, so dass die Abbruchbedingung hinreichend oft geprüft wird.
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
  Zeitsteuerung für Relais Starlancer 2 609 06.06.2013 11:31
Letzter Beitrag: Starlancer
  Laufendes VI abbrechen Patrik 5 602 04.04.2013 08:09
Letzter Beitrag: Patrik
  wie Prozess vorzeitig abbrechen? Hasenfuss 3 605 13.03.2013 16:46
Letzter Beitrag: GerdW
  Zyklus abbrechen ragingbull 11 1.176 24.09.2012 16:19
Letzter Beitrag: GerdW
  While Schleife vorzeitig abbrechen Moeseph 3 1.365 08.04.2012 12:09
Letzter Beitrag: Moeseph
  Abbrechen von Systembefehlen Stingray75 5 950 04.04.2012 12:53
Letzter Beitrag: GerdW

Gehe zu: