Dynamiques de changement coordonnée de mouvement (MCCD)
Ces informations s’appliquent aux automates
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 et ControlLogix 5590.
IMPORTANT:
Les étiquettes utilisées pour l'attribut de contrôle du mouvement des instructions ne doivent être utilisées qu'une seule fois. La réutilisation de l'étiquette de contrôle de mouvement dans d'autres instructions peut provoquer une opération inattendue. Cela peut entraîner des dommages à l'équipement ou des blessures corporelles.
IMPORTANT:
Risque de dépassement de la vitesse et/ou de la position d’extrémité
Si vous modifiez les paramètres de manière dynamique selon une méthode, c'est-à-dire en modifiant la dynamique du mouvement (MCD ou MCCD) ou en démarrant une nouvelle instruction avant que l'instruction précédente soit terminée, soyez conscient du risque de dépassement de la vitesse et/ou de la position d'extrémité.
Un profil de vitesse trapézoïdal peut être sujet à un dépassement si la décélération maximale est diminuée pendant que le mouvement décélère ou se trouve proche du point de décélération.
Un profil de vitesse de courbe en S peut être dépassé si :
la décélération maximale est diminuée pendant que le mouvement décélère ou trouve proche du point de décélération, ou si
Le jerk d’accélération maximal est diminué et l’axe accélère. Gardez toutefois à l'esprit que le jerk peut être modifié de manière indirecte s'il est spécifié en pourcentage du temps
Architecture | Standard | Sécurité |
|---|---|---|
Automates CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 et GuardLogix 5570 | Oui | Non |
Les automates Compact GuardLogix 5380, CompactLogix 5380, ControlLogix 5580, GuardLogix 5580 et ControlLogix 5590 | Oui | Non |
Il s’agit d’une instruction de transition. Suivez ces étapes lors de son utilisation :
- Dans la logique à relais, insérez une instruction pour faire basculer la condition d’entrée d’échelon de false à true à chaque exécution de l'instruction.
- Dans une routine de texte structuré, insérez une condition pour que l’instruction provoque son exécution uniquement lors d’une transition.
Langues disponibles
Diagramme à relais

Bloc fonctionnel
Cette instruction n'est pas disponible dans le bloc fonctionnel.
Texte structuré
MCCD(CoordinateSystem, MotionControl, MotionType, ChangeSpeed, Speed, SpeedUnits, ChangeAccel, AccelRate, AccelUnits, ChangeDecel, DecelRate, DecelUnits, ChangeAccelJerk, AccelJerk, ChangeDecelJerk, DecelJerk, JerkUnits, Scope);
Opérandes
Il existe des règles de conversion de données pour les types de données mixtes dans une instruction. Reportez-vous à la section Conversions de données.
Entrées
Ce tableau explique les entrées d'instructions.
Opérande | Type | Format | Description |
|---|---|---|---|
Coordinate System | COORDINATE_SYSTEM | balise | Groupe coordonné d'axes. Pour les automates qui prennent en charge les types de données de mouvement REF_TO, le type d’opérande du système de coordonnées peut être remplacé par le type REF_TO_COORDINATE_SYSTEM. |
Motion Control | MOTION_INSTRUCTION | balise | Structure utilisée pour accéder aux paramètres d’état de l’instruction. |
Motion Type | DINT | immédiat | 1 = Mouvement coordonné |
Change Speed | DINT | immédiat | 0 = Non 1 = Oui |
Speed | SINT, INT, DINT ou REAL | immédiat balise | [unités des coordonnées] |
Speed Units | DINT | immédiat | 0 = unités par seconde 1 = % du maximum 4 = unités par unité maître |
Change Accel | DINT | immédiat | 0 = Non 1 = Oui |
Accel Rate | SINT, INT, DINT ou REAL | balise immédiate | [unités des coordonnées] |
Accel Units | DINT | immédiat | 0 = unités par seconde 2 1 = % du maximum 4 = unités par MasterUnit 2 |
Change Decel | DINT | immédiat | 0 = Non 1 = Oui |
Decel Rate | SINT, INT, DINT ou REAL | balise immédiate | [unités des coordonnées] |
Decel Units | DINT | immédiat | 0 = unités par seconde 2 1 = % du maximum 4 = unités par MasterUnit 2 |
Change Accel Jerk | DINT | immédiat | 0 = Non 1 = Oui |
Accel Jerk | SINT, INT, DINT ou REAL | balise immédiate | Vous devez toujours entrer une valeur pour l’opérande Jerk d’accélération. Cette instruction utilise uniquement la valeur si le Profil est configuré comme une courbe en S. Jerk d’accélération est la vitesse du jerk d’accélération pour ce système de coordonnées. Utilisez ces valeurs pour démarrer. Accel Jerk = 100 (% du temps) Unités de jerk = 2 |
Change Decel Jerk | DINT | immédiat | 0 = Non 1 = Oui |
Decel Jerk | SINT, INT, DINT ou REAL | balise immédiate | Vous devez toujours entrer une valeur pour l’opérande Jerk de décélération. Cette instruction utilise uniquement la valeur si le Profil est configuré comme une courbe en S. Le Jerk de décélération est la vitesse du jerk de décélération pour ce système de coordonnées. Utilisez ces valeurs pour démarrer. Decel Jerk = 100 (% du temps) Unités de jerk = 2 |
Jerk Units | DINT | immédiat | 0 = unités par sec 3 1 = % du maximum 2 = % du temps (utilisez cette valeur pour démarrer) 4 = Unités par MasterUnit 3 6 = % de temps piloté par le maître |
Scope | DINT | immédiat | 0 = Mouvement actif 1 = Mouvement actif et en attente |
Texte structuré
Lorsque vous saisissez des énumérations pour la valeur de l'opérande dans le texte structuré, les énumérations de mots multiples doivent être saisies sans espace. Par exemple : lors de l’entrée des Unités de décélération, la valeur doit être entrée sous la forme unitésparsec
2
plutôt que sous la forme unités par Sec2
, comme affiché dans le diagramme logique à relais.Reportez-vous à Syntaxe du texte structuré pour plus d’informations concernant la syntaxe des expressions dans le texte structuré.
Pour les opérandes qui ont des valeurs énumérées, saisissez vos valeurs.
Cet opérande | Possède les options suivantes que vous | |
|---|---|---|
Entrez sous forme de texte | Ou comme | |
Système de coordonnées | Aucune énumération | tag |
Contrôle de mouvement | Aucune énumération | tag |
Type de mouvement (Motion Type) | coordinatedmove | 1 = Coordinated Move |
Changement de la vitesse | no yes | 0 = No 1 = Yes |
Vitesse | Aucune énumération | immediate or tag |
Unités de vitesse | unitspersec %ofmaximum unitspermasterunit | 0 1 4 |
Changement de l'accélération | no yes | 0 = No 1 = Yes |
Taux d’accélération | Aucune énumération | immediate or tag |
Unités d’accélération | unitspersec2 %ofmaximum unitspermasterunit2 | 0 1 4 |
Changement de la décélération | no yes | 0 = No 1 = Yes |
Taux de décélération | Aucune énumération | immediate or tag |
Unités de décélération | unitspersec2 %ofmaximum unitspermasterunit2 | 0 1 4 |
Changement du jerk d’accélération | no yes | 0 = No 1 = Yes |
Jerk d’accélération | Aucune énumération | immediate or tag You must always enter a value for the Accel operand. This instruction only uses the value if the Profile is configured as S-curve. Use this value to get started. Accel Jerk = 100 (% of Time) |
Changement de jerk de décélération | no yes | 0 = No 1 = Yes |
Jerk de décélération | Aucune énumération | immediate or tag You must always enter a value Decel Jerk operand. This instruction only uses the value if the Profile is configured as S-curve. Use this value to get started. Decel Jerk = 100 (% of Time) Jerk Units = 2 |
Unités de jerk | unitspersec3 %ofmaximum %oftime unitspermasterunit3 %oftimemasterdriven | 0 1 2 (use this value to get started) 4 6 |
Accès | activemotion activeandpendingmotion | 0 = Active Motion 1 = Active and Pending Motion |
Sorties
Vous trouverez dans le tableau suivant les sorties d'instruction.
Mnémonique | Description |
|---|---|
.EN (Enable) Bit 31 | Le bit d'activation est défini lorsque l'échelon passe de faux à vrai. Il est réinitialisé lorsque l'échelon passe de vrai à faux. |
.DN (Done) Bit 29 | Le bit Fin est réinitialisé lorsque l'échelon passe de faux à vrai. Il est défini lorsque la position cible est calculée avec succès. |
.ER (Error) Bit 28 | Le bit d'erreur est réinitialisé lorsque l'échelon passe de faux à vrai. Il est défini lorsque le calcul de la position cible échoue. |
Description
MCCD est une instruction de transition :
- Dans la logique à relais, faire basculer la condition d'entrée d'échelon de fausse à vraie chaque fois qu'il faudrait exécuter cette instruction.
- Dans le texte structuré, mettre une condition sur l’instruction afin que son exécution se fasse uniquement lors d’une transition.
Système de coordonnées
L'opérande Système de coordonnées spécifie l'ensemble d'axes de mouvement qui définissent les dimensions d'un système de coordonnées. Le système de coordonnées prend en charge trois (3) axes principaux au maximum.
Type de mouvement (Motion Type)
L’opérande Type de mouvement détermine le profil de mouvement à changer. La seule option actuellement disponible est Mouvement coordonné.
Mouvement coordonné – lorsque l’option Mouvement coordonné est sélectionnée, celle-ci change le mouvement actuellement actif dans le système de coordonnées.
Changement de la vitesse
L’opérande Changement de vitesse détermine si la vitesse du profil de mouvement coordonné est changée ou non.
- Non – aucun changement n’est apporté à la vitesse du mouvement coordonné.
- Oui – la vitesse du mouvement coordonné est changée par la valeur définie dans les opérandes Vitesse et Unités de vitesse.
Vitesse
L’opérande Vitesse définit la vitesse maximale le long du chemin suivi par le mouvement coordonné.
Unités de vitesse
L'opérande Unités de vitesse définit les unités qui s'appliquent à l'opérande Vitesse, soit directement en unités de coordonnées définies dans le système de coordonnées, soit en pourcentage des valeurs maximales définies dans le système de coordonnées.
Changement de l'accélération
L’opérande Changement d’accélération détermine si l’accélération du profil de mouvement coordonné est changée ou non.
- Non – aucun changement n’est apporté à l’accélération du mouvement coordonné.
- Oui – l’accélération du mouvement coordonné est changée par la valeur définie dans les opérandes Taux d’accélération et Unités d’accélération.
Taux d’accélération
L’opérande Taux d’accélération définit le taux maximal d’accélération le long du chemin suivi par le mouvement coordonné.
Unités d’accélération
L'opérande Unités d'accélération définit les unités qui s'appliquent à l'opérande Taux d'accélération, soit directement en unités de coordonnées définies dans le système de coordonnées, soit en pourcentage des valeurs maximales définies dans le système de coordonnées.
Changement de la décélération
L’opérande Changement de décélération détermine si la décélération du profil de mouvement coordonné est changée ou non.
- Non – aucun changement n’est apporté à la décélération du mouvement coordonné.
- Oui – la décélération du mouvement coordonné est changée par la valeur définie dans les opérandes Taux de décélération et Unités de décélération.
Taux de décélération
L’opérande Taux de décélération définit le taux maximal de décélération le long du chemin suivi par le mouvement coordonné.
Unités de décélération
L'opérande Unités de décélération définit les unités qui s'appliquent à l'opérande Taux de décélération, soit directement en unités de coordonnées définies dans le système de coordonnées, soit en pourcentage des valeurs maximales définies dans le système de coordonnées.
Impact des Changements sur les Valeurs de l’accélération et de la décélération du Profil de mouvement
Le graphique suivant illustre ce qui peut se passer si une instruction MCCD est utilisée pour réduire l’accélération à mesure que la vitesse se rapproche de sa valeur maximale. Le nouveau Taux de jerk devient plus petit, limitant d’autant plus le change maximal d’accélération. Un dépassement de la vitesse se produit à cause du temps additionnel requis pour que l’accélération atteigne zéro. Un autre profil est généré pour ramener la vitesse à sa valeur maximale programmée.
Effet du changement sur l’accélération

Ce graphique illustre ce qui peut se passer lorsqu’une instruction MCCD est utilisée pour réduire la décélération à mesure que la vitesse et la position se rapprochent des points finals cibles. Le nouveau Taux de jerk de décélération devient plus petit. Le temps requis pour décélérer jusqu’à zéro génère un dépassement de vitesse, qui passe par zéro et devient négatif. Le mouvement d’axe part dans le sens inverse jusqu’à ce que la vitesse revienne à zéro. Un autre profil est généré pour ramener la vitesse à sa valeur programmée.
Effet du changement sur la décélération

Changement du jerk d’accélération
L’opérande Changement de jerk d’accélération détermine si le jerk d’accélération du mouvement coordonné est changée ou non.
- Non – aucun changement n’est apporté au jerk d’accélération du mouvement coordonné.
- Oui – l’accélération du mouvement coordonné est changée par la valeur définie dans les opérandes Taux de jerk d’accélération et Unités de jerk.
Jerk d’accélération
Jerk d’accélération définit le jerk d’accélération maximale pour le mouvement programmé. Pour de plus amples informations sur le calcul Jerk d’accélération, reportez-vous à la section Unités de jerk ci-dessous.
Changement de jerk de décélération
L’opérande Changement de jerk de décélération détermine si le jerk de décélération du profil de mouvement coordonné est changé ou non.
- Non – aucun changement n’est apporté au jerk de décélération du mouvement coordonné.
- Oui – la décélération du mouvement coordonné est changée par la valeur définie dans les opérandes Taux de jerk de décélération et Unités de jerk.
Jerk de décélération
Jerk de décélération définit le jerk de décélération maximale pour le mouvement programmé. Pour de plus amples informations sur le calcul du Jerk de décélération, reportez à la section Unités de jerk.
Unités de jerk
Les unités de jerk définissent les unités qui s’appliquent aux valeurs saisies dans les opérandes Jerk d’accélération et Jerk de décélération. Ces valeurs sont entrées directement dans les unités de position du système spécifié de coordonnées ou sous la forme d’un pourcentage. Lors d’une configuration faisant appel au % du maximum, le jerk s’applique sous la forme d’un pourcentage des opérandes Jerk d’accélération maximale et Jerk de décélération maximale dans les attributs du système de coordonnées. Lors d’une configuration faisant appel au % du temps, la valeur est un pourcentage basé sur la Vitesse, le Taux d’accélération et de décélération qui sont spécifiés dans l’instruction.
Si vous voulez convertir les unités procédé en % du Temps, utilisez ces équations.

Si vous voulez convertir le % du temps en unités procédé, utilisez ces équations.

Accès
L’opérande Choisir le mouvement actif pour le niveau d’accès spécifie que les changements affectent seulement les dynamiques du mouvement de l’instruction de mouvement coordonné active. L’opérande Choisir le mouvement actif et en attente spécifie que les changements affectent les dynamiques du mouvement de l’instruction de mouvement coordonné active et de toute instruction de mouvement coordonné qui se trouve dans la file d’attente. Actuellement, la taille de la file d'attente est limitée à une instruction après l’instruction active.
Changer entre les modes MDSC et Piloté par le temps dans la fonction Contrôle de vitesse piloté par le maître (MDSC)
Vous ne pouvez pas passer du mode Piloté par le maître au mode Piloté par le temps, ou vice-versa, avec une instruction MCCD. Vous recevrez une erreur d’exécution si vous essayez de changer ces modes.
Codes de défaut
Quant à la fonction Contrôle de vitesse piloté par le maître (MDSC), une erreur se produira durant l’exécution if vous essayez de changer le mode du système de Piloté par le maître à Piloté par le temps ou vice-versa.
Codes d’erreur étendus
Les codes d'erreurs étendus permettent de définir plus facilement et de manière plus complète le message d'erreur transmis pour cette instruction spécifique. Leur comportement dépend du code d'erreur avec lequel ils sont associés.
Les Codes d’erreurs étendus des erreurs État désactivé de l’asservissement (5), État de fermeture (7), Axe pas de type asservi (8), Axe pas configuré (11), Erreur de processus de prise d’origine (16) et Type de données d’axes illégal (38) opèrent tous de la même manière. Un nombre compris entre 0 et n s’affiche pour le Code d’erreur étendu. Ce nombre est l’index du Système de coordonnées et indique l’axe sur lequel une condition d’erreur est présente. Reportez-vous à Codes d’erreurs de mouvements (ERR) pour prendre connaissance des instructions de mouvements.
En ce qui concerne l’instruction MCCD, Code d’erreur 13 - Paramètre hors limites, les erreurs étendues renvoient un nombre qui indique le paramètre incriminé, conformément à la liste qui apparaît sur la face avant, par ordre numérique, de haut en bas, en commençant par zéro. Par exemple, 2 indique que la valeur du paramètre pour le Type de mouvement est erronée.
Références de code d’erreur et de numéro | Indicateur numérique des erreurs étendues | Paramètre d’instruction | Description |
|---|---|---|---|
Paramètre hors limites (13) | 2 | Type de mouvement | Type de mouvement est inférieur à 0 ou supérieur à 1. |
Paramètre hors limites (13) | 4 | Vitesse | La vitesse est inférieure à 0. |
Paramètre hors limites (13) | 7 | Taux d’accélération | Taux d’accélération est inférieur ou égale à 0. |
Paramètre hors limites (13) | 10 | Taux de décélération | Taux de décélération est inférieur ou égale à 0. |
En ce qui concerne le code d’erreur 54 – La valeur de décélération maximale est égale à zéro, si l’erreur étendue renvoie un nombre positif (0-n), ce dernier correspond à l’axe fautif du système de coordonnées. Consulter l’onglet Général (General) dans Propriétés du système de coordonnées (Coordinate System Properties), sous la colonne Crochets ([ ]) de la Grille des axes pour déterminer l’axe qui a une Décélération maximale de 0. Cliquer sur le bouton Ellipse qui se trouve à proximité de l’axe fautif pour accéder à l’écran Propriétés de l’axe (Axis Properties). Consulter l’onglet Dynamique (Dynamics) pour modifier, suivant besoin, la décélération maximale. Si l’erreur étendue a le numéro -1, cela signifie que le système de coordonnées a une décélération maximale de 0. Consulter l’onglet Dynamique des propriétés du système de coordonnées (Coordinate System Properties Dynamics) pour corriger la décélération maximale.
Changements MCCD des bits d’état :
Dans le cas de la fonction Contrôle de vitesse piloté par le maître (MDSC), lorsque l'instruction MCCD est exécutée (passe à IP), le bit d'état CalculatedDataAvailable (CDA) est mis à zéro (comme spécifié par la variable Accès de l'instruction MCCD) dans chaque balise des instructions MCLM et MCCM, ce qui indique que les distances d'événements ont été calculées. (La variable Accès spécifie soit l’instruction Mouvement actif, soit l’instruction Mouvement actif et en attente (c.-à-d. toutes les instructions dans la file d'attente).)
Une fois que l’instruction MCCD est terminée et que les Distances d’événements ont été recalculées, le bit d’état CalculatedDataAvailable est à nouveau défini. Par conséquent, regardez le bit d’état CalculatedDataAvailable après la fin de l’instruction MCCD pour déterminer quand utiliser les Distances d’événements recalculées.
Si une instruction MCCD est exécutée (passe à IP), le bit CDA est mis à zéro. Les Données calculées pour le mouvement sont recalculées en utilisant les nouveaux paramètres dynamiques. Le bit CDA est à nouveau défini lorsque les calculs sont terminés. Les Données calculées qui sont recalculées sont mesurées depuis le point Point de départ du mouvement (MSP) original jusqu’au point Distance d’événements en utilisant les nouveaux paramètres dynamiques tels qu’ils ont été modifiés par l’instruction MCCD, et non à partir du point de l’instruction MCCD.
Notez que si l’instruction MCCD change la vitesse à 0, la Distance d’événements n’est pas recalculée et le bit CDA n’est pas défini. La Distance d’événements est cependant recalculée si une seconde instruction MCCD est exécutée pour rédemarrer le mouvement. La valeur Données calculées recalculée comprend la durée du mouvement d’arrêt.
Si la Distance d’événements est définie à 0, alors la valeur Données calculées est définie sur la position égale à la longueur du mouvement. Cela peut être une ou deux périodes intermédiaires de mise à jour avant que le bit PC ne soit défini, en raison d’un retard interne. La position finale est généralement atteinte au milieu de la période intermédiaire de mise à jour, qui ajoute jusqu’à une période intermédiaire de mise à jour additionnelle au retard. Par conséquent, si le maître est déplacé d’une distance égale à la valeur Données calculées, vous devez attendre jusqu’à deux itérations de plus pour que le bit PC du mouvement de l’esclave soit défini.
Affecte les indicateurs d'état mathématique
Non
Défauts majeurs/mineurs
Aucun spécifique à cette instruction. Un défaut majeur peut se produire si une référence non initialisée ou une référence de type incorrect est transmise aux opérandes du système de coordonnées. Reportez-vous à la section Indexer via des tableaux pour consulter les défauts d’indexation par tableau.
Exécution
Diagramme à relais
Condition/état | Action entreprise |
|---|---|
Préscrutation | Les bits .EN, .DN et .ER sont mis à zéro. |
La condition d'entrée d'échelon est égale à faux | Le bit .EN est défini sur faux lorsque le bit .DN ou .ER est vrai. |
La condition d'entrée d'échelon est égale à vrai | Le bit .EN est défini sur vrai et cette instruction est exécutée. |
Post-scrutation | N/A |
Texte structuré
Condition/état | Action entreprise |
|---|---|
Préscrutation | Reportez-vous à Pré-scrutation dans le tableau Diagramme à relais. |
Exécution normale | Reportez-vous à Condition d’entrée d’échelon est fausse, puis Conditions d'entrée d'échelon est vraie sur le tableau Diagramme à relais. |
Post-scrutation | Reportez-vous à Post-scrutation dans le tableau Diagramme à relais. |
Exemple
Diagramme à relais

Texte structuré
MCCD(myMccdCoordinateSystem, myMccdMotionControl, CoordinatedMove, Yes, MyMccdSpeed, Unitspersec, Yes, MyMsccdAccelRate, Unitspersec2, Yes, MyMccdDecelRate, Unitspersec2, Yes, 100.0, Yes, 100.0, %ofTime, ActiveMotion);
Fournir une réponse