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 

Datenaustausch Main-Sub Sub-Main



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!

15.06.2010, 09:56
Beitrag #1

skywalker Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 154
Registriert seit: Jan 2007

2020
2007
DE

99310
Deutschland
Datenaustausch Main-Sub Sub-Main
Hallo,

ich habe in meinem Main ein Rundinstrument mit zwei Zeigern als Anzeigelement.
Zeiger 1 zeigt die Istgeschwindigkeit und Zeiger 2 die Maximalgeschwindigkeit.
Die Maximalgeschwindigkeit wird in einem Sub ermittelt, d.h. mit Hilfe einer Rampenfunktion wird eine bestimmte Geschwindigkeitskurve abgefahren. Über Referenz wird diese im Main angezeigt.

Jetzt mein Problem. Wenn die Geschwindigkeitskurve der Maximalgeschwindigkeit im Sub abgearbeitet wird, befindet sich dieses Sub in einer while-Schleife. Nun soll es möglich sein, dass im Main mit einem Button die Istgeschwindigkeit gleichzeitig verändert werden kann und das Rundinstrument beide verändernden Zeiger anzeigt.

Welche Möglichkeit steht mir hierbei zur Verfügung?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.06.2010, 10:19
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Datenaustausch Main-Sub Sub-Main
Hi Skywalker,

am "einfachsten": parallel laufende Schleifen verwenden (für Istwert-Kontrolle als auch für subVI-Aufruf)...

Ich verwende gern auch noch mehr (mehr als zwei) parallele Schleifen und FGVs als Datenpuffer...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2010, 14:38
Beitrag #3

skywalker Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 154
Registriert seit: Jan 2007

2020
2007
DE

99310
Deutschland
Datenaustausch Main-Sub Sub-Main
mhhh.

ich habe schon drei parallel laufende while schleifen.

Mein Ziel soll sein mit jeweils einem Button die Istgeschwindigkeit zu erhöhen und einem anderen zu verringern. Dies läuft im Main ab. Funktioniert auch.
Tritt allerdings ein bestimmtes Ereignis auf, so wird die Maximalgeschwindigkeitskurve "abgefahren", d.h. diese wird abhängig von Weg und Zeit heruntergesetzt. Dies geschieht im Sub. (Funktioniert auch)

Nun soll während des Herabsetzens weiterhin möglich sein, die Istgeschwindigkeit zu verändern. Das klappt nicht, da ich mich in der while-Schleife des Subs befinde.

Habe bereits die Referenz des Buttons übergeben und in der while-Schleife des Subs die Geschwindigkeit verändert. Das funktioniert nur bedingt, da die Geschwindigkeit so lange verändert wird, wie die referenz ein True liefert. Die geschieht aber öfter als ein Schleifendurchlauf, da das Zurücksetzens auf false länger dauert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2010, 18:52
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Datenaustausch Main-Sub Sub-Main
Hallo junger Jedi,

"a die Geschwindigkeit so lange verändert wird, wie die referenz ein True liefert. Die geschieht aber öfter als ein Schleifendurchlauf, da das Zurücksetzens auf false länger dauert." ???

Da wird es wohl mal Zeit, VIs zu veröffentlichen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.06.2010, 07:56
Beitrag #5

skywalker Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 154
Registriert seit: Jan 2007

2020
2007
DE

99310
Deutschland
Datenaustausch Main-Sub Sub-Main
Hallo,

hab mal ein vereinfachtes Bsp. hochgeladen. Vllt. wird es dann verständlicher.
Zur Zeit arbeite ich mit Referenzen und frage im Sub die Wertänderung der Buttons von false nach true ab. Nur dann wird die Geschwindigkeit erhöht bzw. verringert.

Gruß
Stefan

Lv09_img2

Sonstige .vi  Main.vi (Größe: 26,04 KB / Downloads: 227)


Sonstige .vi  Sub.vi (Größe: 55,21 KB / Downloads: 238)


Sonstige .ctl  NotificationsMain.ctl (Größe: 4,22 KB / Downloads: 237)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.06.2010, 13:19
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Datenaustausch Main-Sub Sub-Main
Hallo Stefan,

dein Problem ist, dass du nur 2 parallele Schleife hast. Du hast zwar noch eine Schleife im subVI - aber die läuft nicht parallel, sondern innerhalb der zweiten und blockiert diese dadurch...

Also musst du für wirklich parallel arbeitende Strukturen sorgen. Oder deine Logik überdenken, für mich sieht es eindeutig zu kompliziert aus. Und fehlerträchtig, wenn wirklich auf's gleiche Control von zwei verschiedenen VIs aus zugegriffen werden soll (Race-Condition!)...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datenaustausch über Cluster in zwei While-Schleifen creo_123 5 4.521 04.03.2022 09:36
Letzter Beitrag: Kiesch
  Eventstruktur im SubVI - Datenaustausch TpunktN 5 3.543 01.07.2021 07:15
Letzter Beitrag: Zelos
  Kommunikation/Datenaustausch MainVI und SubVI THenry14 13 9.196 09.03.2018 08:46
Letzter Beitrag: GerdW
  Radiobutton steuern von main.vi aus in While-Schleife tatanka 1 3.199 18.11.2016 08:59
Letzter Beitrag: GerdW
  Oberfläche von SubVI in Main Programm einbinden sara2211 13 9.690 17.11.2016 08:41
Letzter Beitrag: sara2211
  Main Frontpanel ausblenden Pythagoras 9 9.573 21.03.2016 19:17
Letzter Beitrag: jg

Gehe zu: