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 

Sub-VIs - Whileschlaufe - Anschlüsse



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!

24.10.2009, 15:24 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2009 18:19 von jg.)
Beitrag #1

Andreasser Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Oct 2009

8.5
-
de

2500
Schweiz
Sub-VIs - Whileschlaufe - Anschlüsse
Hallo Zusammen

Habe ein kleines Problem mit Whileschlaufen

Zwecks programmierung einer Motorinduzierung habe ich ein SUB-VI erstellt, welches mir die erwarteten Signale des Motors liefert. Da die Signale kontinuierlich sind habe ich die Signalgeneratoren in eine Whileschlaufe gepackt. Als ich nun im Main-VI die Werte des "Motors" auslesen wollte kam nichts raus. Nach einigem pröbeln fand ich heraus, dass es etwas mit der Whileschlaufe zu tun haben muss:

Ich habe ein einfaches Beispiel einer Mutiplikation in ein SUB-VI gepackt und wollte dieses in ein anderes VI einbinden, dies funktioniert solange man im SubVi keine Whileschlaufe hat, macht man aber eine ist der Effekt derselbe wie der obengenannte, es werden keine Daten von den Anschlüssen empfangen.

Kann mir Jemand weiterhelfen? Ich wäre sehr froh darüber...

Gruss Andreasser

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.10.2009, 15:40
Beitrag #2

Peter04 Offline
LVF-Stammgast
***


Beiträge: 305
Registriert seit: Jan 2008

2020
2007
DE_EN

79xxx
Deutschland
Sub-VIs - Whileschlaufe - Anschlüsse
Hallo,

Du hast Dir die Antwort doch schon selbst gegeben.
Lass die Schleife im subvi weg und pack das Haupt-vi in die while-Schleife.
Dann läuft es so, wie von Dir geplant.

Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2009, 18:21
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Sub-VIs - Whileschlaufe - Anschlüsse
Offtopic2
@Andreasser:
Bitte LVF-Regeln lesen und beachten, in deinem Fall Punkt 4. Screenshots oder VIs bitte hier im Forum hochladen, nicht über externe Links.

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
25.10.2009, 11:49
Beitrag #4

Andreasser Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Oct 2009

8.5
-
de

2500
Schweiz
Sub-VIs - Whileschlaufe - Anschlüsse
Danke für deine Antwort Peter
Im falle des einfachen Beispieles funktioniert dies schon, ist aber nicht ganz in meinem Sinne, ich möchte in meinem MainVI einen Block haben der Motor heisst und einen Eingang für die gewünschte Drehzahl und drei Ausgänge für die gewünschten Signale hat und kontinuierlich diese Signale abgibt, genau so wie es der reale Motor später auch tun wird.

Das erste Problem stellt sich schon wenn ich die Whileschlaufe im SUBVI weglasse, dann läuft dieses nurnoch ca 0.1s und dann beginnt das Blockdiagramm schwarzweiss zu blinken, könnte etwas mit den eingebauten Datenverlaufsdiagrammen zu tun haben, denn wenn ich nur diese in eine Whileschlaufe packe, blinkt es nicht mehr, allerdings ist dann das Signal auch nur bis ca 0.1s und somit nicht kontinuierlich.
Was die Ausgänge anbelangt habe ich einmal probeweise nur das Signal der Drehzahl wieder hinauszuziehen, doch auch das geht nicht, ich hänge mal das Bild des SUBVI an, vielleicht hilft dies mein Problem zu verstehen.



@jens
Tschuldigung, wird natürlich in Zukunft so gehandhabt


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

Peter04 Offline
LVF-Stammgast
***


Beiträge: 305
Registriert seit: Jan 2008

2020
2007
DE_EN

79xxx
Deutschland
Sub-VIs - Whileschlaufe - Anschlüsse
Hallo,

also ganz kann ich dein Problem nicht nachvollziehen.
Bei meinem kleinen gebauten Nachbau läuft es so, wie geplant.
Soweit möglich vermeide ich while-Schliefen im sub. Ansonsten musst Du Dich mit Meldern, Queues... beschäftigen.

Peter

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2009, 12:53 (Dieser Beitrag wurde zuletzt bearbeitet: 25.10.2009 13:03 von IchSelbst.)
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.700
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Sub-VIs - Whileschlaufe - Anschlüsse
' schrieb:Im falle des einfachen Beispieles funktioniert dies schon, ist aber nicht ganz in meinem Sinne, ich möchte in meinem MainVI einen Block haben der Motor heisst und einen Eingang für die gewünschte Drehzahl und drei Ausgänge für die gewünschten Signale hat und kontinuierlich diese Signale abgibt, genau so wie es der reale Motor später auch tun wird.
"Kontinuierlich" im Sinne eines analogen Signales, bei dem idealerweise dT=0 ist, gibt es in Software nicht. In Software bist du immer an ein Raster, sei es noch so klein, gebunden. Willst du ein SubVI machen, das einen Motor simuliert, dann würde ich folgendes Vorgehen vorschlagen.

Mach ein SubSI, das unabhängig vom (Rest des) MainVI läuft. Im MainVI brauchst du zwangsläufig eine While-Schleife, weil hier ja ständig das selbe gemacht werden soll: nämlich kucken, was der Motor gerade macht. Das Motor-SubVI platzierst du außerhalb der While-Schleife, also parallel zu dieser. Im Motor-SubVI läuft auch eine While-Schleife, die nichts weiter macht, als die drei Werte in Abhängigkeit der Drehzahl zu berechnen. Und jetzt kommts: Diese drei Werte schreibst du in einen Cluster, den du in eine QUEUE schreibst (es würde auch ein MELDER gehen). Im MainVI, respektive innerhalb der While-Schleife liest du die Queue aus. Die Motor-SubVI-Whileschleife kannst du mit einer beliebigen Geschwindigkeit laufen lassen: von 1 bis 100ms, ist total unabhängig vom MainVI. Eben wie der reale Motor auch. Ich empfehle vorerst ein Raster von 1ms.
Die While-Schleife im MainVI liest nun die Queue aus und gibt die Daten z.B. an einen Graph weiter. Hier siehst du gleich: Dieser While-Schleife ist es egal, ob die Daten, weil sie in einer Queue stehen, vom Motor-Simulator kommen oder vom richtigen Motor (der später das Simulator-SubVI ersetzen wird). Die While-Schleife im MainVI kannst du mit einer beliebigen Geschwindigkeit laufen lassen. Hier empfehle ich ca. 250ms, weil ein schnellerer Refresh des Graphen nicht sinnvoll ist. Folge: Pro 250ms werden 250 Werte aus der Queue gelesen!

Mit der Drehzahlvorgabe verfährst du im übrigen genauso: Drehzahl in eine Queue schreiben und diese Queue im Motor-SubVI auslesen.

Noch ein Hinweis:
LV arbeitet nach dem Prinzip des Datenflussen. Das bedeutet letztendlich, dass an den Ausgängen eines SubVIs erst dann Daten anliegen, wenn das SubVI beendet wird. Und das geschieht eben erst dann, wenn eine While-Schleife im SubVI beendet wurde. Um letzteres zu umgehen, verwendet man eben Queues/Melder. Genauso heißt das auch: Solange das SubVI läuft, steht der entsprechende Datenfluß im aufrufenden VI.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2009, 17:05
Beitrag #7

Andreasser Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Oct 2009

8.5
-
de

2500
Schweiz
Sub-VIs - Whileschlaufe - Anschlüsse
Danke für eure Antworten

@Peter: Danke, da bin ich dran... Vielleicht gelingt es mir dochnoch..

@IchSelbst: Besten Dank für deine ausführliche Anleitung, isch habe mich nun Stundenlang darin versucht, bringe es aber nicht hin, ich vermute ein Verständnisproblem beim initiieren von Clustern und Queues, kannst du dir mein Screenshot diesbezüglich betrachten? Ich wäre froh, wenn du mir einen Tipp geben könntest.

Besten Dank

Gruss Andreasser


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2009, 20:39
Beitrag #8

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.700
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Sub-VIs - Whileschlaufe - Anschlüsse
' schrieb:kannst du dir mein Screenshot diesbezüglich betrachten?
Naja, aus diesem ScreenShot kann ich jetzt nicht so viel lesen. Ein SubVI wäre da besser zur Erklärung geeignet.

Eigentlich hab ich ja eher gedacht, du meinst so was: Siehe Muster.


Lv85_img1


Angehängte Datei(en)
Sonstige .vi  MusterMotor.vi (Größe: 31,1 KB / Downloads: 198)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2009, 22:24
Beitrag #9

Andreasser Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Oct 2009

8.5
-
de

2500
Schweiz
Sub-VIs - Whileschlaufe - Anschlüsse
Besten Dank für das kleine Beispiel, ich muss zugeben, dass ich noch etwas Mühe habe es nachzuvollziehen, aber werde mir Morgen in der Bibliothek noch das eine oder andere Buch holen (hab gemerkt dass mein Einsteigerbuch sogut wie keine Infos liefert) und mich intensiv damit auseinandersetzen, ich melde mich auf jeden Fall wieder.

Ich reiche noch das SUB-VI nach:


Angehängte Datei(en)
Sonstige .vi  SUBVI_von_Motorblock.vi (Größe: 145,65 KB / Downloads: 192)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.10.2009, 20:59
Beitrag #10

Andreasser Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Oct 2009

8.5
-
de

2500
Schweiz
Sub-VIs - Whileschlaufe - Anschlüsse
Ich bin nun durch mit der Thematik und habe so einiges über Cluster und Queues aus deinem Beispiel gelernt IchSelbst, Besten Dank für die nette und kompetente Unterstützung!

Gruss Andreasser
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
  SubVI Anschlüsse ändern mikadm 2 5.261 06.08.2020 05:50
Letzter Beitrag: MScz
  SubVI ohne Anschlüsse iMax 7 8.786 19.12.2012 14:59
Letzter Beitrag: PaulF
  SubVI-Anschlüsse ändern frankyp 2 11.491 05.07.2011 08:18
Letzter Beitrag: frankyp
  Anschlüsse überprüfen loki77 23 17.878 20.11.2009 20:37
Letzter Beitrag: schrotti
  Anschlüsse an einem VI erzeugen hotwheelz 6 6.895 16.06.2009 15:41
Letzter Beitrag: hotwheelz
  SubVI -Anschlüsse bocken Donald 7 5.688 13.10.2008 13:28
Letzter Beitrag: Donald

Gehe zu: