Comptage par TSX 37-22 et codeur incrémental
Patrick ABATI - 14/01/2004
Les automates 37-22 intègrent des interfaces de comptage qui permettent de réaliser des fonctions de comptage, décomptage ou comptage/décomptage à une fréquence maximale de 10 kHz. Ces interfaces de comptage, accessibles par l'utilisateur à travers 2 connecteurs SUB- D 15 points standards (CNT1 et CNT2), comportent deux voies de comptage indépendantes (voie 11 et voie 12). Pour chaque voie, le paramétrage de la fonction (comptage, décomptage ou comptage/décomptage) est réalisé par configuration logicielle.
L'essai suivant explique la mise en œuvre d'un codeur incrémental
(RI58-0-00360 EK.42KB) associé à l'automate, via le connecteur CNT1 et le module de comptage intégré à la Base.
Programme d'essai sous PL7 micro :
cahier des charges (PDF)- dossier(PDF) - programme(STX) Bibliographie:
Logiciel PL7 Micro Manuel mise en œuvre métiers tome 1 Automates TSX Micro Manuel de mise en œuvre
Liaisons entre le codeur incrémental et l'automate TSX 3722
Lancer PL7 Micro Fichier Nouveau
Processeur TSX 3722 V1.0 Aucune carte mémoire
Navigateur Application Configuration matérielle
Double clic sur comptage
Compteur 0 Comptage - MAST
Contact statique Compteur 1 Comptage - MAST
Contact statique Valider la configuration Confirmer la configuration globale
Navigateur Application Variables E/S Les adresses du type
xx0.11 et xx0.12 apparaissent dans la table des variables
Navigateur Application Configuration matérielle Double clic sur comptage
Choisir Configuration Compteur 0 Codeur incrémental
Contact statique
Choisir Réglage Choisir Mise au point
Relier le codeur
et vérifier le fonctionnement dans les deux sens de rotation
Le sens de comptage est donné par les signes + ou - Les impulsions sont comptabilisées
dans la fenêtre Mesure courante
La valeur courante du compteur peut être lue dans le mot %ID0.11 (compris entre -16 777 216 et +16 777 215)
Dans l'exemple ci-contre, la sortie Q1.1 est activée si la valeur courante
est supérieure à 5
La validation du compteur peut être effectuée par %Q0.11.0 1 : compteur validé - 0 : compteur inhibé
Dans l'exemple ci-contre
l'entrée %I1.1 active ou désactive %Q0.11.0 La détection du sens de rotation
peut être effectuée par lecture du bit %I0.11.9 Dans l'exemple ci-contre
quand le comptage s'effectue (sens +) I0.11.9 = 1 : la sortie Q2.2 est activée
La présélection du compteur à une valeur (comprise entre -16 777 216 et +16 777 215)
est faite par le mot %MD0.11.4
Dans l'exemple ci-contre la valeur de présélection est 200
Cette valeur est chargée dans la valeur courante
lors de l'activation de la sortie de présélection directe %Q0.11.1
L'écriture de la valeur du seuil 0 se fait dans le mot %MD0.11.6
(compris entre -16 777 216 et +16 777 215) Pour effectuer une comparaison
on peut utiliser l'entrée %I0.11.5 qui indique 1 si valeur du compteur >= valeur du seuil 0 0 si valeur du compteur < valeur du seuil 0
Dans l'exemple ci-contre la sortie %Q1.2 est activée si la valeur du compteur
est > ou = à la valeur du seuil 0
Le traitement événementiel permet de minimiser le temps de réaction. Il peut être assimilé au traitement sur interruption que l'on trouve au niveau processeur. A chaque voie de comptage peut être associé un traitement événementiel dont la priorité est fonction de son numéro. Lors de l'apparition de l'événement, la tâche MAST est suspendue au profit du traitement
événementiel. La mise en œuvre de ce type de traitement se déroule en 3 phases :
Phase 1
Configurer l'événement
• seuils
• consignes
• présélection Il s'agit d'associer un traitement événementiel à une voie de comptage (0) et lui affecter un numéro (0)
Phase 2
Démasquer les événements
• Au niveau système par le bit %S38 qui doit être positionné à 1
• Au niveau de la tâche Mast par l'instruction UNMASKEVT
• Au niveau de la voie de comptage par les bits de traitement des événements par exemple %QW0.11.1:X5 doit être mis à 1
(par %I1.3 dans l'exemple ci-contre)
pour démasquer l'événement franchissement seuil 0 Par la suite le bit %IW0.11.3:X5
sera testé dans la tâche EVT afin d'associer une action au franchissement seuil 0
Phase 3
Créer le programme événementiel Dans le Navigateur Application, sélectionner
Évènements Puis clic droit : Créer
Choisir le langage (LD) et donner un numéro d'événement (0)
Dans le cas où plusieurs sources d'événement sont possibles sur une voie
l'origine de l'événement doit être identifiée par le test à 1 de l'objet d'événement
Dans le programme ci-dessous la sortie %Q1.1 est activée
si le bit d'événement %IW0.11.3:X5 est à 1 (franchissement du seuil 0)
Repère Symbole standard
Signification
%IWx.i.3
:X5 THR0_EVT
Événement
franchissement seuil 0 ou valeur zéro en décomptage
%IWx.i.3
:X6 THR1_EVT
Événement
franchissement seuil 1
%IWx.i.3
:X7 HISP_EVT
Événement franchissement consigne haute
%IWx.i.3
:X8 LOSP_EVT
Événement franchissement consigne basse Dans la tâche événementielle, il faut effectuer une RAZ de l'événement qui s'est produit, afin qu'un événement du même type puisse être traité ultérieurement. Cette mise à zéro est faite automatiquement, lorsqu'un autre événement se produit.
Comparaisons disponibles en mode comptage/décomptage