LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Paramètrage des fonctions d'une DLL (LV 8.6)

Bonjour, je suis débutant sous LV, et je dois récupérer les data d'un capteur de pression via un port COM. J'ai une dll fournie par le fabricant du capteur, ainsi que sa documentation. J'ai utilisé le "call library function node", lu la doc LV à se sujet, chercher des exemples, mais comme je n'ai que très peu de connaissance en programmation,
"I need some help"
Je pense utiliser principalement la fonction 73 (read value of a channel) de la dll, et je voudrais savoir comment la paramètrer pour pouvoir récupérer les données du capteur (communication avec le port COM & transfer des data).
Des exemples de VI seraient également bienvenu.
Merci d'avance pour vos réponses
Doc & dll.zip ‏94 KB
Virus detected! File Removed.
0 Kudos
Message 1 of 3
(2,171 Views)

Bonjour Mikel

 

Vous pouvez programmer votre API a partir de la function <<Call Library Function Node>> et ouvrir l'application (double-click)  et en selectionant ton fichier DLL fournit;

Ensuite simplement selectioner la Function 73 a partir du menu deroulant sous Nom de Fonction.

 

Dans l'onglet Parametre vous devez editer les parametres fournit par le client pour la fonction:

function F73( bteDeviceAddr, bteChannel: Byte; var sinValue: Single; var bteStat: Byte): Smallint; stdcall; export;

 

Faites attention de bien representer la dimension des variables, comme var_sinValue qui es 32bit par exemple.

Une fois terminee la fonction devrais ressembler a l'image ci-dessous.

Comme les donnees de pression et temperature sont donnees sous "floating-point format" j'ai selectione 32bit mais vous devrez peut-etre decomposer les donnees pour retrouver la pression et temperature.

Aussi, d'autres fonctions preleminaires peuvent etre necessaire comme initialiser l'appareil par-exemple?

 

Plus de details et info sur l'utilisation de librarie disponible sous le liens ci-dessous:

http://zone.ni.com/devzone/cda/tut/p/id/4877

 

Aussi j'ai une application cree pour un client et que vous pouvez consulter pour reference. 

J'utilise les fichiers DLL pour faire functioner un appareil USB pour lire/ecrire avec une interface ECU.

Vous pouvez telecharger cet example a partir du lien ci-desous en appuyant l'icone jaune et en selectionant RAMScope Driver example.vi .

Certain texte son en Japonais et risque de ne pas etre visible mais ca donne une idee d'application...

http://digital.ni.com/worldwide/japan.nsf/web/all/B8F46E586D186DCE492574F00009A6A4

 

N'hesitez pas a repondre au message si vous avez plus de questions. 


0 Kudos
Message 2 of 3
(2,147 Views)

Bonjour,

 

 en regardant sur la page 24 de la doc, vous voyez que les parametres avec le mot-cle val doivent etre passes avec un pointeur et non pas par valeur.

Le type sinValue dans labview correspond a floating point single (32-bits).

 

Les 4 parametres sont donc:

retour: I16 (smallint) 

par1: U8

par2: U8

par3: pointeur sur single (4-byte)

par4: pointeur sur U8 

 

Aussi, n'oubliez pas d'ouvrir le port et de le refermer a la fin avec les fonctions OpenComPort() et CloseComPort().

 

Bonne chance. 

 

Message 3 of 3
(2,131 Views)