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 

Labview blockiert serielle Schnittstelle nach Aufruf der DLL



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!

04.04.2014, 12:10
Beitrag #1

Berdschi Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: May 2012

2013
2012
DE


Deutschland
Labview blockiert serielle Schnittstelle nach Aufruf der DLL
Hallo Labview-Profis,

ich bin nach längerer Pause wieder an Labview dran.
Ich habe diesmal eine selbstentwickelte DLL die zur Kommunikation über die serielle Schnittstelle mit einem Mikrocontroller dient.
Diese DLL funktioniert auch korret. Baut eine Verbindung auf und beendet sie am Ende auch wieder korrekt.

Jetzt habe ich diese DLL in mein Labview-Programm mit dem VI "Knoten zum aufruf externer Bibliotheken" eingebunden. Das funktioniert soweit auch gut. Ich kann dann mit meinem Programm die Kommunikation aufbauen und Daten hin und herschicken.
Dabei ist die DLL über zwei Schnittstellen (Funktionen aus der DLL) in Labview eingebunden. Die erste dient zum Kommunikation. Die zweite nur um jederzeit den Status der DLL abzufragen.

Die Kommunikation in Labview (besser gesagt der Aufruf der DLL) wird über einen Button gestartet.
Mein Problem ist jetzt das ich die Kommunikation nur einmal ausführen kann. Ein zweites mal geht es nicht da meine DLL eine Fehlermeldung zurück gibt die besagt das der Port bereits besetzt ist.
Erst wenn ich Labview komplett neustart kann ich wieder aufbauen.
In Labview selbst verwende ich nichts was mit der Kommunikation zu tun hat. Also keine VISA-Schnittstellen oder sonst was. Die ganze Kommunikation läuft ausschließlich über die DLL.

Habt ihr eine Idee an was das liegen könnt das Labview hier die Schnittstelle blockiert?
Wenn ich das nicht umgehen kann gibt es eine Möglichkeit die Schnittstelle im Nachhinein über Labview frei zu geben?

Wär super wenn ihr en paar Tipps hättet
Viele Grüße,
Berdschi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2014, 12:15
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Labview blockiert serielle Schnittstelle nach Aufruf der DLL
Also für mich hört sich das so an, als ob deine DLL die Schnittstelle nicht frei gibt, solange sie im Speicher ist. Da kann LabVIEW nichts dran ändern und auch nichts dafür.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2014, 13:11
Beitrag #3

Berdschi Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: May 2012

2013
2012
DE


Deutschland
RE: Labview blockiert serielle Schnittstelle nach Aufruf der DLL
Das hab ich auch erst gedacht. Aber das ist es definitiv nicht. Ich hab dafür extra mal ein Sniffing-Tool nebenher laufen lassen. Die DLL ruf zum Schluss die Close-Funktion auf und Windows sendet dann auch den entsprechenden Request vom Treiber um die Verbindung zu beenden.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.04.2014, 12:00
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Labview blockiert serielle Schnittstelle nach Aufruf der DLL
(04.04.2014 13:11 )Berdschi schrieb:  Das hab ich auch erst gedacht. Aber das ist es definitiv nicht. Ich hab dafür extra mal ein Sniffing-Tool nebenher laufen lassen. Die DLL ruf zum Schluss die Close-Funktion auf und Windows sendet dann auch den entsprechenden Request vom Treiber um die Verbindung zu beenden.

Und doch macht Deine DLL da irgendwas. LabVIEW kann nicht magisch eine Schnittstelle geöffnet halten nur weil Deine DLL diese irgendwann mal öffnet. LabVIEW weiss nichts darüber was Deine DLL macht und kann dann auch nicht von sich aus etwas tun hier.

Debugging der DLL wird die einzige Möglichkeit sein um das sauber u kriegen. Ohne die DLL und den Source Code davon zu sehen lässt sich so auf Abstand leider nicht viel mehr dazu sagen. Nehme aber von mir mal an, dass das Problem nicht LabVIEW selber ist sondern die Art und Weise wie diese DLL programmiert ist und wie Du sie von LabVIEW aus aufrufst.

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
11.04.2014, 15:00
Beitrag #5

Berdschi Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: May 2012

2013
2012
DE


Deutschland
RE: Labview blockiert serielle Schnittstelle nach Aufruf der DLL
Sry das ich mich jetzt erst wieder melde. Ich kam erst jetzt wieder dazu.
Also langsam denk ich auch das es an der DLL liegt.
Leider weiß ich nicht warum. Wie mach ich das den mit dem Debuggen aus Labview raus?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2014, 08:38
Beitrag #6

Berdschi Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: May 2012

2013
2012
DE


Deutschland
RE: Labview blockiert serielle Schnittstelle nach Aufruf der DLL
So ich hab den Grund endlich gefunden warum es nicht ging.
Es lag natürlich an der DLL ^^
Wie sich herausgestellt hat, lief der Mikrocontroller beim zweiten Kommunikationsaufbau in einen Fehler. Dieser wurde zwar abgefangen aber das Programm wurde dabei einfach beendet ohne sämtliche offenen Verbindungen zu beenden. Dadurch war dann der Com-Port durch die DLL immer noch geöffnet.

Danke für eure Hinweise das es wohl an der DLL liegen muss statt an LabVIEW. Hätte da sonst wahrscheinlich noch ewig gesucht Smile.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Aufruf externer Bibliotheken / Keyence / Schnittstelle _Markus_ 1 6.354 20.05.2019 12:23
Letzter Beitrag: _Markus_
  Fehler beim Schließen des VIs nach Delphi-DLL-Aufruf Bärbel 10 14.391 11.11.2013 11:44
Letzter Beitrag: andreaskoller
  Absturz von Labview nach schliessen eines VIs sima 4 7.916 23.01.2012 17:07
Letzter Beitrag: sima
  LabVIEW: Absturz nach externem Code-Aufruf abrissbirne 22 21.599 14.09.2007 07:18
Letzter Beitrag: rolfk
  Messdaten aus LabVIEW nach c++ kompilieren Predator 3 4.589 28.03.2007 09:12
Letzter Beitrag: ThomasE
  LabVIEW-Aufhänger bei DLL-Aufruf Jörg 3 4.464 27.02.2007 22:03
Letzter Beitrag: Y-P

Gehe zu: