Hallo zusammen
Im Zusammenhang mit meiner Bachelorthesis möchte ich eine CCD Linien Kamera ansteueren. Zur Hardware wird ein SDK (haupsächlich für die Entwicklung mit C++) mitgeliefert, jedoch ist es auch möglich die mitgeliertete DLL mit LV nutzen.
Die Kamera hat folgende Funktionen:
Continous Frame Grabbing: Hier wird mit maximal möglicher Geschwindigkeit, Frames eingelesen und vom Computer abgeholt (maximal 4 frames im Speicher der Kamera)
Dazu habe ich ein Beispielprogram in LV und dieses Funktioniert einwandfrei.
Der andere Modus (für mich der entscheidende) ist das Frame Grabbing beim anstehen eines externen Triggers.
Dafür habe ich das Beispiel Programm ein wenig angepasst und ein DLL Call für die Funktion SetCameraWorkmode eingefügt. Soweit so gut. Wenn ich jetzt das VI starte passiert eine Weile gar nichts und dann stürzt LV entweder sofort ab oder beendet das VI mit der Meldung, dass LabVIEW-Speicher überschrieben worden sei, und LabVIEW das VI nicht weiter ausführen kann.
Ich habe heraus gefunden, dass die C-Funktion GetCurrentFrame, wenn kein externer Trigger anliegt und damit kein Frame im Speicher liegt, natürlich einen Leeren Pointer zurück gibt und deshalb das "MoveBlock" vi einen Fehler verursacht. Deshalb habe ich eine Entscheidung eingefügt, dass im Fall, dass die GetCurrentFrame Funktion einen leeren Pointer zurück gibt, das "MoveBlock" VI nicht ausgeführt wird. Danach möchte ich aber erneut schauen ob ein externer Trigger angekommen ist und damit auch ein neues Frame im Speicher ist.
LabVIEW stürtz aber trotzdem ab und diesmal kriege ich keine Fehlermeldung.
Dasselbe Problem tritt übrigens auf wenn ich im Countinous Mode die anzahl der Frames beschränke, nach einer bestimmten Zeit wird also auch hier der Speicher leer sein und zu den gleichen Resultaten führen wie oben Beschrieben.
Angehängt habe ich das angepasste LV Beispiel Programm (LV Version 8.6) und die DLL mit Headerfile und ein PDF in dem die Übergabeparameter der Funktionen beschrieben sind, das Problem dürfte jedoch sein, dass sich das VI ohne die Hardware nicht ausführen lässt, da zu beginn geprüft wird ob eine gültige Device angeschlossen ist, und die Wahrscheinlichkeit, sehr klein ist, dass jemand genau über die passende Hardware verfügt... Vieleicht kann mir ja dennoch jemand Helfen, und sagen ob das überhaupt so machbar ist, oder ob ich komplet auf dem Holzweg bin.
Freundliche Grüsse
Dominic