LabVIEWForum.de
wie arbeiten die Subvi - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: wie arbeiten die Subvi (/Thread-wie-arbeiten-die-Subvi)



wie arbeiten die Subvi - lola2014 - 24.06.2015 08:48

Moin zusammen,
ich habe eine versändige Frage, und zwar ich bekomme von 2 Sensoren Messwerte über TCP/IP. Wenn ich jetzt nur ein Subvi erstelle mit einem Eingang(IP Adresse) und Ausgang Messwerte. und in einer While Schleife füge 2Mal den Subvi mit 2 verschiede IP Adressen, wird es funktionieren oder soll mal lieber 2 Subvi für jede Sensor erstellen.
lg lola


RE: wie arbeiten die Subvi - GerdW - 24.06.2015 08:53

Hallo lola,

Zitat:wird es funktionieren
Wenn du es richtig machst, wird es auch funktionieren… Big Grin

- Da VIs per Default nicht reentrant sind, kannst du das subVI zweimal in dein MainVI packen. Die beiden Aufrufe werden nicht gleichzeitig stattfinden.
- Wenn du hier mit der IP-Adresse arbeitest, wirst du im subVI wohl ständig die TCP-Verbindung neu aufbauen und wieder beenden. Das ist hochgradig ineffizient! Ich würde hier eher mit parallel laufenden Schleifen arbeiten und die TCP-Verbindung für jeden Sensor nur einmal vor der Schleife initialisieren…


RE: wie arbeiten die Subvi - Kiesch - 24.06.2015 11:45

Ja: □
Nein: □
Vielleicht: x


Gerd hat ja schon bisschen was zu gesagt. Wichtig ist außerdem:

Du solltest dir darüber im klaren sein, ob das SubVI auf eine gemeinsam genutzte Resource zugreifen soll (entsprechend ist das nicht-reentrante Verhalten das Standard ist geeignet, da es Zugriffskonflikte verhindert indem beide Aufrufe nacheinander erfolgen müssen).
Ist das nicht der Fall, dann kannst du das VI in den Optionen bei Ausführung auch auf reentrant ändern, dann wird jeweils eine eigene Instanz des VIs für jede deiner Anfragen ausgeführt und entsprechend blockieren die sich nicht gegenseitig (aka müssen nicht darauf warten, dass der jeweils andere Sensor das VI wieder freigibt).