Je travaille actuellement sur l'automatisation d'un banc d'essai (sujet de mon stage). Il s'agit de charges électroniques (BK8610, BK8500), d'alimentations CC (BK9202, ETS60X14C) et de multimètres (MetraEnergy).Exécution d'une tâche régulière sur Scilab
J'ai créé une bibliothèque de fonctions dans Scilab pour contrôler tous les appareils en même temps (je peux définir des paramètres et obtenir des mesures en utilisant ethernet, les ports série et l'interface VISA). Maintenant que toutes les commandes fonctionnent bien, j'essaye d'écrire un script général pour faire des mesures régulières.
J'ai pensé à utiliser tic() au début de mon script, puis exec_time = toc() à la fin d'attendre 5s-exec_time avant de l'exécuter à nouveau.
tic()
//My code
exec_time=toc()
//wait until the time is equal to 5s
//Repeat
Même si cela pourrait fonctionner, Je me demande si Scilab a une fonction qui serait équivalente à une minuterie d'interruption asynchrone (couramment utilisé sur ATmega, STM32 etc.)? Ce serait beaucoup plus facile.
Espérons que cela soit clair. Je vous remercie !
Merci, je vais essayer d'écrire un script avec celui-ci. J'ai déjà fait beaucoup de tests avec ma solution, ça marche bien mais ce n'est pas vraiment "beau". – Orgoss
Si cette solution résout votre problème, vous pouvez envisager de l'accepter, ainsi d'autres peuvent également voir que la question n'est plus ouverte. Merci. – Attila
Je l'ai essayé et j'observe un peu de décalage temporel après 150 ~ cycles (quelques secondes), donc j'ai gardé mon ancien algorithme. Je l'accepterai quand même parce que c'est ce dont j'avais besoin mais ce n'est pas aussi précis qu'un quartz externe (peut-être parce que le PC que j'utilise n'a qu'un seul noyau?). – Orgoss