szmtag


Antwort schreiben 

Zeitsteuerung abbrechen

06.01.2011, 16:33
Beitrag #1

Maurice Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Oct 2010

LV-Version: 8.6
LV-Erfahrung seit: 2010
LV-Sprachversion: de

PLZ: 76646
Land: 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: 58)

Sonstige .txt  profst.txt (Größe: 88 Bytes / Downloads: 48)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top

LVF-AdBot




LVF-PartnerAds
Bücher zum Thema LabVIEW:

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

LV-Version: 2009
LV-Erfahrung seit: 2008
LV-Sprachversion: de

PLZ: 10707
Land: 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

LV-Version: 8.6
LV-Erfahrung seit: 2010
LV-Sprachversion: de

PLZ: 76646
Land: 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

LV-Version: 8.6
LV-Erfahrung seit: 2010
LV-Sprachversion: de

PLZ: 76646
Land: 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: 678
Registriert seit: Jul 2009

LV-Version: 8.6.1, 2010 - 2012
LV-Erfahrung seit: 1994
LV-Sprachversion: EN

PLZ: 10xxx
Land: 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

LV-Version: 8.6
LV-Erfahrung seit: 2010
LV-Sprachversion: de

PLZ: 76646
Land: 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

LVF-Partner

LVF-Partner


LVF-PartnerAds
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.165
Registriert seit: Mar 2006

LV-Version: ..2011 Prof. ohne Addons
LV-Erfahrung seit: 1995
LV-Sprachversion: DE

PLZ: 01108
Land: 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: 69)
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: 678
Registriert seit: Jul 2009

LV-Version: 8.6.1, 2010 - 2012
LV-Erfahrung seit: 1994
LV-Sprachversion: EN

PLZ: 10xxx
Land: 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.165
Registriert seit: Mar 2006

LV-Version: ..2011 Prof. ohne Addons
LV-Erfahrung seit: 1995
LV-Sprachversion: DE

PLZ: 01108
Land: 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: 678
Registriert seit: Jul 2009

LV-Version: 8.6.1, 2010 - 2012
LV-Erfahrung seit: 1994
LV-Sprachversion: EN

PLZ: 10xxx
Land: 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
  Laufendes VI abbrechen Patrik 5 191 04.04.2013 08:09
Letzter Beitrag: Patrik
  Zyklus abbrechen ragingbull 11 579 24.09.2012 16:19
Letzter Beitrag: GerdW
  Abbrechen von Systembefehlen Stingray75 5 544 04.04.2012 12:53
Letzter Beitrag: GerdW
  Struktur für Zeitsteuerung gesucht ede84 22 2.439 16.02.2012 10:42
Letzter Beitrag: ede84
  Schleife abbrechen gottfried 9 1.622 07.12.2011 14:28
Letzter Beitrag: Kiesch
  Warten abbrechen? break2 4 806 22.11.2011 15:30
Letzter Beitrag: break2

Gehe zu: