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 

Phasenverschiebung mehrerer Schleifen



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!

10.04.2014, 12:56
Beitrag #1

Erik01 Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Nov 2010

2013
2009
DE

53xxx
Deutschland
Phasenverschiebung mehrerer Schleifen
Hallo zusammen,

vielleicht hat einer ein Vorschlag zu dieser Problemstellung:

Wie kann man 2 oder noch mehr parallel ablaufende Schleifen genau (millisek. genau) phasenverschieben und auch wieder synchron laufen lassen?
(siehe beigefügtes Labview 2009 VI)
Für DAQ gibt es schöne Möglichkeiten dazu, jedoch wie sieht es hiermit aus?
Dazu sei gesagt, daß der Wert-Input der Phasenverschiebung nicht nur über Buttons sondern auch über aus einem array eingelesene Werte stattfindet.
Man braucht zu einem bestimmten Zeitpunkt einen gemeinsamen Anfangspunkt. Also habe ich es mit einer Flankenabfrage versucht, doch die Wartenfunktion
macht daraus wieder einen statischen Zustand.

Mit freundlichen Grüßen
Erik


Angehängte Datei(en)
9.0 .vi  Blink001.vi (Größe: 10,27 KB / Downloads: 211)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.04.2014, 13:12
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Phasenverschiebung mehrerer Schleifen
Hallo Erik,

man kann TimedWhileLoops sowohl synchronisieren als auch phasenverschieben…

Wobei zu deinem VI anzumerken ist:
- heavy local variable abuse…
- Nichtbeachtung der CoercionDots und deren Konsequenzen
- Nichtbeachtung der Windows-Einflüsse bzgl. Schleifentiming

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.04.2014, 16:48
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Phasenverschiebung mehrerer Schleifen
So "richtig exakt" wird das sowieso nur unter Real-Time funktionieren, unter Windows ist das nur "mehr oder weniger" genau.

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
10.04.2014, 19:19 (Dieser Beitrag wurde zuletzt bearbeitet: 11.04.2014 07:27 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: Phasenverschiebung mehrerer Schleifen
Z.B so:
   

Zitat:So "richtig exakt" wird das sowieso nur unter Real-Time funktionieren, unter Windows ist das nur "mehr oder weniger" genau.
Der Einwand ist nicht falsch, nur trifft er hier nicht. Denn: Entweder will man, so wie hier, nur LEDs auf dem VI blinken lassen - dann spielt die exakte Zeit (im ms-Bereich) keine Rolle. Oder aber man will reale LEDs (oder etwas anderes Binäres) schalten. Dann braucht man eine Messkarte, und in der Regel hat man dann auf eben dieser Karte ein Echtzeitsystem. Man sollte dann natürlich die Timer auf der Karte verwenden (- mit DAQmx ist das so gut wie automatisch der Fall -), und das VI sieht dann ganz anders aus. Die Frage bezog sich aber ausdrücklich auf "virtuelle" LEDs.


Angehängte Datei(en)
11.0 .vi  Blink001WA.vi (Größe: 13,35 KB / Downloads: 197)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.04.2014, 11:46
Beitrag #5

Erik01 Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Nov 2010

2013
2009
DE

53xxx
Deutschland
RE: Phasenverschiebung mehrerer Schleifen
Danke für die Vorschläge und berechtigten Tadel.

@GerdW: ich arbeite mich gerade in die TimedWhileLoops ein, dessen Möglichkeiten mir zuvor nicht bekannt waren. Ich habe zuvor halt meist nur mit den "gewöhnlichen" Schleifen gearbeitet.
Hier sieht man mal wieder ein Vorteil von Labview.

@Lucki: das VI ist hervorragend. Jedoch wie sieht es mit aus einem array eingelesene Werte aus (wie in der Anfangsfrage beschrieben)? Hat man die Möglichkeit nicht nur über Buttons
und Eingabefelder auf dem Frontpanel den Ablauf zu ändern? (Deshalb habe ich die Ereignisstruktur nicht genommen)

Danke nochmals.

Mit freundlichen Grüßen
Erik
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.04.2014, 08:30
Beitrag #6

Erik01 Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Nov 2010

2013
2009
DE

53xxx
Deutschland
RE: Phasenverschiebung mehrerer Schleifen
@Lucki:
die VI hat doch noch einen Fehler ... und zwar ab und zu beim beenden. Hier zeigt sich, daß Theorie und Praxis nicht immer übereinstimmen Smile
Denn ab und zu wird die linke untere Schleife zuerst gestoppt ... dann wartet die rechte untere Schleife zuerst auf occurrence bevor sie stoppt, doch
da kommt nix mehr. Ich habe es halt so gelöst (siehe Anhang (in Labview 2009)).

Zu meiner Frage mit Werteingabe über arrays bei Ereignissteuerung: Da bin ich auf dynamische Events gestoßen. Doch ist es dann nicht besser doch die
TimedWhileLoops zu nehmen? Gibt es irgendwo noch mehr Beispiele und Erläuterungen dafür, ausser in den Beispielen in Labview selbst?

Mit freundlichen Grüßen
Erik


Angehängte Datei(en)
9.0 .vi  Blink001WA_.vi (Größe: 14,05 KB / Downloads: 218)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.04.2014, 08:39
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Phasenverschiebung mehrerer Schleifen
Hallo Erik,

das WaitOnOccurance hat einen TimeOut-Eingang - damit kann man die Wartezeit dieser Funktion (auf sinnvolle Werte) begrenzen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.04.2014, 13:17 (Dieser Beitrag wurde zuletzt bearbeitet: 15.04.2014 13:24 von Lucki.)
Beitrag #8

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: Phasenverschiebung mehrerer Schleifen
Zu Deiner Frage wegen Werteingabe über Arrays:
Wenn die Verzögerungswerte in einem Array sein sollen, denn sollte es skalierbar sein. D.H ich mache den Array vor dem Start oder sogar während der Laufzeit unterschiedlich groß, so wie ich es gerade brauche.
Machbar ist alles, aber hier beginnt die professionelle Programmierung, da kann ich nicht so auf die Schnelle ein Beispiel bringen. Das könnte ja z.B. mal ein junger Spund machen, der hier unbedingt etwas beweisen will Big Grin

Mein Beispiel ist jetzt nur in dem Sinn skalierbar, dass man es mit minimalen Programmeingriffen auf eine bestimmte Arraygröße justieren kann.
(Es wäre sinnvoll, aus dem immer gleichen Code in der Casestruktur ein reentrantes SubVI zu machen)
   


Angehängte Datei(en)
11.0 .vi  Blink001WA.vi (Größe: 212,18 KB / Downloads: 205)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Synchronisation mehrerer Geräte BenW 1 3.372 03.04.2016 11:19
Letzter Beitrag: IchSelbst
  Kontinuierliche Temperaturerfassung mehrerer Kanäle mez15 5 4.574 29.09.2015 09:41
Letzter Beitrag: GerdW
  Parallele Ausführung mehrerer Sub-Vis Anna1988 21 13.847 20.07.2015 11:51
Letzter Beitrag: Anna1988
  Fensterpositionen mehrerer Instanzen speichern und laden NoWay 2 4.171 15.07.2014 14:11
Letzter Beitrag: NoWay
  Phasenverschiebung durch event Graf_Zahl 24 12.961 11.03.2013 15:28
Letzter Beitrag: jg
  Signalanzeige und Phasenverschiebung kaischneider 4 6.664 25.01.2012 17:36
Letzter Beitrag: TobiasSch

Gehe zu: