LabVIEWForum.de - Aufruf externer Bibliotheken / Keyence / Schnittstelle

LabVIEWForum.de

Normale Version: Aufruf externer Bibliotheken / Keyence / Schnittstelle
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe von Keyence ein Messgerät, das ich über USB von Labview aus steuern und lesen will. Leider hat der von Keyence gelieferte LV-Treiber nur einen geringen Funktionsumfang, sodass ich einiges selbst implementieren muss. Da steige ich noch nicht wirklich durch, wie das mit der Übergabe von Parametern aus der Labview-API funktioniert.

Ich habe mal einige Bilder anbei, die mein Problem veranschaulichen sollen.

winapi.jpg: Schnittstellendefinition seitens Keyence-DLL
[attachment=59978]

Der Prototyp der Funktion lautet ja RC WINAPI LKIF2_DataStorageGetData(IN int OutNo,IN int NumOutBuffer,OUT LKIF_FLOATVALUE *OutBuffer,OUT int *NumReceived);

Ich bin mir nicht sicher, ob das, was ich in Labview in der Maske eingestellt habe, passt:

ext_bib.png: Maske "Aufruf externer Bibliotheken" in LV
[attachment=59979]

block_diagr.png: Teil meines Blockdiagramms, der nicht das macht, was ich mir wünschen würde.
[attachment=59980]

Wenn ich den Code laufen lasse und im Blockdiagramm bei NumOutBuffer 100 einstelle, sollten ja 100 Samples gelesen werden. Es wird aber nur ein Wert gelesen und in OutBuffer geschrieben. In NumReceived steht 0 - verstehe ich nicht. Outbuffer habe ich als Cluster in LV definiert. Allerdings müsste es ja bei mehreren Samples ein Array aus Clustern sein. Die Größe des Arrays müsste aber je nach Sampleanzahl variieren. Ich bin komplett verwirrt. Jedenfalls wird zumindest ein Wert korrekt gelesen und kein Fehler geworfen.

Ich weiß nicht, ob es was helfen würde, wenn ich den Code hochlade? Funktionieren tut das ja nur zusammen mit der DLL und dem installierten LV-Treiber von Keyence.
Ich hab selbst eine Lösung per Trial & Error gefunden. Wenn es von Interesse ist, kann ich es morgen hier einstellen.
Referenz-URLs