Timer SoMachine Basic

Forum traitant des automates industriels de marque Schneider - Telemecanique
MyK0n
Apprend le binaire
Apprend le binaire
Messages : 5
Enregistré le : 30 nov. 2018, 09:30

Timer SoMachine Basic

Message par MyK0n »

Bonjour,

Petite présentation : en étude d'ingénieur, je réalise un projet pour l'école, et dans ce projet nous utilisons un automate Modicon M221CE16R. Pour programmer dessus nous nous servons de SoMachine Basic.

Ayant peu d'expérience sur ce logiciel et n'ayant pas trouvé de réponse dans la documentation, je rencontre un problème avec un Timer TON. Celui-ci est censé se déclencher toutes les 10ms, suite à quoi on incrémente un compteur et on enregistre les mesures sur les entrées analogiques. Hors, vu la vitesse d'incrémentation du compteur, il est évident que le timer ne fonctionne pas correctement.

Sur le lien suivant, le screenshot de mon LADDER si celà peut aider :
https://puu.sh/Ca4ky/86ec94debb.png

Cordialement,

Julien
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1956
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Timer SoMachine Basic

Message par Béryl »

10ms, tu dois pas être très loin du temps de cycle, non ?
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2142
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Timer SoMachine Basic

Message par philou77 »

Salut,

10ms, passer par une tâche périodique, ce sera certainement bien plus précis !

de plus, une tempo doit voir son équation d'entrée passer de 0 à 1 pour se lancer, hors, dans ton exemple, %M1
- va pas passer à 0 à la fin de tempo
- Puis à 1 le segment d'après.
donc quand il revient à l'équation de la tempo, il n'a pas changé d'état, si je ne me trompe pas.

En réalisant un clignoteur avec une tempo, tu perd forcément un temps de cycle automate (nécessaire pour évaluer le changement d'état de la condition de la tempo). Pour supprimer le cycle automate perdu, il faut évaluer la tempo 2 fois à 2 endroits du programme. En siemens, ça marche, jamais testé sur Télé. De plus, si ton temps de cycle s'allonge, tu vas rater des période de 10ms..

Plus simple de tout faire dans une tâche périodique..(attention, elle se déclenchera n'importe où dans ton programme principal)
Si pas %M0, Raz compteur, fin de la tâche
si %M0 alors comptage...

bon courage
Modifié en dernier par philou77 le 30 nov. 2018, 11:31, modifié 1 fois.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Avatar du membre
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2242
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: Timer SoMachine Basic

Message par JC87 »

Bonjour,

Tous les set/reset se font sur un tour de cycle, résultat la tempo n'est jamais relancée et le compteur doit s'incrémenter a chaque tour de cycle et donc arriver à 3000 en un rien de temps. Il faut que le bit qui lance la tempo passe à zéro au moins un tour de cycle pour qu'elle se relance. Cette notion de temps de cycle automate est fondamentale en automatismes et se retrouve sur tous les automates quelques soient la marque ou le logiciel.

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..."
Avatar du membre
Relax1485
Codeur fou
Codeur fou
Messages : 206
Enregistré le : 02 oct. 2017, 11:45
Localisation : OCCITANIE

Re: Timer SoMachine Basic

Message par Relax1485 »

Bonjour,
Pour utiliser une incrémentation sur 10ms il faut utiliser le bit système %S4 qui est cadencé sur l'horloge interne au contrôleur M221
On perd sa vie à vouloir bien la gagner... 8-)
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1577
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: Timer SoMachine Basic

Message par MiGaNuTs »

Pourquoi tu n'utilise pas un TM0.Q inversé comme entrée pour ta tempo TM0.
Ça te donnerais ce que tu voudrait, c'est a dire que la sortie TM0.Q de ta tempo ne sera a un pendant seulement 1 cycle de scrutation toutes les 10ms.
Et puis ça rends ta petite cuisine avec tes bits internes dans tous les sens inutile.

Sinon un bon vieux front montant sur le bit %S4 ça marche aussi (vu qu'il est 5ms a 1 puis 5 ms a 0) et c'est encore plus simple.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Timer SoMachine Basic

Message par itasoft »

slts,
Plus simple de tout faire dans une tâche périodique..(attention, elle se déclenchera n'importe où dans ton programme principal)
Si pas %M0, Raz compteur, fin de la tâche
si %M0 alors comptage...


faire ce que dit philou77
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Mantysse
Dieu du process
Dieu du process
Messages : 757
Enregistré le : 20 oct. 2015, 08:17
Localisation : MiP

Re: Timer SoMachine Basic

Message par Mantysse »

itasoft a écrit : 30 nov. 2018, 18:15 slts,
Plus simple de tout faire dans une tâche périodique..(attention, elle se déclenchera n'importe où dans ton programme principal)
Si pas %M0, Raz compteur, fin de la tâche
si %M0 alors comptage...


faire ce que dit philou77
Saint Schneider (AKA Chorus) a parlé :lol:
"Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément." Nicolas Boileau

L'urgence, c'est fait!
L'impossible, c'est en cours!
Pour les miracles, il faut prévoir un délai!
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2142
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Timer SoMachine Basic

Message par philou77 »

Salut,

Par curiosité, je viens de tester en lançant deux fois la même tempo, sous schneider ça fonctionne pas bien.
La tempo se décale d'environ 10 S sur 1 minute (sur une base de temps de 10ms x 100) !

Donc reste le bit système %S4 évalué sur front montant et descendant, ou bien la tâche périodique !

une autre astuce pour faire rapidement des puissances de 2 d'une tempo base de temps 1 S :
Cela date du temps ou les tempos n'étaient pas nombreuses et aucun bit de cadence n'étaient dans les cpu !!
Ecrit en siemens de cette manière, on possède de M0.0 jusqu'à M0.xxx des bits clignotants.
Chaque bit suivant est le double du précédent..soit x1,x2,x4,x8,x16 etc....

UN M10.0
LKT 10.1
SE T1
U T1
= M10.0

U M10.0
BEB (fin de bloc conditionnelle)

UN M0.0
= M0.0
BEB (fin de bloc conditionnelle)

UN M0.1
= M0.1
BEB (fin de bloc conditionnelle)

UN M0.2
= M0.2
BEB (fin de bloc conditionnelle)
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Timer SoMachine Basic

Message par itasoft »

Slts,
Petite piqûre de rappel pour les débutants :
Une tempo c’est pas une horloge atomique, plus la base de temps et grande et plus la valeur de présélection est petite plus c’est faux.
En conclusion il ne faut pas utiliser une tempo là ou il faut une horloge.
Automaticien privé (de tout)
itasoft@free.fr
Répondre