Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Comment génerer une tension sur une carte ni-6009 avec Windev ?

Bonjour à toute la communauté national instrument,

 

Dans le cadre d'un projet je dois utiliser une carte ni-6009 pour acquérir des signaux analogiques et en générer.

Comme j'utilise en parralèle une base de données, je programme sous Windev.

 

Voici mon problème :

- Je n'arrive pas à générer un signal analogique constant de +3V sur le port Dev1/ai0. Ce dernier servira à alimenter un capteur.

 

//Mes variables

eTaskhandle1 est un entier sans signe
eTaskhandle2 est un entier sans signe
eErreur est un entier
chPortin, ChPortout est une chaîne
Data est un réel
ENbrEchEcrit est un entier sans signe

//Définitions

chPortin = "Dev1/ai0"
ChPortout="Dev1/ao0"
Data=3
eTaskhandle1=0
eTaskhandle2=0
ENbrEchEcrit=0

//Création de la tâche
eErreur=AppelDLL32("nicaiu.dll","DAQmxCreateTask","U_gen",&eTaskhandle2)
//Lancement
eErreur=AppelDLL32("nicaiu.dll","DAQmxStartTask",&eTaskhandle2)
//Je définie le port comme une sortie analogique
eErreur = AppelDLL32("nicaiu.dll","DAQmxCreateAOVoltageChan",eTaskhandle2,ChPortout,"",0.0,5.0,10348,"")
//J'écris 3V
eErreur = AppelDLL32("nicaiu.dll","DAQmxWriteAnalogF64",&eTaskhandle2,1,1,10.0,"DAQmx_Val_GroupByChannel",&Data,&ENbrEchEcrit,Null)
//Je supprime la tâche une fois finie
eErreur=AppelDLL32("nicaiu.dll","DAQmxClearTask",&eTaskhandle2)

 Merci d'avance pour votre aide.

 

 

 

0 Kudos
Message 1 of 6
(3,706 Views)

Bonjour à tous,

 

Mon problème est résolu voici la réponse.

 

/Mes variables
// quelques constantes NI 
// DAQmx_Val_Volts = 10348
// DAQmx_Val_Rising = 10280
// DAQmx_Val_FiniteSamps = 10178
// DAQmx_Val_GroupByChannel = 0

eTaskhandle1 est un entier sans signe
eTaskhandle2 est un entier sans signe
eErreur est un entier
chPortin, ChPortout est une chaîne
Data est un tableau de réel
ENbrEchEcrit est un entier sans signe

//Définitions

chPortin = "Dev1/ai0"
ChPortout="Dev1/ao0"

eTaskhandle1=0
eTaskhandle2=0
ENbrEchEcrit=0

//Création de la tâche
eErreur=AppelDLL32("nicaiu.dll","DAQmxCreateTask","U_gen",&eTaskhandle2)
//Lancement
eErreur=AppelDLL32("nicaiu.dll","DAQmxStartTask",eTaskhandle2)
//Je définie le port comme une sortie analogique
eErreur = AppelDLL32("nicaiu.dll","DAQmxCreateAOVoltageChan",eTaskhandle2,ChPortout,"",0.0,5.0,10348,Null)

//J'écris 3V
ajoute(Data, 3.0)
eErreur = AppelDLL32("nicaiu.dll","DAQmxWriteAnalogF64",eTaskhandle2,1,1,10.0,0,&Data,&ENbrEchEcrit,Null)
//Je supprime la tâche une fois finie
eErreur=AppelDLL32("nicaiu.dll","DAQmxClearTask",eTaskhandle2)

 Cordialement.

 

Olivier

0 Kudos
Message 2 of 6
(3,688 Views)

Bonjour, Olivier.

 

Aujourd'hui moi aussi je cherche à manipuler une carte N.I via Windev.

Pourrais tu me m'aider un peu ?

 

Cordialement.

 

Dominique

0 Kudos
Message 3 of 6
(3,518 Views)

Bonjour Dominique,

 

Je vais devoir répondre négativement à ta requête. Ça fait plusieurs mois que je n'ai plus travailler sur Windev, je ne te serai pas d'une grande aide. Donnes moi ton adresse mail, je vais tenvoyer les sources de notre programme d'acquisition de tensions.

 

Si je peux te donner deux conseils avec Windev :

- Renseigne toi bien sur les fonction NIDaq que tu vas utiliser (types et nombre d'arguments, initialisation des fonctions, récupération des erreurs).

- Pour utiliser une fonction NIDaq (donc écrite dans un autre langage que Windev), utilises cette synthaxe 

                        Nombre est un entier

                        Nombre = AppelDLL32("nicaiu.dll","NomFonction",Argument)

 La valeur du nombre te renseignera sur la bonne exécution de la fonction

 

 

Olivier

0 Kudos
Message 4 of 6
(3,514 Views)

J'ai suivie cette syntaxe. la création des voies ne pose pas vraiment de soucie c'est plus au sur la génération de l'horloge et de récupération de valeur que je suis un peu dans le flou.

 

Ton code pourrait vraiment m'aider. Je t'en remercie d'avance.

 

Cordialment.

 

Dominique.

 

Mail : baillif.dominique@gmail.fr

0 Kudos
Message 5 of 6
(3,507 Views)

Desolé dominique, je n'ai plus le code source de mon projet. J'espère que tu arriveras à te débrouiller. Cordialement. 

0 Kudos
Message 6 of 6
(3,484 Views)