LabVIEWForum.de
Kommunikation/Datenaustausch MainVI und SubVI - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Kommunikation/Datenaustausch MainVI und SubVI (/Thread-Kommunikation-Datenaustausch-MainVI-und-SubVI)

Seiten: 1 2


Kommunikation/Datenaustausch MainVI und SubVI - THenry14 - 04.03.2018 21:33

Servus zusammen,

nach längerem grübeln komme ich einfach nicht weiter und wende mich mit meinem Problem an euch.

In dem Programm, welches ich zur Bearbeitung erhalten habe, geht es darum Prüfabläufe durchzuführen. Ungeachtet der Tatsache, dass es nicht soo gut programmiert wurde, habe ich meine Ergänzungen so vorgenommen das diese die Grundstruktur nicht verändern. Da ich das Programm nicht Abseits des Prüfstandes ausführen kann, habe ich mir eine vereinfachte Prüfumgebung rekonstruiert, welche alle relevanten Schritte durchführt und auch dieselben Fehler erzeugt, die ich auch während des Betriebs in der Prüfumgebung erhalten habe.

Zum eigentlichen Problem:
Ich habe einen Button und ein Cluster mit mehreren Bedienelementen im Hauptprogramm vorliegen, und diese nochmal in einem Tab als Kurzübersicht der wichtigsten Bedienelemente als SubVI in einem SubPanel eingebunden. Jetzt soll das SubVI alle 500ms die aktuellen Werte/Zustände des MainVI's abfragen und abholen. Bei Bedienung eines Bedienelements im SubPanel, soll diese Wertänderung auch im HauptVI übernommen werden. Dieses soll über einen Queue-Befehl erfolgen. Sollte ein Bedienelement im HauptVI betätigt werden (z.B. auch Stop), so soll ein Userereignis auf True gesetzt werden, welches im SubVI ausgelesen und ausgeführt wird. Hier erscheint mir immer ein Fehler für den falschen Input.
Ich habe so eine Kommunikation zwischen VIs eigentlich schon mal programmiert und denke auch 1:1 übernommen, jedoch sehe ich nicht warum ich diese Fehlermeldung erhalte.

Ich hoffe ich konnte mein Anliegen verständlich darstellen und hoffe auf eure Hilfe.

Beste Grüße
Alex


RE: Kommunikation/Datenaustausch MainVI und SubVI - IchSelbst - 04.03.2018 22:23

(04.03.2018 21:33 )THenry14 schrieb:  und auch dieselben Fehler erzeugt, die ich auch während des Betriebs in der Prüfumgebung erhalten habe.
Z.B. muss im SubVI UserEventReg der Eingang Enum des SubVIs FGV_UserEvents auf Init stehen, nicht auf Receive.

Stürzt bei jemand anderem außer mir die Entwicklungsumgebung auch ab, wenn man auf Stop klickt ?? HuhHuh


RE: Kommunikation/Datenaustausch MainVI und SubVI - THenry14 - 04.03.2018 23:02

(04.03.2018 22:23 )IchSelbst schrieb:  
(04.03.2018 21:33 )THenry14 schrieb:  und auch dieselben Fehler erzeugt, die ich auch während des Betriebs in der Prüfumgebung erhalten habe.
Z.B. muss im SubVI UserEventReg der Eingang Enum des SubVIs FGV_UserEvents auf Init stehen, nicht auf Receive.

Ja stimmt, damit hatte ich nur ein bisschen rumgespielt um zu gucken ob das einen Unterschied macht.

Stürzt bei jemand anderem außer mir die Entwicklungsumgebung auch ab, wenn man auf Stop klickt ?? HuhHuh

In irgendeinem SubVI hängt er sich wohl auf nehme ich an aber konnte dem leider auch noch nicht auf die Spur kommen :/


RE: Kommunikation/Datenaustausch MainVI und SubVI - GerdW - 05.03.2018 08:25

Hallo THenry,

Zitat:Sollte ein Bedienelement im HauptVI betätigt werden (z.B. auch Stop), so soll ein Userereignis auf True gesetzt werden, welches im SubVI ausgelesen und ausgeführt wird. Hier erscheint mir immer ein Fehler für den falschen Input.
1. Ich halte es für nicht wirklich sinnvoll, bei einer FGV den relevanten Code in einer Case-Struktur zu verstecken, die nur bei "kein Fehler" ausgeführt wird. Wie willst du hier an einen gültigen Wert kommen, wenn vorher vielleicht ein Fehler aufgetreten ist???
2. Controls/Indicators sollten (aus Performancegründen) in einem subVI immer außerhalb aller Strukturen liegen, wenn sie im ConnectorPane verknüpft sind: auch das ist bei deiner FGV nicht gegeben…

Zitat:In irgendeinem SubVI hängt er sich wohl auf nehme ich an aber konnte dem leider auch noch nicht auf die Spur kommen :/
Wie siehts aus, wenn du mal debuggst? Sonden? Bedingte Sonden? Haltepunkte?


RE: Kommunikation/Datenaustausch MainVI und SubVI - IchSelbst - 05.03.2018 09:16

(04.03.2018 23:02 )THenry14 schrieb:  In irgendeinem SubVI hängt er sich wohl auf nehme ich an aber konnte dem leider auch noch nicht auf die Spur kommen
Ich befürchte, dass hier die Sache etwas komplizierter ist.

Ich befürchte, das liegt an dem SubVI, das das SubPanel und den VI-Server handhabt. Ich halte diese Vorgehensweise nicht für gut: Parallel(!) das VI ins SubPanel laden und gleichzeitig das VI starten bzw. stoppen? Bedenke: parallel, also gleichzeitig (was es aber gar nicht gibt), bei abhängigen Methoden birgt hohes Risiko. Mindestens würde ich diese beiden Vorgänge sequenzieren.

Stutzig macht mich, dass du dieses Verfahren bereits benutzt hast und es offensichtlich funktioniert.


RE: Kommunikation/Datenaustausch MainVI und SubVI - THenry14 - 05.03.2018 20:36

Guten Abend zusammen,

vorab danke schon mal für eure Rückmeldungen. Ich kam heute leider noch nicht zum antworten.

Zitat:1. Ich halte es für nicht wirklich sinnvoll, bei einer FGV den relevanten Code in einer Case-Struktur zu verstecken, die nur bei "kein Fehler" ausgeführt wird. Wie willst du hier an einen gültigen Wert kommen, wenn vorher vielleicht ein Fehler aufgetreten ist???
2. Controls/Indicators sollten (aus Performancegründen) in einem subVI immer außerhalb aller Strukturen liegen, wenn sie im ConnectorPane verknüpft sind: auch das ist bei deiner FGV nicht gegeben…

zu 1. Werde den Ansatz mal so mitnehmen, klingt ja schlüssig. Bin bis jetzt so gut gefahren und kannte es nur nicht anders.
zu 2. Ok, alles klar. Inwiefern wird die Performance denn negativ beeinflusst?

Zitat:
Wie siehts aus, wenn du mal debuggst? Sonden? Bedingte Sonden? Haltepunkte?

Ich habe das Programm zum Beispiel mal mit der Highlightfunktion ausgeführt um wirklich jeden Schritt zu beobachten. Und wirklich, wenn ich den Stop-Button betätige, gibt es bis zum "Ereignis erzeugen" in meiner Verbraucherschleife keinen Fehler. Nachdem dort jedoch der Inputwert True gesetzt wird, erscheint danach ein Fehler. Einer der Fragen die sich mir auftun..

Zitat:Ich befürchte, das liegt an dem SubVI, das das SubPanel und den VI-Server handhabt. Ich halte diese Vorgehensweise nicht für gut: Parallel(!) das VI ins SubPanel laden und gleichzeitig das VI starten bzw. stoppen? Bedenke: parallel, also gleichzeitig (was es aber gar nicht gibt), bei abhängigen Methoden birgt hohes Risiko. Mindestens würde ich diese beiden Vorgänge sequenzieren.

Stutzig macht mich, dass du dieses Verfahren bereits benutzt hast und es offensichtlich funktioniert.

Ich habe nochmal nachgeschaut und tatsächlich hatte ich das doch bisher sequentiell gelöst..allerdings hat das mein Problem nicht behoben :/


RE: Kommunikation/Datenaustausch MainVI und SubVI - IchSelbst - 05.03.2018 21:51

(05.03.2018 20:36 )THenry14 schrieb:  Nachdem dort jedoch der Inputwert True gesetzt wird, erscheint danach ein Fehler. Einer der Fragen die sich mir auftun..
Hast du mal kontrolliert, was ich in Beitrag 2 geschrieben habe?


RE: Kommunikation/Datenaustausch MainVI und SubVI - GerdW - 05.03.2018 22:42

Hallo THenry,

zu Punkt 2: der Compiler"bevorzugt" Controls außerhalb von Strukturen. Außerdem kann es zu unerwarteten Rückgabewerten kommen, wenn du deine aktuelle FGV mit einem Fehler als Input aufrufst...


RE: Kommunikation/Datenaustausch MainVI und SubVI - THenry14 - 06.03.2018 05:33

(05.03.2018 21:51 )IchSelbst schrieb:  
(05.03.2018 20:36 )THenry14 schrieb:  Nachdem dort jedoch der Inputwert True gesetzt wird, erscheint danach ein Fehler. Einer der Fragen die sich mir auftun..
Hast du mal kontrolliert, was ich in Beitrag 2 geschrieben habe?

Entschuldige hatte den Punkt leider komplett vergessen..und vielen Dank das war es. Habe es gerade auf die schnelle getestet und erhalte jetzt keinen Fehler mehr beim "Ereignis erzeugen". Werde mich heute Abend dann ans umfängliche Testen mache und hoffe, dass sich damit die Kette an Problemen löst. Werde mich dann melden!

Zitat:



RE: Kommunikation/Datenaustausch MainVI und SubVI - THenry14 - 06.03.2018 21:48

Habe mich jetzt nochmal am Testen versucht.
Die vorige Lösung hat mein Problem innerhalb des Hauptprogramms behoben. Habe noch gesehen, dass meine MSG Queue FGV noch falsche Zuweisungen, was Send und Receive angeht, hatte.
Also das MainVI läuft an sich stabil und auch das SubVI. Nur die Kommunikation zwischen den Beiden will leider immer noch nicht so recht funktionieren..UndecidedUndecided