2017-04-20 3 views
0

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 !

Répondre

0

Peut-être realtime & realtimeinit est une solution pour vous. Exemple modifié de l'aide de Scilab:

clc; 
clear; 

realtimeinit(1/2);//sets time unit to half a second 
realtime(0);//sets current date to 0 
for k=1:10 
    realtime(k); 
    mprintf('\r\ncurrent time is %.1f sec',k/2); 
end 
+0

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

+0

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

+1

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