Interfaçage avec Profi-Cassy programmer en Delphi(période d'échantionnage)

cs_Nadia16 Messages postés 6 Date d'inscription mercredi 6 mai 2009 Statut Membre Dernière intervention 16 mai 2009 - 14 mai 2009 à 06:50
cs_Nadia16 Messages postés 6 Date d'inscription mercredi 6 mai 2009 Statut Membre Dernière intervention 16 mai 2009 - 16 mai 2009 à 22:45
Bon jour à tous,
Je travail sur un projet de commande numérique d'un moteur asynchrone (1,5KW) en temps réel dont le temps de réponse est de 0.24s d'ou la nécessité d'une période d'échantionnage Te de l'ordre de 20ms.
En programment avec delphi, j'ai réussi à avoir une période de 0.1s qui est à diminuer.
J’utilise une carte d’interfaçage Profi-Cassy (port USB).
Existe-t-il un moyen de diminuer cette période?
Je suis débutante en programmation sur Delphi
Mercie pour votre aide.

6 réponses

cs_Nadia16 Messages postés 6 Date d'inscription mercredi 6 mai 2009 Statut Membre Dernière intervention 16 mai 2009
14 mai 2009 à 22:05
Bon soir,

Mercie pour votre réponse,je veut une aquisition et traitement de donnés avec une haute fréquence de l'ordre de f=100Hz ==> Te=10ms au moin.
Je ne pense pas atteindre, en utilisant Delphi, la période d’échantionnage que mon système à commander exige puisque la programmation à l’aide de ce langage se fait sur Windows (période de l’ordre de 0.1 ms).Je vais essayer de programmer à l’aide du langage C sur Dos.
Si vous avez quelque suggestion, n’hésitez pas à m’informer.
Mercie pour tout information
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 mai 2009 à 11:49
Sous un vrai DOS ?

Parce que l'invite de commande sous Windows est sujette au même problème que Windows en ce qui concerne le "temps réel". Tu n'y gagnerais strictement rien.

Concernant les perfs Delphi vs C, si on code de la même manière, les perfs sont tout à fait équivalentes.
0
cs_Nadia16 Messages postés 6 Date d'inscription mercredi 6 mai 2009 Statut Membre Dernière intervention 16 mai 2009
15 mai 2009 à 21:22
Je me sens perdue et je ne saie pas quoi faire, c'est juste une idée qu'en ma proposé …
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 mai 2009 à 18:24
Si tu tiens vraiment à tenir une fréquence avec un PC, il faut que tu te tournes vers ce qu'on appel le "temps réel".

Windows n'est pas un système d'exploitation temps réel. Windows fait du multitâche préemptif. Ce qui tourne sous windows, c'est un ensemble de processus composé d'un ensemble de threads.
Sur un PC équipé d'un processeur disposant d'un seul coeur, à un instant t, un seul thread peut être en cours d'exécution. Ce thread a la sensation d'être tout seul avec dans le PC et a le processeur pour lui tout seul.

Mais tous les x temps, un timer hardware (Le PIT) envoie un signal au processeur, ce qui déclenche ce qu'on appelle une interruption. L'exécution du thread courant s'interrompt, et le code lié à l'interruption est exécuté. Le code en question est celui de l'ordonnanceur de windows. Cette ordonnanceur va sélectionner le prochain thread à exécuter, en fonction des priorité, de la dernière fois que du temps a été alloué au thread, etc...

Bilan on a aucun moyen de dire à windows de n'exécuter que notre propre thread. Bilan on a aucun moyen d'exécuter une portion de code à fréquence fixe avec une grande précision.

Il faut plutôt s'orienter vers d'autre OS. Windows CE ou rtlinux par exemple.

Cela dit pour une période de 10 millisecondes, windows ne s'en sort quand même pas trop mal (Si on est pas en train de lire de la vidéo, de surfer, d'encoder... en même temps).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 mai 2009 à 18:25
0
cs_Nadia16 Messages postés 6 Date d'inscription mercredi 6 mai 2009 Statut Membre Dernière intervention 16 mai 2009
16 mai 2009 à 22:45
Mercie pour vos informations,je vais chercher dans ce
sens.
0
Rejoignez-nous