Programmation PL7 pro carte comptage rapide

Fermé
Mantis78 Messages postés 7 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 18 juin 2008 - 28 mai 2008 à 14:50
Mantis78 Messages postés 7 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 18 juin 2008 - 18 juin 2008 à 13:54
Bonjour,

Je viens ici chercher de l'aide car je m'occupe d'un projet pour ma 2ème année de BTS sur lequèl je dois faire de la programmation sous pl7 pro.

Je m'explique : Je dois pouvoir afficher la vitesse d'un arbre moteur (1500tr/min max, 2 sens de rotation) sur un écran Magélis grâce à un codeur de 1024 point par tour (modèle RI58-D/1024ED.371B ).
L'API utilisé est un TSX 3722 avec en plus une carte de comtage rapide TSX CTZ 2AA car l'API ne peut compter une fréquence aussi élevée (f = 25,6 Khz pour 1500 tr/min).

Comme c'est la première fois que je touche à PL7 pro je viens ici vous demander de l'aide pour m'aider à trouver où que se soit le moyen de réussir cette partie de mon projet.

Merci d'avance
A voir également:

5 réponses

bigburns Messages postés 20 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 août 2008 15
4 juin 2008 à 13:50
Là pour résoudre ton problème, tu n’as pas le choix,
étant donné que ta carte n’accepte que 500KHz.
La seule solution est de prendre un codeur ne dépassant
pas 200 points par tour.

Pourquoi veux-tu mettre un codeur 1024 points ?
2
Mantis78 Messages postés 7 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 18 juin 2008
4 juin 2008 à 13:57
Salut,

Le codeur que j'ai m'a été imposé, la carte de comtage rapide aussi, d'ailleur tu en est sûre qu'elle accepte que 500KHz? C'est pas plutôt qu'elle accepte jusqu'a 500KHz?
Moi mon plus gros soucis c'est surtout la programmation :-(

Merci
0
bigburns Messages postés 20 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 août 2008 15
16 juin 2008 à 15:08
Je ne sais pas ou tu as trouvé %ID3.11.0 ?

Essai plutôt:
%ID3.0 si codeur sur la voix 0 ou
%ID3.1 si codeur sur la voix 1 

Ton principe de calcul est bon, a condition que ton étape X14 dure 
un seul cycle de scrutation.
Car si non, tu vas faire ton calcul tant que %S6 seras égal à 1 sois pendant
0,5s. Ta valeur seras toujours en mouvement. Comme le magélis ira 
chercher cette valeur en arrière plan, tu ne peut pas savoir à quel moment.
Donc ça affichera n'importe quoi.

Je ne comprend pas ton %MW24 afficheur magélis.

Quand tu paramètres le magélis tu crées une table de dialogue.
Exemple

Paramètre dans le magélis.
%MW20 = Numéro de page affichée XBT ->API
%MW21= Page à traiter  XBT <-> API
%MW22= Table d'alarme XBT <- API

Dans l'automate tu as juste à mettre dans %MW21, le numéro
de la page ou il y a le message qui contient ta variable de vitesse (%MD2),
et ça se lit automatiquement.

Pour ton calcul, utilise plutôt un double mot. Car ce n'est pas une calculatrice
il ne va pas te dire si il y a un débordement et tu auras n'importe quoi. 

A savoir que si tu utilise %MD2, ça donne %MW2 = poids faible de %ID2
                                          %MW3 =   "   fort de %ID2

Si tu as juste à afficher la vitesse, pourquoi faire un grafcet?
2
Mantis78 Messages postés 7 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 18 juin 2008
16 juin 2008 à 16:46
J'ai essayé %ID3.0 est sa marche.

En faite j'utilise le grafcet juste pour le démarrage de mon moteur, et %X14 correspond à l'étape où il démarre.
Pour le Magélis tu as effectivement raison %MW24 n'a rien à faire là, je prendrais %MD2.

Pour le cacul de %S6 je voulais que l'automate compte pendant 0,5 ou 1 s mais recommence quand il a finit, comme ça j'aurais un rafraichissement de la vitesse assé bon.Donc si j'ai bien compris là il risque de compter encore et encore ?
0
bigburns Messages postés 20 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 août 2008 15
4 juin 2008 à 18:54
Oui c’est bien jusqu'à 500KHz .

Excuse moi, mais j’ai fait une erreur de calcul, ta carte de comptage
suffit largement. Puisqu’elle accepte 500000 imp/s
et que le codeur en donnera 25600 imp/s pour 1500tr/min

Pour transformer des impulsions codeur en vitesse, il
te suffit de prendre le bit système %S6 qui a une base de
temp d'une seconde entre deux fronts montants.
 
Tu mes une valeur de présélection codeur 0.

-Front montant %S6 
        valide le bit de présélection pour avoir la valeur courante du codeur = 0

-Front descendant %S6, 
        charge valeur codeur %IDx.0 dans %MD1
        suivant le sens de rotation, %MD1 sera positif ou négatif 
        si négatif tu *-1 

        A partir de la, tu connais le nombres d’impulsions en 0,5s
        Ensuite il te reste plus qu’à convertir en tr/min, que tu place dans %MD2

Dans l’afficheur il te suffit de récupéré %MD2.
1
Mantis78 Messages postés 7 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 18 juin 2008
5 juin 2008 à 17:37
Une réponse comme ça sa fait plaisir, demain matin j'attaque PL7 pro ^^


Merci beaucoup bigburns
0
Mantis78 Messages postés 7 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 18 juin 2008
9 juin 2008 à 14:00
J'ai travaillé dessus aujourd'hui et j'ai eu quelques soucis de compréhension.

Pour la valeur de présélection codeur je l'ai mis à 0, par contre après pour le front montant %S6 je sais pas où es qu'on valide la valeur courante du codeur.
Pour le front descendant c'est pareil je sais pas où es qu'on chage la valeur du codeur %IDx.0 dans %MD1.
0
bigburns Messages postés 20 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 août 2008 15
16 juin 2008 à 10:15
En voulant rajouter un deuxième ordinateur chez moi en réseaux
j'ai mis là pagaille, et je n'avais plus de connection. Mais bon,
me revoila. 

Dans le préliminaire:

	-Transformer le bit système %S6 en bit interne (pour permettre d'utiliser les fronts)
	-Validation carte comptage
	-Si mesure invalide (%Iwx.i.2:X7) charge la valeur présélection sur front %S5 base de temp de 100ms
	-Charge sur front montant %S6 la valeur de présélection
	-Charge valeur codeur sur front descendant %S6 dans %MD1
	-Calcul

Exemple:
à savoir que x = position rack dans l'automate
             i = voie du codeur ( 0 ou 1 )

    %S6
|---| |------------------------------------------------------(%M6)-|

|----------------------------------------------------------(%Qx.i)-|

 %IWx.i.2:X7       %S5
|----| |-----------| |---+-------------------------------(%Qx.i.1)-|
|    %M6                 |
|----|P|-----------------+


   %M6                                                 opération
|--|N|-----+----------------------------------------[%MD1:=%IDx.i]-|
           |    comp                                 opération
           +--[%MD1<0]-----------------------------[%MD1:=%MD1*-1]-|   


Pour le calcul sachant que tu as 25600 imp/s pour 1500 tr/min, pour une base
de temp d'une seconde. Comme dans l'exemple on n'est en base de temp de
0,5s on aura donc 12800 imp  pour 1500 tr/min. Ensuite il suffit de faire la
règle de trois, mais pour éviter les débordements de calculs 12800 ==> 128
1500 ==> 15
Ce qui donne:
                                                  opération
|------------------------------------------[ %MD2:=(%MD1*15)/128 ]-|


Pour l'afficheur tu mes ajouter un champ et tu places la variable %MD2 et voilà.

Il faut savoir que là, je te propose une solution, et non là solution.
Car chaques programmeurs à ses astuces.<code>
</code>
1
Mantis78 Messages postés 7 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 18 juin 2008
16 juin 2008 à 13:31
Salut,

Merci de ta réponse c'est beaucoup plus clair.

Finalement moi j'avais pencé programmer ceci :

%X14 %M6 opération
|--| |-----------| |------------------------------------[%MW24:=(%ID3.11.0*1500)/6400]---|

%X14 correspond à l'étape du grafcet où la vitesse doit apparaître.
%MW24 correspond à l'afficheur de la Magélis.
ID3.11.0 correspond à la variable d'entré des signaux du codeur, mais même comme ça pl7 pro ne veut pas me le valider pourtant j'ai mis le bon rack (3) et .11.0 est écrit dans l'aide de PL7...
Puis pour la formule j'ai fait la régle de 3.
Pour le réglage j'ai mis juste comptage car s'il compte uniquement, le sens de rotation importera peu du moment qu'il y a les fronts montant.

Mon prof m'a dit que sa convenais mais comme il a vérifié en vitesse je doute un peu...

Tu en pense quoi?

Je vais bien étudié ta proposition car demain je passe l'oral et je vais essayer de finir cette partie :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bigburns Messages postés 20 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 août 2008 15
17 juin 2008 à 08:27
Non le problème n'est pas là.

   Comme il te faut 0,5s pour connaître la vitesse du moteur,
et que dans ton exemple %MD2 va varier pendant 0,5s.
   Et que tu ne peux  pas savoir à quel moment le magélis va la prendre.
Ta valeur affiché sera aléatoire. 

Dans ce cas il faut obligatoirement utiliser un front.
Apparemment tu es fâchés avec les fronts !!!

 Exemple:

   %S6
|--| |-----------------------------------------------------(%M6)-|


      %M6          %X14    
|--| P ou N |-------| |-------------[ %MD2:=(%ID3.0*1500)/6400 ]-|

  Tant que l'étape X14 est active le calcul se fera.
Donc rafraîchissement toutes les secondes dans le TSX.
  Le magélis lui à un rafraîchissement d'environ toutes les secondes
donc ça ne sert à rien d'allé plus vite.

  J'ai mis M6 front montant ou descendent car je ne
sais pas à quel moment, tu charges la valeur de présélection.

Attention, elle doit être rechargée à chaque fronts.
1
Mantis78 Messages postés 7 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 18 juin 2008
18 juin 2008 à 13:54
Ha oui moi et les fronts montant ça fait deux... :-)

Je voulais énormément te remercier Bigburns car j'ai passé mon oral est grâce à tes conseils et remarques je n'ai pas eu de soucis devant le jury.
Malgré que j'ai pas pus faire marché le mode magélis car l'API déconnait, j'ai pus expliqué le fonctionnement via PL7 pro.
En tout cas je suis très content qu'au dernier moment, quelqu'un comme toi m'aide sur le codeur.

Merci encore !!

Cordialement,
Alex
0