LabVIEWForum.de
Speicher in SubVi - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Speicher in SubVi (/Thread-Speicher-in-SubVi)



Speicher in SubVi - haunet - 27.07.2011 09:13

Hallo,
ich habe ein SubVi geschrieben, welches ein fifo implementiert (siehe Anhang). Nun mein Problem: wenn ich dieses SubVi in einem anderen Vi mehrmals einfüge wird für alle fifos immer derselbe Speicher (Array) verwendet. D.h. wenn ich drei Instanzen von dem SubVi fifo verwende ändern alle drei SubVi's das selbe fifo-Array.
Was ist das nun wieder für eine Eigenart von LabView? Ich dachte SubVi's sind in sich gekapselt..?

Wie könnte ich das Problem umgehen / lösen?

Viele Grüße


RE: Speicher in SubVi - GerdW - 27.07.2011 09:39

Hallo haunet,

das passende Stichwort wäre "reentrant" (bzw. "ablaufinvariant") und ist in den VI-Optionen unter "Execution"/"Ausführung" zu finden...

Ansonsten solltest du dich mal mit dem grundlegenden Aufbau von FGVs beschäftigen - die kommen auch ohne lokale Variable (Speicherbedarf!) und Sequenzen (unnötig!) aus:
[attachment=34892]


RE: Speicher in SubVi - haunet - 27.07.2011 13:58

Danke Gerd für die schnelle Antwort,
auf den ersten Blick macht dann "non-reentrant" wenig Sinn. Den einzigen Vorteil den ich im Moment dabei sehe ist dass ich mich um die Synchronisation einzelner Funktionen/Ressourcen nicht kümmern muss...

MfG


RE: Speicher in SubVi - macmarvin - 27.07.2011 17:12

(27.07.2011 13:58 )haunet schrieb:  auf den ersten Blick macht dann "non-reentrant" wenig Sinn. Den einzigen Vorteil den ich im Moment dabei sehe ist dass ich mich um die Synchronisation einzelner Funktionen/Ressourcen nicht kümmern muss...

... und das man sich die Eigenschaft des geteilten Zugriffs auf einen Speicherbereich gezielt zu Nutze machen kann.
Du kannst natürlich auch komplett alles mit reentrant VIs machen. Das ist aufwendiger was das Referenzhandling/Synchronisation angeht, aber implementieren sollte sich damit alles lassen.