Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Dll erzeugt durch Delphi in LabView einbinden (https://www.delphipraxis.net/82787-dll-erzeugt-durch-delphi-labview-einbinden.html)

Surrounder 19. Dez 2006 11:03


Dll erzeugt durch Delphi in LabView einbinden
 
Ich habe eine Dll die ich in Delphigeschrieben habe, diese funktioniert auch schon mehrfach bei vielen Kunden. Jetzt habe ich einen der diese mit LabView verwenden will. Das meiste funktioniert auch, nur habe ich an einer Stelle ein Problem und da komme ich so langsam nicht weiter. Vielleicht kennt sich einer da aus, denn ich bin auch mit LabView nicht ganz so vertraut.

Und zwar habe ich einen Dll Aufrug dem ich einen Zeiger übergebe und in den die Dll je nach Konfiguration z.B. 10000 Messwerte schreibt. Die Dll hat eine weitere Funktion mit dem man prüfen kann wieviele Messwerte schon geschrieben sind.

Im Normalfall habe ich bisher immer ein array verwendet und dort einen Zeiger auf das erste Element übergeben. Das klappt auch ohne Probleme und ich kann den Füllstand prüfen und die Werte aus dem Array lesen und zeichnen.

In LabView klappt das nicht, dort gibt es ja keine array sondern irgend welche Listen. Ich bekomme auch einen Zeiger von LabView und schreibe dorthin meine Messwerte. Wenn der Kunde den Füllstand abfragt bekommt er auch diesen korrekt zuück. Trotzdem stehen in der Liste in LabView keinerlei Werte drinnen. Das ist einfach leer.

Kennt sich da einer von Euch aus oder hat mir einen Hinweis nach was ich da in LabView suchen könnte oder tun muss damit so etwas funktionieren kann?

MikeS 19. Dez 2006 11:14

Re: Dll erzeugt durch Delphi in LabView einbinden
 
In LabVIEW gibt es auf jeden Fall Array´s.

Wie versuchst Du denn an Deine Werte heranzukommen. Hast Du einen Screenshot von dem VI?

Surrounder 19. Dez 2006 11:24

Re: Dll erzeugt durch Delphi in LabView einbinden
 
Nein leider nicht, mein Problem ist dass ich mich mit LabView gar nicht wirklich auskenne sondern der Kunde das eben verwendet um mit meiner DLL zu arbeiten.

Ich kann aber alles was die DLL macht als Debug Informationen auloggen und da sehe ich schon dass er mir einen Zeiger übergibt, aber ob es der Zeiger auf die Liste / Array ist die er haben will sehe ich eben nicht, und er kann sich die Adressen in LabView wohl auch nicht anzeigen lassen. Er hat mir gesagt dass er dasgrafisch programmiert und nur eine Linie von dem Array / Liste auf den Eingang zieht an dem er die Adresse braucht.

Gibt es denn wirklich keine Möglichkeit sich Adressen in LabView anzeigen zu lassen? Muss man LabView denn irgend etwas sagen damit es einen Zeiger übergibt so wie man ihn in C oder Delphi kennt?

Surrounder 20. Dez 2006 16:54

Re: Dll erzeugt durch Delphi in LabView einbinden
 
Ok das Problem hat sich gelöst, ich erkläre es kurz falls das auch mal jemand sucht:

LabView macht eine Kopie der Variable und übergibt dann dort drauf den Zeiger. Nach dem Aufruf der Funktion kopiert es dann den Inhalt wieder auf das Original zurück. Da ich aber erst dann beginne die Werte während der Messung in den Buffer zu legen schreibe ich die in die Kopie rein, diese ist aber für LabView in dem Fall schon komplett uninteressant und der LabView Anwender bekommt diesen Inhalt nie zu Gesicht.

Einzige Lösung, und das ist das was auch ich jetzt gemacht habe, ist dass ich die Buffer zu Speicherung der Messwerte in der Dll anlege und dann erst nach der Messung diese dem Anwender übergebe. Hat den Nachteil dass die Messkurve nicht während der Messung gezeichnet werden kann, sondern erst wenn diese Beendet ist. Das war aber in meinem Fall jetzt kein Problem


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz