Comment coder un timer On sans utiliser le bloc TON ?

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
rmoreno
Code sa première boucle
Code sa première boucle
Messages : 11
Enregistré le : 23 mai 2022, 09:10

Comment coder un timer On sans utiliser le bloc TON ?

Message par rmoreno »

Je dois créer un timer TON en Control Expert pour mon projet d'automatisation dans le BUT, le but est de coder en ST à partir de 0 (je peux utiliser les bits system) un bloc TON qui a exactement le même comportement que le bloc déjà présent dans le Software, mais en utilisant des variables réelles.

Mon idée était d'utiliser le temps d'exécution de la tâche MAST (100ms) et de les additionner jusqu'à ce que le temps soit terminé, le problème est que je ne peux utiliser que des multiplications de la tâche.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7805
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Comment coder un timer On sans utiliser le bloc TON ?

Message par itasoft »

Tempo TON de 10s démarre sur %M0 à 1

if not %M0 then
%MW0:=10;
end_if;

%M1:=%S6;

if RE(%M1) and %MW0>0 then
%MW0:=%MW0-1;
end_if;

Sortie:=%MW0<=0;
Automaticien privé (de tout)
itasoft@free.fr
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1573
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: Comment coder un timer On sans utiliser le bloc TON ?

Message par MiGaNuTs »

Vu que la tache que gère ta tempo est appelée de façon cyclique cyclique toutes les X ms, les valeurs de ta tempo seront forcément des multiples de X.
C'est un peu pour ça que les valeurs des tempos internes de l'automate sont dans des entiers. Ça n'a aucun intérêt de les stocker dans les flottants, sauf si ça te fait plaisir de consommer plus de mémoire et de cycles processeur pour faire la même chose.
Avatar du membre
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2231
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: Comment coder un timer On sans utiliser le bloc TON ?

Message par JC87 »

Hello,

A partir du moment ou tu peut utiliser des bits systèmes il faut utiliser la méthode de Itasoft qui consiste à décompter des fronts du bits 100ms.

C'est ce que je fait aussi. D'autres préfèrent compter mais ça oblige à comparer à la valeur incrémenté à la présélection alors que si on décompte il suffit de tester la valeur à 0, c'est plus simple.

JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
Répondre