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 

Zyklisch Zeit ermitteln



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!

14.12.2011, 10:52 (Dieser Beitrag wurde zuletzt bearbeitet: 14.12.2011 10:55 von LV-Starter123.)
Beitrag #1

LV-Starter123 Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Sep 2011

2010
2011
DE


Deutschland
Zyklisch Zeit ermitteln
Hallo zusammen,

ich habe hier ein Programm, welches die aktuelle Zeit ermittelt und die While-Schleife nach einer Zeitvorgabe abbricht. Danach warte ich einige Sekunden und gebe eine zweite Zeitvorgabe vor.
Nun brauche ich bei jedem For-Schleifendurchlauf die Zeit von 0 Sekunden bis zur Zeitvorgabe. Wird der nächste For-Schleifendurchlauf gestartet, so soll die Zeitmessung wiederum bei 0 Sekunden bis zur zweiten Zeitvorgabe laufen. Die Anzeige sollte also wie folgt zählen:

Zeitvorgabenarray: 1. 3 Sek.
2. 8 Sek.
3. 5 Sek.

Nun soll die Anzeige der verstrichenen Zeit von 0 Sek. bis 3 Sek. laufen, dann 4 Sekunden warten, dann wiederum von 0 Sek. bis 8 Sek. zählen und dann wieder 4 Sekunden warten und zuletzt von 0 Sek. bis 5 Sek. laufen.
Entweder habe ich momentan ein Brett vor dem Kopf oder es ist doch schwieriger als ich dachte.


11.0 .vi  Unbenannt 2.vi (Größe: 25,27 KB / Downloads: 175)


Bitte testet das Programm selbst, um mein Ziel zu verstehen. Warum ich die Funktion benötige kann ich so hier nicht einfach erklären. Es ist ziemlich komplex, daher bitte ich euch mir einige Vorschläge zu machen für diesen Wunsch den ich habe.

Vielen Dank

Gruß LV-Starter

sorry für die neue Version von LabVIEW, hier in Version 8.0


8.0 .vi  Unbenannt 2.vi (Größe: 35,64 KB / Downloads: 153)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.12.2011, 12:47
Beitrag #2

GerdW Online
______________
LVF-Team

Beiträge: 17.430
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zyklisch Zeit ermitteln
Hallo LV-Starter,

manchmal ist das Leben so einfach, wenn man die Kontexthilfe liest:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.12.2011, 13:28
Beitrag #3

LV-Starter123 Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Sep 2011

2010
2011
DE


Deutschland
RE: Zyklisch Zeit ermitteln
Hi GerdW,

vielen Dank "mal wieder" ;-). Ich hatte die Kontexthilfe bestimmt schon zu oft durchgelesen und habe das mit dem Zurücksetzen in vielen verschiedenen Varianten ausprobiert jedoch nicht mit der Abfrage =0, das war es.

Nocheinmal Danke schön und einen schönen Mittag.

Grüße

LV-Starter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.12.2011, 13:56 (Dieser Beitrag wurde zuletzt bearbeitet: 14.12.2011 14:00 von Lucki.)
Beitrag #4

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: Zyklisch Zeit ermitteln
Ihr Deppen ihr Idea, ist euch denn gar nicht aufgefallen, daß der Vergleich der verstrichenen Zeit mit der Zielzeit im VI "Verstrichene Zeit" enthalten ist und nicht extern gemacht werden muß?
   

8.0 .vi  Zeit.vi (Größe: 35,45 KB / Downloads: 172)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.12.2011, 15:24
Beitrag #5

GerdW Online
______________
LVF-Team

Beiträge: 17.430
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zyklisch Zeit ermitteln
Hallo Lucki,

huch, mal wieder was gelernt. Das kommt davon, wenn man sonst nicht mit ExpressVIs arbeitet und sich auf's eigentliche Problem "Reset" konzentriert. Für mein Snippet habe ich extra noch alle vorher gezeigten Anschlüsse ausgeblendet...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.12.2011, 16:18
Beitrag #6

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: Zyklisch Zeit ermitteln
(14.12.2011 15:24 )GerdW schrieb:  huch, mal wieder was gelernt.
Dafür könntest Du mich belohnen, indem Du dich mit meiner soeben geposteten Frage "Boolsches Element deaktivieren" beschäftigst..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.12.2011, 12:58
Beitrag #7

LV-Starter123 Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Sep 2011

2010
2011
DE


Deutschland
RE: Zyklisch Zeit ermitteln
Hallo zusammen,

die Lösung für das oben beschriebene Problem wurde gelöst, jedoch habe ich ein etwas abgeändertes Ziel verfolgt womit die Lösung leider so nicht zurecht kommt.

Das folgende Programm basiert auf einer CAN Aufnahme in der erst eine Zeit beginnen soll abzulaufen wenn hier in der Funktion (stark vereinfacht) ein Arrayinhalt ungleich 0 ist. Das heißt für die Funktion im Speziellen:

Die äußerste For-Schleife gibt die Sekunden vor (12 Sek. und 10 Sek.). Die beiden inneren While-Schleifen regeln die Aufnahme (im realen System nicht hier in der Funktion) und die Zeitdauer der Aufnahme. Nun soll die Zeit stets 0 bleiben wenn der Botschaften CAN - Array Nullwerte beinhaltet. Dieses Array wird später ein Array sein und kein einzelner Wert daher ist die innere While-Schleife notwendig.

Ändert sich der Botschaft-inhalt z.b. auf eins so beginnt der Zähler (die Zeit) abzulaufen bis zur Vorgabe z.b. von 12 sek. Ist dieser erreicht kann eine beliebige Zeit ablaufen hier simuliert durch die 2 Sekunden bis die nächste Zeitvorgabe gemacht wird (10 Sek.). Nun soll wiederum gewartet werden bis der Botschaftsinhalt ungleich 0 ist und bei Wertänderung z.b. wieder auf 1 beginnt die Zeit diesmal von 0 und soll bis 10 sek. laufen, das tut sie leider nicht sie startet bei dem Zeitwert bis die nächste Wertänderung vorgenommen wurde, am Besten mal ausprobieren, ist schwer zu erklären.

Zusammengefasst (Ziel)
- > 12 Sekunden Gesamtzeitdauer -> bei Wertänderung des Arrays ungleich 0 (innerhalb von 12 sek. muss dieser wieder auf 0 gesetzt werden!!! -> Zeit läuft bis 12 Sek.
-> beliebige Zeit kann vergehen ...
-> 10 Sek. Gesamtzeitdauer -> bei Wertänderung des Arrays ungleich 0 (innerhalb von 10sek. muss dieser wieder auf 0 gesetzt werden!!! -> Zeit läuft bis 10 Sek.
-> Fertig

Hoffe ihr könnt mir weiterhelfen, denke es ist nicht mehr weit bis zur Lösung.

Vielen Dank.

Grüße


8.0 .vi  Unbenannt 1.vi (Größe: 49,75 KB / Downloads: 152)


LV-Starter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.12.2011, 13:06
Beitrag #8

rasta Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 245
Registriert seit: Oct 2006

LabVIEW 2009-2017
2006
EN

53909
Deutschland
RE: Zyklisch Zeit ermitteln
Hallo LV-Starter,
im Anhang ein Vorschlag.

Gruß
Ralf


Angehängte Datei(en) Thumbnail(s)
   

10.0 .vi  LV-Starter Time.vi (Größe: 34,68 KB / Downloads: 126)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.12.2011, 18:07
Beitrag #9

LV-Starter123 Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Sep 2011

2010
2011
DE


Deutschland
RE: Zyklisch Zeit ermitteln
Hallo rasta,

ich bin wirklich sehr froh, dass sich jemand damit beschäftigt hat aber entweder komm ich mit der Bedienung nicht so zurecht obwohl ich den Code nachvollziehen kann.

Dein Programm fängt an die Zeit ablaufen zulassen wenn alle drei Werte ungleich 0 sind. Ich jedoch bräuchte wenn sich ein Wert ändern dass ein sogenannter Implus stattfindet und wenn dieser Arrayinhalt innerhalb z.b. der 12 Sek. auf 0 wieder geht sich die Zeit nicht zurücksetzt sondern zu Ende bis 12 Sekunden läuft. Mit meiner Funktion habe ich dies bereits hinbekommen.

Außerdem war der Wunsch vorhanden dass zwischen den 12 Sekunden und den 10 Sekunden eine beliebige Zeit gewartet werden kann (z.b. mittels einem boolschen Button den nächsten Zeitwert vorgeben und dann wieder warten bis ein Arrayinhalt ungleich 0 ist und dann rast die Zeit wieder los bis 10 Sek. unabhängig ob alle Werte während dieser Zeit auf 0 gehen. Bei deiner Funktion läuft es jedoch komplett durch, erst 12 Sek. dann 10 Sek ohne Pause. Hab ich dein Code nicht richtig verstanden oder einfach nur falsch bedient?

Trotzdem vielen Dank für deine Mühe, vll kannst du mir trotzdem weiterhelfen?

Schönen Abend wünsche ich allen.

Gruß
LV-Starter
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
  Werte aus Casestruktur zyklisch in Liste mittels dynamischen Events einfügen Wendigo 4 4.311 29.10.2012 08:48
Letzter Beitrag: Wendigo
  Mit Event Cases zyklisch durchlaufen lassen Wendigo 19 10.299 25.10.2012 08:54
Letzter Beitrag: Wendigo
  Zeit zwischen Ereignissen ermitteln cheeze 15 10.454 11.09.2009 13:29
Letzter Beitrag: cheeze
  verstrichene Zeit ermitteln / Wert speichern Topper 0 3.726 26.06.2007 14:16
Letzter Beitrag: Topper

Gehe zu: