LabVIEWForum.de - Aufruf einer DLL parallel zu subVI

LabVIEWForum.de

Normale Version: Aufruf einer DLL parallel zu subVI
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo LabVIEW Forum,

ich habe mit einem Problem zu kämpfen, welches ich mit den bisherigen Posts hier im Forum nicht gelöst bekomme.
Was ich tun möchte:

Ich möchte eine DLL die ich in C geschrieben habe einbinden. Das klappt auch mit einem Call Library Function Node ausgezeichnet.
Da die DLL eine sehr lange Laufzeit haben kann (bis zu 3 minuten), möchte ich parallel dazu ein VI aufrufen, welches mir den Fortschritt der DLL mit einer Fortschrittsanzeige (bar) anzeigt.

Im ersten Schritt möchte ich in diesem parallelen VI nur einen Zähler hochlaufen lassen und diesen als Fortschrittsanzeige anzeigen.

Das Problem ist nun, sobald im Programm die DLL aufgerufen wird, aktualisiert das Frontpanel meine Fortschrittsanzeige nicht mehr. --> Datenflussprinzip
Das möchte ich nun umgehen. Dazu habe ich hier im Forum zwei Möglichkeiten gefunden. Parallele Schleifen und Aufruf von SubVIs über Referenzen.

Ich habe die Möglichkeiten mit einfachen Beispielen (ohne Aufruf einer DLL) getestet und es funktionierte. Beides funktioniert jedoch nicht, wenn ich in einem SubVI eine DLL aufrufe. Ich habe meinen Code mit den parallelen Schleifen mal vereinfacht angehängt.

Ich hoffe es kann mir jemand helfen? Muss ich evtl. etwas an den VI Einstellungen ändern?

Danke und viele Grüße
tiwo

Lv10
Hi
Du musst in der dem DLL-Funktionsaufruf in den Thred-Optionen Run in any thread auswählen.
Dann wird das GUI nicht mehr blockiert.

Möglicherweise musst Du auch Deine DLL multi-threaded übersetzen.

Gruß Holger
Vielen Dank für deine Hilfe, funktioniert super!

Viele Grüße
tiwo
Referenz-URLs