Codeur angulaire

Bonjour,
J'utilise un codeur angulaire kistler (type 2614A, en pj) et une carte NI DaqMx-USB 6251.
Le codeur sort deux signaux TTL, un pour la position angulaire (1 signal tous les 0.5°) et l'autre pour le top (1 signal par tour).
Je ne parviens pas à faire fonctionner la tâche compteur/position angulaire en me connectant au PFI-8 avec le signal d'angle;
le soft (signal express) attend une entrée en PFI-10, mais elle ne correspond pas au signal de top.
Pouvez-vous m'aider?
Merci
Pièces jointes :
FicheTechnique.pdf ‏580 KB

Bonjour,
La doc de votre capteur est un peu succinte, il n'y a pas d'informations sur la connectique.
Pour ce qui est de la mesure de position, vous devriez posséder 3 signaux. Le signal du codeur que vous avez décrit, connecté sur PFI8 (Entrée A), qui permet de mesurer la position et la vitesse du système. Votre signal index, ou top tour, que vous devez brancher sur PFI9 (Entrée Z), et vous devriez avoir un signal équivalent au signal A, mais en quadrature, qui permet de déterminer la direction de rotation du système, et qui sera connecté à PFI10 (entrée B).
Vous trouverez des informations supplémentaires dans la documentation des cartes de série M, en page 7-15 et 7-30.
Cordialement,
Olivier L. | Certified LabVIEW Developer

Similar Messages

  • Peut on mettre une carte sim d un autre pays, puet on mettre une carte sim d un autre pays

    peut on mettre carte sim belge dans un iphone acheter en france

    Bonjour,
    Il est possible de mesurer une position ou une vitesse à partir d'un codeur incrémental à partir de deux méthodes. Soit en utilisant la fonction entrée compteur>>compter les fronts ou bien en utilisant la fonction entrée compteur>>codeur angulaire sous LV 8.20. Tout dépend de votre matériel est des signaux générés par votre codeur.
    Je voudrais tout d'abord savoir sous quelle forme sont vos signaux générés par votre codeur et quels sont les exemples que vous avez utilisés et qui ne fonctionnent pas avec votre matériel?
    Merci.

  • LABVIEW : Synchroniser encodeur en quadrature et entrées numériques

    Bonjour à tous,
    je cherche à acquerir de maniere synchronisé la valeur d'un codeur en quadrature (par daqMX avec en type d'entrée codeur angulaire) et des entrées TTL (tout le PORT0 d'une carte USB 6251)
    le but est de mesurer précisement la valeur du codeur à chaque changement d'état d'une des entrées (le temps de scrutation doit etre inférieur à la milliseconde).
    Seulement, je ne sais pas à partir de quoi synchroniser les entrées. Avec l'horloge de cadencement, je ne trouve pas d'option correspondant à mes besoins.
    Auriez vous une idée de comment je dois faire ?
    Merci d'avance!
    p.s : (je possède labview version 8.2)

    Bonjour
    Merci pour l'information, et désolé pour le retard j'etais sur un autre sujet.
    Mon probleme et que je n'arrive pas à trouver de source compatible pour cadencer l'entrée compteur (mesure d'angle par encodeur en quadrature).
    Mon but étant de réaliser le plus simplement possible,  l'acquisition d'un port digital (port 0)  de maniere syncrhonisé avec la valeur de la position angulaire. (le tout dans une boucle tournant le plus vite possible).
    Peut etre n'est il pas possible de synchroniser une entrée compteur avec des entrées digitales ? (la carte utilisée : USB-6251 et version de labview 8.2).
    pour le moment je me contente d'acquérir les deux informations de maniere non synchronisé, mais cela ne peut pas convenir à mon besoin.
    je joins le vi (tres simple) que j'utilise pour le moment.
    Merci d'avance!
    Pièces jointes :
    compteur.JPG ‏50 KB
    compteur.vi ‏37 KB

  • Synchroniser encodeur en quadrature et entrées numériques

    Bonjour à tous,
    je cherche à acquerir de maniere synchronisé la valeur d'un codeur en quadrature (par daqMX avec en type d'entrée codeur angulaire) et des entrées TTL (tout le PORT0 d'une carte USB 6251)
    le but est de mesurer précisement la valeur du codeur à chaque changement d'état d'une des entrées (le temps de scrutation doit etre inférieur à la milliseconde).
    Seulement, je ne sais pas à partir de quoi synchroniser les entrées. Avec l'horloge de cadencement, je ne trouve pas d'option correspondant à mes besoins.
    Auriez vous une idée de comment je dois faire ?
    Merci d'avance!
    p.s : (je possède labview version 8.2)

    Bonjour
    Merci pour l'information, et désolé pour le retard j'etais sur un autre sujet.
    Mon probleme et que je n'arrive pas à trouver de source compatible pour cadencer l'entrée compteur (mesure d'angle par encodeur en quadrature).
    Mon but étant de réaliser le plus simplement possible,  l'acquisition d'un port digital (port 0)  de maniere syncrhonisé avec la valeur de la position angulaire. (le tout dans une boucle tournant le plus vite possible).
    Peut etre n'est il pas possible de synchroniser une entrée compteur avec des entrées digitales ? (la carte utilisée : USB-6251 et version de labview 8.2).
    pour le moment je me contente d'acquérir les deux informations de maniere non synchronisé, mais cela ne peut pas convenir à mon besoin.
    je joins le vi (tres simple) que j'utilise pour le moment.
    Merci d'avance!
    Pièces jointes :
    compteur.JPG ‏50 KB
    compteur.vi ‏37 KB

  • Transfert de données sous excel

    Bonjour,
    Je réalise des acquisitions de données (signaux de plusieurs codeurs angulaires) grâce à Labview. J'aimerais pourvoir transférer ces données dans Excel (dans un modèle par exemple) afin de pouvoir les traiter et les analyser.
    Pourriez vous m'indiquer la procédure à suivre et/ou les VI exemples à utiliser, pour réaliser cette action ?
    Cordialement
    Julie

    Ouai bon, en fait, je crois que ça va pas trop te servir la librairie que je t'ai envoyée.
    bon si tu a trouvé le vi "Write table to Xl.vi" tu devrais t'en sortir.
    En gros y'a un premier vi qui sert à ouvrir Excel (si tu veux pas que Excel soit visible y'en un boolean pour ça)
    Puis un autre pour créer un fichier Excel et enfin un autre pour créer
    un onglet dans ce fichier. (si tu veux écrire des résultats dans
    plusieurs onglets sous excel c'est possible d'ailleurs).
    Tu remarquera qu'il y a 2 boucles For (label row et label columm) elle
    servent à écrire les entêtes de la table que tu veux écrire. mais si tu
    veux ecrire une table qui n'a pas d'entête tu peux supprimer ces 2
    boucles.
    Le truc c'est que tu écris une table de caractères donc si tes mesures
    c'est un tableau numérique, faut le convertir en caratères avant.
    Ce vi sert si tu écris une table en un seul coup. (Genre toutes tes
    mesures sont dans un tableau) Mais si tu veux ecrire dans Excel à
    chaque fois que tu a une mesure, là il faut bidouiller le Vi.
    Si t'as besoin d'aide demande.
    Le programme que j'ai fait, c'est un programme qui effectuent des
    mesures sur 16 voies d'un multimetre et qui stock ces mesures dans
    Excel toutes les 5 secondes. A la fin ça donne un fichier Excel (en
    piece jointe)
    Attachments:
    Fichier_resultats.xls ‏527 KB

  • Ondulation mesure tension

    Bonjour,
    Je développe acutellement un banc mésurant différentes grandeurs physiques avec un cDaq :
    Slot 1 il y a 1 module NI9215 ---> Mesures de tensions AC.
    Slot 2 il y a 1 module NI9215 ---> Mesures de tensions AC.
    Slot 3 il y a 1 module NI9215 ---> Mesures de tensions AC.
    Slot 4 il y a 1 module NI9215 ---> Mesures de tensions AC.
    Slot 5 il y a 1 module NI9263 ---> Générations d'un sinusoïde à 7V 2KHz et une autre à 3,6V 4KHz.
    Slot 6 il y a 1 module NI9401 ---> Mesures d'un codeur linéaire et un codeur angulaire. 
    Slot 7 il y a 1 module NI9237 ---> Mesures d'un capteur d'effort et d'un capteur de couple.
    Mon probleme est que j'observe une ondulation sur ma mesure éfficace des tensions à 4kHz.
    Après une longue recherche, j'ai réussi à faire disparaitre ces ondulations en méttant le module NI9237 sur un autre chassis cDaq tout seul. Car ce module tourne qu'à 50Khz contre 100Khz pour les autres.
    Je ne comprend pas pourquoi je ne peux pas laisser ce module sur mon chassis d'origine tout en tournant qu'à 50Khz.
    De plus, c'est ondulations n'apparaisse pas sur un multimetre 6 digits.

    Bonjour Yacine,
    Vous postez actuellement sur la partie Anglaise du Forum. Vous pouvez continuer sur ce post, où vous aurez plus de réponses, mais dans ce cas il faudra écrire vos questions en anglais.
    Si vous souhaitez continuer en français, je vous invite à poster sur la Communauté française du Forum.
    Merci
    Pour le problème d'ondulation, il est possible que le problème ne vienne pas de la génération, mais plutôt de la mesure. en effet, sur le cDAQ, vous ne disposez que d'un moteur de cadencement AI, du coup, étant donné qu'un de vos modules ne va pas à la même vitesse que les autres, il se peut qu'il perturbe les mesures, et le cadencement.
    Je vous invite à poster sur le forum francais et donner plus de détails sur cette ondulation, pour que l'on puisse vous aider.
    Cordialement,
    Olivier L. | Certified LabVIEW Developer

  • Synchronisation de l'acquisition de signaux analogique par un codeur incrémental

    Bonjour,
    Pour mon stage, je dois réaliser un VI par le biais de LabVIEW. Ce VI sera utilisé dans de le cadre de la caractérisation de moteur électrique.
    J'ai à ma disposition un cDAQ-9174 avec 2 modules qui sont : 9215 pour les signaux analogiques et 9411 pour les signaux numériques.
    On me demande de faire l'acquisition de signaux analogique comme un capteur de couple, une sonde à effet hall, ... en fonction de la position angulaire du moteur. Pour déterminer cette dernière, j'ai un codeur incrémental avec une résolution de 5000 point sachant qu'il possède une voie A, B et un index de position.
    Pour le moment, je suis parvenu à réaliser un projet permettant de mettre la position angulaire et la valeur de la tension du capteur dans un tableau pour chaque position différente. Je rencontre un problème qui est que je n'ai aucun contrôle sur l'échantillonnage. En effet, je n'ai pas un pas angulaire constant. Si l'utilisateur fait tourner le moteur très lentement, on arrive à avoir un échantillon tous les 0.018°, mais s'il tourne à une vitesse d'environ 15s/tour, il se peut que l'on ait des échantillons tous les degrés.
    J'aimerai faire une acquisition de mes signaux analogiques à chaque nouveaux angles avec une résolution angulaire choisit par l'utilisateur.
    J'ai mis une pièce jointe montant mon VI réalisé.
    En vous remerciant par avance
    Cordialement
    Pièces jointes :
    VI.jpg ‏135 KB

    Je n'ai pas beaucoup de temps en ce moment pour entrer dans tous les détails mais le principe consiste à utiliser le codeur pour déclencher les acquisitions de manière matérielle.
    Cela revient à dire qu'un échantillon de chaque signal AI et un échantillon de position est lu à chaque changement d'état de ce signal de déclenchement.
    Dans les exemples s'installant avec LabVIEW, vous trouverez des VIs montrant comment procéder pour une acquisition déclenchée par un signal externe.
    Si la résolution de 5000 impulsions/tour du codeur est suffisante, il vous suffit d'utiliser le signal A (ou B) du codeur en l'adaptant si nécessaire pour les niveaux TTL de la NI-9215. En utilisant un LS7184 configuré en mode X4, cette résolution pourrait être facilement multipliée par 4 en ajoutant de plus un filtrage hardware pour éliminer les éventuels parasites sur les signaux.
    C'est un principe que j'applique fréquemment avec les cartes DAQ multifonctions PCI. Il faudrait toutefois encore vérifier que le déclenchement externe est supporté par les deux modules que vous utilisez; vérification que je n'ai pas le temps de faire.

  • Problème acquisition codeur incrémental

    Bonjour,
    Nous sommes actuellement en train de réaliser un projet d'asservissement numérique de position d'un moteur MCC.
    Nous avons deux soucis majeurs sur notre programme:
    - Afin de mettre le moteur en marche, il nous faut appuyer sur 'Enable drive' et activer 'Ordre moteur' jusqu'ici tout va bien mais en plus de cela nous sommes obligé d'appuyer sur le bouton 'Stop' et cela n'est pas normal.
    - Nous avons 3 voyants nous donnant la position (codeur phase A, B et Z). A vitesse élevée du moteur, le programme temps réel n'arrive pas à suivre et donc les voyants ne s'allument pas au bon moment. Le problème c'est que même à vitesse très réduite (en tournant le moteur manuellement) nous avons exactement le même souci.
    Comment pouvons nous remédier à ces problèmes ?
    Nous avons essayer au préalable de regarder les exemples disponibles sur Labview mais pas de réponses à nos questions.
    Matériel utilisé:
    - Labview 2011
    - Module cRIO NI 9075
    - DC Brushed Servo Drive NI 9505
    - Codeur incrémental HEDS-5540 A13
    Ci-joint vous trouverez le projet réalisé.
    Cordialement,
    Pièces jointes :
    essai2.lvproj ‏61 KB

    Bonjour fredou29,
    Merci d'avoir posté sur le forum de NI.
    En tout premier lieu, le .lvproj "n'est qu'un" fichier xml qui décrit votre projet LabVIEW que vous êtes en train de créer. Du coup il n'y a pas de source. N'hésitez pas à faire un zip de tout votre projet afin que la communauté puisse vous venir en aide .
    Bonne journée
    Flo
    Open Diagram First

  • Comptage impulsion codeur incrémenta​l

    Bonjour,
    Je vous explique mon application:
    Je souhaite compter le nb d'impulsion d'un codeur incrémental de la marque BAUMER afin d'en déduire un signal 0-10V proportionnel à la vitesse d'un moteur.
    Données techniques:
    Codeur incrémental 1024 Pts/tour
    Sortie TTL 0-5V
    Vitesse max 60tr/min  donc fmax= 1024Hz
    Matériels utilisés:
    NI cDAQ 9174
    Carte de comptage NI 9421
    Carte sorties analogiques NI 9263
    Labview 2011 11.0
    Problèmes rencontrés:
    Sur ma face du programme Labview j'ai mis un graphe en sortie du bloc fonction DAQ ou je souhaite mesurer la fréquence des impulsions du codeur afin d'en déduire la vitesse. Quand je lance l'application et tourne le codeur je n'obtiens rien du tout.....
    La led "Active" du NI DAQ ne s'allume pas est-ce un problème? La led de ma voie de comptage ne s'allume pas non plus.
    J'ai pensé à un problème de câblage, j'ai donc branché directement en sortie du codeur un voltmètre. En tournant doucement le codeur je vois bien la sortie passer successivement de 0V à 5V.
    Je vous joins des photos de mon banc, le bout de programme et le schéma de câblage.
    J'espère que quelqu'un pourra m'apporter une aide...
    Merci par avance
    Christophe
    Pièces jointes :
    Comptage_codeur_incremental.zip ‏1983 KB

    bonjour,
    normalement la led active de la carte d'acquisition doit être allumé en fonctionnement. utiliser MAX pour vérifier si votre carte est bien détecté.
    ensuite vous pouvez avoir un problème de cablage si les fils sont serré sur la gaine et non sur les brins (coté matériel
    NI).
    Les assistant DAQ sont pratique pour ceux qui débute, mais pas toujours pratique. essayé de les évité aux maximum. il faut connecté le nom du périphérique en entrée de votre assistant. n'hésité pas à utiliser la sortie d'erreur qui vous permettra de débugger votre soft et de demander du support technique.
    Cordialement
    L.MICOU

  • 9401 sur cDAQ9178 acquisition de 2 codeurs

    Bonjour,
    J'ai un problème pour faire deux acquisitions bufferisées sur une carte NI9401 montée dans un cDAQ9178.
    Si j'essaye de faire une tache (dans MAX) avec ctr0 et ctr1 de la 9401, j'ai un message qui me dit que je ne peux avoir seulement un compteur par tache.
    Si je fais deux taches, à l'exécution de LabVIEW j'ai le message:
    L'erreur -201133 s'est produite à : DAQmx Start Task.vi:10
    Raisons possibles :
    Le périphérique ne peut pas être configuré en entrée ou en sortie car des lignes ou des terminaux qui lui sont connectés sont utilisés par une autre tâche ou une autre connexion. Cette opération nécessite que toutes les lignes et tous les terminaux soient temporairement réservés à la communication, ce qui interfère avec l'autre tâche ou connexion.
    Si possible, utilisez DAQmx - Contrôler une tâche pour réserver toutes les tâches qui utilisent ce périphérique avant de programmer ces tâches. Sinon, libérez ou déprogrammez l'autre tâche ou débranchez l'autre connexion avant d'essayer de configurer le périphérique en entrée ou sortie.
    Périphérique: E_COMPTAGE
    Port numérique: 0
    Lignes: 4, 6
    Nom de tâche : _unnamedTask<2C> 
    En conclusion: Peut-on faire une acquisition continue et simultanée de deux codeurs sur la même 9401.
    Merci pour votre aide. 
    Solved!
    Go to Solution.

    Translation from french 
    I have a problem to make two acquisitions buffered on a card mounted in a cDAQ9178 NI9401.
    If I try to do a task (in MAX) with ctr0 and ctr1 of 9401, I have a message that says I can have only one meter per spot.
    If I do two tasks, implementation of LabVIEW I have the message:
    Error -201133 occurred at: DAQmx Start Task.vi: 10
    Possible reasons:
    The
    device can be configured as input or output lines or terminals
    connected to it are used by another task or another connection. This
    requires that all lines and all terminals are temporarily reserved for
    communication, which interferes with the other task or login.
    If possible, use DAQmx - Securing a job to book all tasks that use this device before programming these tasks. Otherwise,
    release or deprogram the other task or disconnect the other connection
    before you try to configure the device input or output.
    Device: E_COMPTAGE
    Digital Port: 0
    Lines: 4, 6
    Task Name: _unnamedTask <2C>
    In conclusion: Can we make a continuous and simultaneous acquisition of two coders on the same 9401.
    Thank you for your help

  • Comptage de points codeur

    Bonjour,
    j'ai un soucis avec le comptage de points d'un codeur 1024pt/tr dans MAX.
    celui-ci est monté sur l'axe moteur d'un tour. J'avais des parasites sur les sorties 1024pt et top tour, j'ai donc complètement isolé le codeur du tour car cela semblait venir d'un bouclage terre-masse (la terre n'étant vraiment pas terrible...).
    L'isolation apportait beaucoup et pour complétement résoudre le problème j'ai ajouté en série sur les deux fils top tour et 1024pt une résistance d' 1 kohm. Résultat plus de parasites.
    Seulement voilà maintenant MAX compte en gros 1600 pt / tour.
    j'ai vérifié à l'oscillo la différence entre mes crénaux codeur avec et sans réistance résultats ils sont en phase donc je ne vois pas pouquoi MAX en compte plus... au niveau de l'amplitude mes crénaux passent de 5.5V à 4.8v environ ce qui est largement au dessus de mon matériel qui lui déclenche un compte à 2.5v.
    j'ai essayé de mettre une résistance très faible denviron 30 ohms, il compte là 1060pt et je suis de nouveau ennuyé par les parasites...
    avez-vous des idées?
    par avance merci!

    Bonjour,
    J'ai également du mal à voir d'où vient ce problème.
    Dans votre premier post vous disiez avoir un problème masse-terre, comment avez-vous éliminé ce problème ? Avez-vous relié la masse de l'alimentation de votre capteur à une entrée GND de votre carte ?
    Mathieu P. | Certified LabVIEW Associate Developer
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Journées techniques : des fondamentaux aux dernières technologies pour la mesure et le contrôle/comm...

  • Comment utiliser un codeur avec une carte serie E et Visual Basic

    je dois acquerir les donnees venant d'un codeur incremental sur ma carte serie E et grace a un programme VB. Comment puis-je faire.
    Merci.

    Desole, je ne parle pas francais bien. Vous devriez avoir des exemples pour l'usage du dispositif de l'E-serie DAQ en Visual Basic dans le repertoire \Program Files\National Instruments\NI-DAQ\Examples.
    Chris Matthews
    National Instruments

  • Mesure de vitesse avec un codeur incrémental

    Bonjour,
    Je souhaite mesurer la vitesse de rotation d'un moteur sur lequel il y a un codeur incrémental HEDS 5540 (3 canaux, 500 impulsions par tour) à l'aide de LabView 8.6 et d'un banc NI cDAQ-9172.
    J'ai câblé les fils de mon codeur sur une carte NI9401.
    Avec l'assistant DAQ, j'ai fait Acquérir des signaux -> Entrée numérique -> Entrée de ligne et j'ai sélectionné : cDAQ1Mod1/port0/line0 à 3.
    Sur ma face-avant j'ai 3 leds (voie A, voie B et voie I) qui s'allument ou s'éteignent en fonction de la rotation de l'arbre du moteur.
    Ma question est : comment mesurer (ou calculer) la vitesse de rotation de l'arbre ?
    Codeur HEDS 5540 : datasheet et data sheet 2
    Mezrci d'avance !

    tu as répondu à ce post dans celui-ci
    Temps entre 2 changement​s d'états
    non ??
    Luc Desruelle | Voir mon profil | LabVIEW Code & blog
    Co-auteur livre LabVIEW : Programmation et applications
    CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
    CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

  • Filtrer un signal Codeur 5V TTL sur une cible FPGA

         Bonjour,
    Je dispose d'un cRio muni d'un slot NI9411 sur la cible FPGA.
    Un codeur 5V TTL est connecté dessus en single ended.
    Je dispose donc seulement des signaux A et B en quadrature.
    Est-il possible de filtrer ces signaux, car j'ai des perturbation dessus. (voir image ci-desous)
    Je connais la fréquence maximale des signaux.
      Julien

    Bonjour,
    Vous avez un exemple typique ici qui est compatible avec votre module cRIO :
    Digital Debounce Filter.
    Cordialement,
    Da Helmut

  • Comptage front codeur ni6211

    Bonjour
    je cherche à faire l'acquisition et le comptage des fronts montant délivré par un codeur de volant de jeu vidéo ( obtenir l'angle et le sens de rotation)
    Avec la carte oscillo et aussi une carte ni6211, j'arrive à acquérir le signal mais je n'arrive pas à effectuer le comptage: j'ai un décompte mais très farfelu.
    Existe-t-il des applications qui permettent de réaliser ceci ou un programme..
    Voilà un des programmes que j'ai réalisé en simulation qui fonctionne dans une certaine mesure mais qui ne débouche sur rien quand je veux acquérir un vrai signal.
    ChF
    Pièces jointes :
    Simulation Codeur volant.vi ‏96 KB

    Bonjour,
    la carte USB 6211 intègre deux compteurs que vous pouvez configurer pour faire du comptage. Je vous adresse en pièce jointe un exemple.
    N'hésitez pas à consulter ce document sur la mesure d'encodeur :
    http://www.ni.com/white-paper/7109/fr/
    Il explique comment utiliser les compteurs pour faire de la mesure d'encodeur.
    Cordialement
    Guillaume D
    Pièces jointes :
    exemple compteur .vi ‏53 KB

Maybe you are looking for

  • Looking for a photo app...

    I'm going on a trip and I am looking for a photo app where I can take a picture and upload it to the web from my phone so my friends can view the pictures on a map. Does an app like this exist?

  • How to get the current selected value of a combo box or a option button?

    Hello All, I want to catch the current selected value of a combo box and also of a option button and want save it into different variables in my code. These option button and combo box are in a SAP business one form which I have created through VB do

  • Problems within VL10b (delivery is NOT created)

    Hi guys, I'm experiencing problems within VL10b. I created a cross-company purchase order with all the necessary data. If I open VL10b and select the order (by date or order number... both works) it is shown just fine. BUT when I click the button for

  • How to ping mysql database in JSP

    Hi guys, I am working on a JSP based application that sends data over to a remote mysql databse over port 5656 . I am intrested in writing a code sequence in JSP that will first check whether the remote mysql databse is working or not. If not, Then t

  • I am having to reset my icloud password every few days

    I have had this recurrent problem over the last 2 - 3 weeks.  Every few days I find that Mail won't log in to my .mac account and tells me to reset my password. When I go to the reset page it tells me my password has been locked 'for security reasons