From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

appel DLL externe ; liste des fonctions n’apparaît pas

Résolu !
Accéder à la solution

Bonjour,

 

Je souhaite piloter un moteur via son driver.

Le fournisseur m'a donné une DLL pour piloter ce moteur directement depuis LABVIEW.

J'ai donc ouvert le bloc "appel d'une fonction d'un dll", je charge la dll, mais la le problème c'est que je n'ai aucunes fonctions qui apparaissent dans la liste des fonctions.

 

J'ai ouvert cette dll avec visual c# et les fonctions sont bien la.

 

Est ce que la dll ne marche pas pour LABVIEW (je la laisse ci-joint)? Si oui, comment la recompiler avec visual C# pour qu'elle fonctionne?

En sachant que le fournisseur m'a aussi donné un exemple LABVIEW qui utilise cette dll mais dans le diagramme je ne vois nulle part de bloc "appel d'une fonction d'un dll"(voir ci-joint).

Il y a des noeuds de propriété de la classe qui ont l'air de correspondre aux fonctions. 

Comment cela fonctionne? Comment je dois charger la classe?

 

Je vous remercie par avance de vos retours.

 

Cordialement,

0 Compliments
Message 1 sur 6
4 755 Visites
Solution
Accepté par l'auteur du sujet mecatronicengineer

Bon en fait en fouillant, en creusant, en fouinant comme une malade j'ai trouvé !

En fait il faut importer un "constructeur " : Connectivité -> .NET -> Noeud de constructeur 

On ouvre le bloc, on rentre sa dll.

Ensuite à partir de la on appelle les fonctions de la DLL en créant des noeuds de propriété.

 

C'est un peu tordu je trouve mais a priori en fonction du langage dans lequel sont créé les librairies, elles ne s'importent pas pareil.

 

0 Compliments
Message 2 sur 6
4 744 Visites
Solution
Accepté par l'auteur du sujet mecatronicengineer

C'est justement ce que j'allais te dire, j'étais en train d'ouvrir ton zip 😄

 

Oui il faut compiler la dll dans un mode particulier pour quelle soit compatible avec le noeud d'appel à DLL de labview.

 

Bon courage à toi pour la suite.

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 3 sur 6
4 734 Visites

Oui super merci!

 

C'est la première fois que j'importe une librairie, on verra comment ca se passe.

0 Compliments
Message 4 sur 6
4 728 Visites

Bonjour,

Plutôt que de recompiler ta dll, il faut l'utiliser avec les noeuds de propriétés .NET. Cela fonctionne très bien et t'évite du travail en plus.
Bonne continuation.

 

0 Compliments
Message 5 sur 6
4 680 Visites

Bien qu'ayant la même extension de fichier, les assemblys .NET et les bibliothèques partagées n'ont pas du tout les mêmes propriétés, et donc 2 utilisations différentes dans LV...

 

http://www.differencebetween.com/difference-between-assembly-and-vs-dll/

 

 

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

Message 6 sur 6
4 651 Visites