Page 1 sur 2
Temporisation TONR
Posté : 29 mai 2020, 17:15
par Zwall
Voila une après-midi entière que je me casse la tête avec cette maudite temporisation. Voila mon problème:
Je travaille sur un CPU1510SP et j'utilise TIA portal 15.1
J'utilise une temporisation pour définir le temps que doit durer un processus, l'utilisateur choisit ce temps via une IHM.
Comme on peut le voir sur le sceenshot, la tempo devrait s'écouler mais ne le fait. Cette tempo est une variable static de la FB que j'ai créé. Le tout est dans un Cycle interruption pour travailler avec divers PID de température.
Est-ce que le fait qu'elle soit dans un OB d'interruption pose un problème ? J'ai eut beau lire et relire la documentation, en anglais, en français je ne vois ce que j'ai mal écrit et j'avoue ne plus avoir d'idée.
J'ai vu sur certaine exécution du code la temporisation faire son job (même si le temps s'en écoulant était juste totalement faux... 6000ms de régler et plus d'une minute s'écoule... Oui, c'est un autre problème dont je ne trouve pas la solution...)
Re: Temporisation TONR
Posté : 29 mai 2020, 17:40
par philou77
Salut !
Qu'est-ce qui déclenche ton ob d'interruption ?
Re: Temporisation TONR
Posté : 03 juin 2020, 10:26
par Zwall
Pardon j'ai été imprécis dans ma description, c'est OB d'interruption CYCLIQUE...
De ce fait, je n'ai pas d'appel ou que ce soit à part l'appel initial.
Est-ce qu'il est possible que je n'ai pas de variation de la tempo parce qu'aucune variable ne bouge dans l'automate ? Je m'explique, pour faire mes tests je procède par forçage de mes entrées avec des valeurs. Faut-il que mes variables d'entrée sur ma FB bougent pour faire avancer la temporisation ?
La FB en question dans l'OB d'interruption cyclique. La variable Heat1 est toujours vrai tant qu'un test est lancé.
La variable TC1 est une entrée analogique renvoyant une valeur d'un termocouple, c'est celle-ci que je force pour les besoins de mes tests.
Phase 1 montée en température jusqu'à la consigne
Phase 2 maintient de la température pendant le temps donné --> durée de tempo donnée par l'utilisateur sur l'IHM, c'est cette phase qui ne fonctionne pas comme souhaité.
Phase 3 baisse de température jusqu'à la consigne
Re: Temporisation TONR
Posté : 03 juin 2020, 11:51
par philou77
Salut !
OB interruption Cyclique -> heu
Cyclique = les blocs les uns après les autres
interruption -> exécution déclenché sur une période ou un évènement
Donc c'est quoi qui déclenche l'appel à ton OB ? c'est quel n° d'OB ?
qu'aucune variable ne bouge dans l'automate ? -> Faut au moins une évaluation 'fausse' de la tempo puis une 'vraie' pour qu'elle démarre (utilise STOP pour cela)
%MD12 'Consigne Phase 2' -> c'est bien au format S5_TIME ? parce que 6000 en visu dyn, c'est quoi (la tempo indique T# 0MS) ?
Re: Temporisation TONR
Posté : 03 juin 2020, 12:13
par Zwall
J'ai traduit mais c'est Cyclic interrupt[OB30]
Je vais passer pour un noob(ce que je suis remarque) mais je ne vois pas de quoi tu parles quand tu me demandes qu'est-ce qui déclenche l'appel à mon OB. Pardon...
%MD12 'Consigne_Phase2' c'est un DInt et 6000 c'est MS, elle indique des MS
Il est dit dans le documentation que l'OB[30] est appelé à chaque intervalle définis, pour moi on toutes les 100000us. Donc normalement, je devrais répéter ce programme toute les 100000us...
Re: Temporisation TONR
Posté : 03 juin 2020, 12:18
par philou77
Re !
Ok, OB30 donc ! (alarmes cycliques, appel de l'ob UNE FOIS tous les x TEMPS (à définir) )
interruption = arrêt du programme normal tous les x temps pour exécuter UNE FOIS l'ob d'alarme cyclique , puis retour au programme 'normal' là ou il s'était arrêté !
place un test dans ton FB
une addition de 1 avec un MW libre pour voir si il est bien exécuté (le mot doit s'incrémenter à chaque appel !)
Question, tu as bien rechargé la configuration matérielle ??
Re: Temporisation TONR
Posté : 03 juin 2020, 12:30
par Zwall
Ok, le compteur s'incrémente bien à une rapidité qui semble cohérente, dur à dire à l'oeil nu.
Avec le nombre de tests différents que j'ai fait la semaine dernière, j'ai pas toujours rechargé la configuration matérielle comme elle ne changeait pas. J'ai fait des chargements soft plus d'une fois... La seule chose qui semblait avoir décoincé la situation, c'était de totalement changé la tempo pour une autre, genre TON -> charger le programme -> remettre la TONR -> recharger... Et encore ça n'a pas marché à tout les coups.
Et c'est pas une solution viable long terme...
Re: Temporisation TONR
Posté : 03 juin 2020, 12:41
par philou77
Ok, si le compteur fonctionne alors c'est bon !
Poste tout ton FB
Re: Temporisation TONR
Posté : 03 juin 2020, 13:05
par Zwall
Mon FB est super long... Et tout fonctionne dedans à part cette tempo.
J'ai corrigé le type de variable pour le tempo, j'ai mis un TIME (selon la doc).
Ca n'a pas changé grand chose.
FB en question
Re: Temporisation TONR
Posté : 03 juin 2020, 14:12
par JC87
Bonjour,
Est ce qu'il y a une raison pour utiliser une TONR et pas une TON ? une TONR ça sert a accumuler du temps uniquement quand la condition IN est présente mais sans remettre le temps déjà accumulé à zéro. Dans ton cas je ne vois pas trop l’intérêt car ta variable IN reste probablement vrai tout le temps du cycle.
Sinon comme je ne vois pas d’où vient le problème, pourquoi ne pas utiliser le fait que l'OB soit cyclique pour compter toi même dans une variable statique de FB ou globale. La valeur de la tempo est en ms donc je pense qu'il y a moyen de la comparer assez simplement à ce compteur de temps. Déjà tu maitrisera mieux le comptage et ça à l’avantage d’être une méthode universelle transposable sur d'autres marque. Personnellement c'est que je faisais en Step 7 avec l'OB35 cadencé à 100ms pour centrer des palettes de manière précise sur un convoyeur avec juste une cellule en entrée.
JC