Measurement Studio for .NET Languages

cancel
Showing results for 
Search instead for 
Did you mean: 

timer rapide et fiable

Bonjour

 

je programme avec Visualstudio 2008, et j'utilise DaqMX 8.8.

 

Je souhaite de faire un asservisement de position, pour cela je dois a interval regulier faire lecture point puis ecriture point.

 

Si je laisse tourner en boucle sans timer, j'attends une vitesse de boucle d'environ 0.2 ms. Je n'ai besoin que de maintenir une frequence de 1ms, ou peut etre 0.5ms.

 

Y a til des timer assez performant et prioritaire, pour faire ce genre de declenchement ?

 

Merci de votre aide

 

Fredo

0 Kudos
Message 1 of 5
(4,079 Views)

Bonjour,

 

Pour poster en français vous pouvez venir sur le forum de la communauté française. Concernant votre question je pense qu'il s'agirait plutôt d'un cadencement de boucle que d'un timer.  Pour cela utlisez un cadencement matériel comme par ex sous cvi :

" DAQmxErrChk (DAQmxCfgSampClkTiming(gTaskHandle,"",rate,DAQmx_Val_Rising,DAQmx_Val_ContSamps,sampsPerChan)); "

 

Ou bien paramétrez (entre autres) une fonction attente dans un timer afin de ralentir votre appli :

http://www.codeproject.com/KB/vb/Speed_up__Web_application.aspx et Cf forum msdn

 

Cordialement,

Message Edité par Steve Mohamed le 11-28-2008 11:58 AM
Steve M.
0 Kudos
Message 2 of 5
(4,061 Views)

Bonjour,

 

un cadencement n'est pas la bonne solution, je crois, car on recupère les info par des evenements, et ça, c'est tres hazardeux coté Windows. si il y a par exemple un event tout les 10 ms, souvent, il n'a rien pendant 30ms ou plus, puis plusieurs qui se suivent.

 

Si on fait des lecteure ou ecritures d'un seul point sans cadencement, puis on recommence, c'est tres regulier est stable, mais on fait tourner la boucle a la vitesse maxi possible, qui est trop elevé sur ma machine. J'ai un colluege qui programme en CVI, qui m'a parler des timers plus fiables, que ceux du visualstudio, qu'il utilise pour ce genre de tache, mais il ne savait pas comment les trouver dans Visualstudio?

 

Le forum français , je le trouve comment ?

 

merci

 

fredo

0 Kudos
Message 3 of 5
(4,052 Views)

Bonjour,

 

Vous le trouverez ici .

 

Coridalement,

Steve M.
0 Kudos
Message 4 of 5
(4,031 Views)

Bonjour,

 

Je pense que votre collègue parlait de cela peut-être ?

CVI et MS sont différents produits. Autrement dit, CVI est un ide à part entière alors que MS n'est qu'un add-on de Visual Studio.

Ensuite pour avoir un timer performant il faut savoir que Windows n'est pas un OS temps réel, en revanche NI propose des solutions temps réel.

 

Sinon en .net je pense que le plus simple est d'utliser la Sleep method de la classe Threads :

 

for (Int32 i = 0; i < 5; i++)
    System.Threading.Thread.Sleep(numMilliseconds)

 

Ou bien http://support.microsoft.com/?kbid=306979

 

Comme vous pouvez le voir il y a de nombreux mécanismes de timer en .net, en effet : http://msdn.microsoft.com/fr-fr/magazine/cc164015(en-us).aspx

Autrement, une recherche sur google vous permettra de trouver les timer adéquats pour visual studio .

 

Cordialement,

 

Steve M.
0 Kudos
Message 5 of 5
(3,979 Views)