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 

Timer in Sequenz unterbrechen



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!

21.12.2012, 08:48
Beitrag #1

Labor Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: May 2012

2010
2011
DE



Timer in Sequenz unterbrechen
Hallo,

ich möchte in einer Sequenz einen Timer unterbrechen. Den Timer brauche ich, um zu warten, bis das gewünschte Signal erzeugt wird.

Beim Druck auf Stop/Abbrechen, soll das Programm den Timer auf null setzen und das Prgramm abbrechen. Ich hab mir da was zusammengebastelt. Leider funktioniert es nicht, wie gewünscht.

Hat jemand eine Idee/einen guten Hinweis?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.12.2012, 09:29
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: Timer in Sequenz unterbrechen
Das geht so nicht, weil das Wait auf jeden Fall so lange ausgeführt wird, wie Du es vorne angeschlossen hast.
Bau Dir eine Schleife mit kurzen Wartezeiten und wiederhole die entsprechend, bei 60 s z.B. 600 mal eine Wartezeit von 100 ms. Wenn Du dann auf den Stop-Button klickst, bricht die Schleife spätestens nach den 100 ms ab.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2012, 09:44 (Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2012 10:00 von Lucki.)
Beitrag #3

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: Timer in Sequenz unterbrechen
Mir fallen da außer dem Vorschlag von Markus noch mindesten 3 andere Möglichkeiten in. Z.B das hier statt Wait verwenden:
   
oder das:
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2012, 10:50
Beitrag #4

Labor Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: May 2012

2010
2011
DE



RE: Timer in Sequenz unterbrechen
Hallo,

vielen Dank für die Antworten.

Y-Ps Vorschlag funktioniert leider nicht. Ich habe in die Sequenz eine For-Schleife gelegt und darein den Timer mit 10ms, Wiederholung N=6000. Stop ist mit der Stop-Taste der While-Shleife verbunden. Leider bewirkt das gar nichts. Es dauert trotzdem gut eine Minute, bis das Programm anhält. Bild ist angehängt. Warum geht das nicht?

Lucki, dein zweiter Vorschlag bricht das Programm ab, wenn die Zeit rum ist. Ich meinte eher, dass nach Ablauf der Zeit, der nächste Rahmen der Sequenz beginnt. Bei deinem ersten Vorschlag sind so viele unbekannte Elemente drin, dass ich das nicht nachbauen könnte bisher. Welches Strukturelement hast du da benutzt?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2012, 10:54
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Timer in Sequenz unterbrechen
Was ist in den beiden anderen Sequenzschritten?
Irgendwas mit TCP/IP-Open - mit Time-out 60s vielleicht?
Schon mal Fehlersuche im Highlight-Modus betrieben?

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2012, 11:08
Beitrag #6

Labor Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: May 2012

2010
2011
DE



RE: Timer in Sequenz unterbrechen
Die Sequenz davor erzeugt mir einen Zeitstempel, aus dem ich den Sende-String generiere, der an das Gerät im Ethernet geschickt werden soll.

Die Sequenz danach öffnet eine TCP-Verbindung, schickt den String, empfängt die Antwort und schließt die TCP-Verbindung.

Ich will immer nur den letzten Messwert haben, darum warte ich zwischen Erzeugung des Zeitstempels bis zum Abschicken 1 Minute - um sicher zu gehen, dass für diesen Stempel auch wirklich ein Messwert vorhanden ist. Die Messwerte werde ich dann weiterverarbeiten, aber soweit bin ich noch nicht.

Jedenfalls haben die anderen Sequenzen nichts mit 60s zu tun.

Fehlersuche mit Highlight ergab folgendes:
Der Abschnitt mit dem Timer wird anstatt nach 60s, nach den nächsten 10ms unterbrochen und am Abbruch-Terminal in der while-Schleife liegt ein True an, dann läuft der Rahmen danach. Dann beginnt alles von vorn Rahmen 0, Rahmen 1 mit Timer 10ms, Rahmen 2. Dann ist die Sequenz beendet und in der while-Schleife wird das True am Abbruch-Terminal wirksam.

Ich muss also irgendwie einbauen, dass die Sequenz verlassen wird und nicht einfach der nächste Rahmen beginnen. DAs ist komplizierter als ich dachte. Warum beginnt die Sequenz eigentlich nochmal? Liegt es daran, dass die while-Schleife ihre Parameter am Ende prüft und das False irgendwie zu spät übernommen wurde?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.12.2012, 11:42
Beitrag #7

Morpheus Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 205
Registriert seit: Jul 2009

2019 SP1, 2020 SP1
2005
EN

8000
Schweiz
RE: Timer in Sequenz unterbrechen
(21.12.2012 11:08 )Labor schrieb:  Warum beginnt die Sequenz eigentlich nochmal? Liegt es daran, dass die while-Schleife ihre Parameter am Ende prüft und das False irgendwie zu spät übernommen wurde?

LabVIEW funktioniert nach dem Datenfluss-Prinzip.
Die Information des Stop-Buttons ist bei der Ausführung für die While-Schleife bereits vorhanden (false) und wird so "gespeichert".
Den Wert des Stop-Buttons änderst Du zwar innerhalb der Sequenz, dies hat dann aber keinen Einfluss mehr auf die akutelle Ausführung der While-Schleife, sondern erst auf die nächste Ausführung.
Deshalb der von dir beschriebene Effekt.

Abhlife: Führ die Abbruchbedingung der For-Schleife (aus der Sequenz) auf den "Stop if True" der While-Schleife

Ich persönlich würde die Sequenz ersetzen und eine State-Machine programmieren.

Gruss
Chris
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2012, 11:46
Beitrag #8

Labor Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: May 2012

2010
2011
DE



RE: Timer in Sequenz unterbrechen
(21.12.2012 11:42 )Morpheus schrieb:  Abhlife: Führ die Abbruchbedingung der For-Schleife (aus der Sequenz) auf den "Stop if True" der While-Schleife

Das habe ich schon gemacht. Es führt zum beschriebenen Verhalten.

Wie eine State-Machine das besser macht seh ich gerade nicht, aber ich werd's mir angucken. Danke schonmal.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2012, 11:50
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Timer in Sequenz unterbrechen
Naja, bei einer State-Machine kannst du bei "Abbruch" gleich zum "Ende"-State springen. In der Sequenz wird alles so wie es ist abgearbeitet.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2012, 13:31 (Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2012 13:32 von Lucki.)
Beitrag #10

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: Timer in Sequenz unterbrechen
(21.12.2012 10:50 )Labor schrieb:  Lucki, dein zweiter Vorschlag bricht das Programm ab, wenn die Zeit rum ist. Ich meinte eher, dass nach Ablauf der Zeit, der nächste Rahmen der Sequenz beginnt.
Dann bist Du offenbar ein Buchstaben-Gläubiger, der davon ausgeht, dass, wenn auf einem Knopf "Stop" draufsteht, das ganze Programm abgebrochen wird. Entschuldige, dass ich nicht daran gedacht hatte, das Dich diese Beschriftung völlig durcheinander bringen könnte. Big Grin. Als persönliche Buße habe ich die beiden Knöpfe umbenannt und die Beispiele in eine Sequenz hineingesetzt, so, wie Du es anwenden willst.


Angehängte Datei(en)
10.0 .vi  Sequenz.vi (Größe: 23,87 KB / Downloads: 292)
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
  2 Parallele While-Schleifen mit unterschiedlichen Timer beenden Tomate27 3 2.906 18.08.2020 13:29
Letzter Beitrag: GerdW
  Einen laufenden Task unterbrechen alex-one 1 2.867 24.04.2020 07:35
Letzter Beitrag: kpa
  Timer macht was er will :-) Natalie1984 6 4.003 04.07.2019 12:49
Letzter Beitrag: IchSelbst
  Sequenz wird zweimal durchlaufen mprocket 7 5.622 21.01.2018 18:59
Letzter Beitrag: mprocket
  While-Schleife anhalten ohne Timer valerian 2 4.136 04.10.2017 09:28
Letzter Beitrag: valerian
  Sequenz zur Dokumentation, Einfluss auf das Timing TSC 7 5.145 19.10.2016 07:08
Letzter Beitrag: TSC

Gehe zu: