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 

Clusterkonstante in einer dll füllen



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!

02.11.2007, 21:37 (Dieser Beitrag wurde zuletzt bearbeitet: 02.11.2007 21:39 von rolfk.)
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.308
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Clusterkonstante in einer dll füllen
' schrieb:Danke für die Erläuterung. Nun ist mir der Sachverhalt klar geworden. Wenn ich es richtig verstanden habe, hat die Variable am Ausgang mit der am Eingang "nichts" zu tun. d.h. ist eine eigenständige Variable, die auch im Speicher woanderst liegt und halt "nur" den gleichen Typ hat.

Das mit einem extra VI für solche Fälle ist eine gute Idee.Smile

Im Prinzip hast Du recht und doch auch wieder nicht. Die Variable am rechten Rand der Call Library Node is zwar logisch nicht (unbedingt) identisch mit der an der linken Seite, aber im Interesse von Performance halt immer noch an der gleichen Speicherstelle. LabVIEW macht intern nicht extra eine Kopie sondern verwendet den Eingang einfach wieder um am Ausgang zurückzugeben. Wenn Du diesen Ausgang nicht verwendest (unwired lässt) dealloziert LabVIEW den Speicher einfach wieder.

Dein Problem ist wahrscheinlich dass Du denkst dass die DLL den Speicher der Konstanten selber sieht und verändern könnte aber dem ist nicht so. In dem Moment wo die Daten aus der Konstante in den Draht kommen sind sie schon nicht mehr die Konstante selber, sondern eine Kopie davon, die eben schon verändert werden kann (oder auch nicht). Alles andere wäre viel zu mühsam zum managen.

LabVIEW kennt zwar seit ein paar Versionen etwas was Konstantfolding genannt wird und hier wird tatsächlich in speziellen Fällen unter anderem auch darauf verzichtet eine Kopie der Konstante zu machen, wenn LabVIEW eindeutig feststellen kann, dass die Daten im entsprechenden Draht zu keinem einzigen Zeitpunkt überschrieben werden. Da sich LabVIEW aber die Kontrolle darüber was eine externe Library mit den Daten eines Parameters tut vollständig entzieht ist so ein Wire aber schon zum vornehinein von so einer Optimalisation ausgeschlossen.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Clusterkonstante in einer dll füllen - Guest - 24.10.2007, 10:38
Clusterkonstante in einer dll füllen - Guest - 25.10.2007, 08:12
Clusterkonstante in einer dll füllen - Guest - 25.10.2007, 10:00
Clusterkonstante in einer dll füllen - rolfk - 02.11.2007 21:37

Gehe zu: