Dynamiques de changement de mouvement (MCD)
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.Utilisez l’instruction Dynamiques de changement de mouvement (MCD) pour modifier la vitesse, le taux d’accélération ou encore le taux de décélération d’un profil de mouvement ou de marche par à-coups en cours.
Architecture | Standard | Sécurité |
|---|---|---|
Automates CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 et GuardLogix 5570 | Oui | Non |
Automates CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580 et ControlLogix 5590 | Oui | Non |
Langues disponibles
Diagramme à relais

Bloc fonctionnel
Cette instruction n'est pas disponible dans le bloc fonctionnel.
Texte structuré
MCD(Axis, MotionControl, MotionType, ChangeSpeed, Speed, ChangeAccel, AccelRate, ChangeAccelJerk, AccelJerk, ChangeDecelJerk, ChangeDecel, DecelRate, SpeedUnits, AccelUnits, DecelUnits, JerkUnits);
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.
Un diagramme à relais et texte structuré
Opérande | Type
CONSEIL:
AXIS_CONSUMED est uniquement pris en charge par les automates
Compact GuardLogix 5580 et CompactLogix 5380. | Type
CONSEIL:
AXIS_GENERIC est uniquement pris en charge par les automates
ControlLogix 5570 et les GuardLogix 5570. | Format | Description |
|---|---|---|---|---|
Axis | AXIS_CIP_DRIVE AXIS_VIRTUAL | AXIS_CIP_DRIVE AXIS_VIRTUAL AXIS_SERVO AXIS_SERVO_DRIVE AXIS_GENERIC_DRIVE | Balise | Nom de l’axe sur lequel l’opération doit être exécutée Pour les automates qui prennent en charge les types de données de mouvement REF_TO, le type d’opérande d’axe pris en charge peut être remplacé par un type de REF_TO équivalent. |
Motion Control | MOTION_INSTRUCTION | MOTION_INSTRUCTION | Balise | Structure utilisée pour accéder aux paramètres d’état de l’instruction. |
Motion Type | UDINT | UDINT | Immédiat | Profil de mouvement (marche par à-coups ou mouvement) à modifier. Sélectionnez l'une des valeurs suivantes : 0 = Marche par à-coups 1 = mouvement |
Change Speed | BOOLEAN | BOOLEAN | Immédiat | Permet d’activer un changement de vitesse. Sélectionnez l'une des valeurs suivantes : 0 = Non 1 = Oui |
Speed | REAL | REAL | Immédiat ou étiquette | La nouvelle vitesse de mouvement de l’axe en % ou Unités de vitesse. |
Change Accel | BOOLEAN | BOOLEAN | Immédiat | Permet d’activer un changement dans l’accélération. Sélectionnez l'une des valeurs suivantes : 0 = Non 1 = Oui |
Accel Rate | REAL | REAL | Immédiat ou étiquette | Le taux d’accélération de l’axe, en % ou unités d’Accélération. |
Change Decel | BOOLEAN | BOOLEAN | Immédiat | Permet d’activer un changement dans la décélération. Sélectionnez l'une des valeurs suivantes : 0 = Non 1 = Oui |
Decel Rate | REAL | REAL | Immédiat ou étiquette | Le taux de décélération de l’axe, en % ou unités d’Accélération. L’axe peut dépasser sa position cible si vous réduisez la décélération pendant que le mouvement est en cours. |
Change Accel Jerk | SINT, INT ou DINT | SINT, INT ou DINT | Immédiat | 0 = Non 1 = Oui |
Accel Jerk | SINT, INT, DINT ou REAL | SINT, INT, DINT ou REAL | Immédiat ou étiquette | 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. Le Jerk d’accélération est la vitesse du jerk d’accélération pour cet axe. Utilisez cette valeur pour démarrer. Accel Jerk = 100 (% du temps) Unités de jerk = 2 |
Change Decel Jerk | SINT, INT ou DINT | SINT, INT ou DINT | Immédiat | 0 = Non 1 = Oui |
Decel Jerk | SINT, INT, DINT ou REAL | SINT, INT, DINT ou REAL | Immédiat ou étiquette | 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 |
Speed Units | DINT | DINT | Immédiat | Unités utilisées pour afficher la valeur Vitesse. Sélectionnez l'une des valeurs suivantes : 0 = Unités par seconde 1 = % de la vitesse maximale 4 = Unités par unité maître |
Accel Units | DINT | DINT | Immédiat | Unités utilisées pour afficher la valeur Accélération. Sélectionnez l'une des valeurs suivantes : 0 = unités par seconde 2 1 = % de l’accélération maximale 4 = Unités par unité maître 2 |
Decel Units | BOOLEAN | BOOLEAN | Immédiat | Unités utilisées pour afficher la valeur Décélération. Sélectionnez l'une des valeurs suivantes : 0 = unités par seconde 2 1 = % de la décélération maximale 4 = Unités par unité maître 2 |
Jerk Units | SINT, INT ou DINT | SINT, INT ou DINT | Immédiat | 0 = unités par sec 3 1 = % du maximum 2 = % du temps 4 = Unités par unité maître 3 6 = % de temps piloté par le maître |
Texte structuré
Reportez-vous à Syntaxe du texte structuré pour plus d’informations concernant la syntaxe des expressions dans le texte structuré.
Entrez votre sélection pour les opérandes pour lesquelles vous devez sélectionner vos options disponibles.
Cet opérande | Possède les options suivantes que vous | |
|---|---|---|
Entrez sous forme de texte | Ou entrez sous forme de Nombre | |
Axe | Aucune énumération | Tag |
MotionControl | Aucune énumération | Tag |
MotionType | marche par à-coups mouvement | 0 1 |
ChangeSpeed | no yes | 0 1 |
Vitesse | Aucune énumération | Immediate or Tag |
ChangeAccel | no yes | 0 1 |
AccelRate | Aucune énumération | Immediate or Tag |
ChageDecel | no yes | 0 1 |
DecelRate | Aucune énumération | Immediate or Tag |
ChangeAccelJerk | Aucune énumération | 0 = No 1 = Yes |
AccelJerk | 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 |
ChangeDecelJerk | Aucune énumération | 0 = No 1 = Yes |
DecelJerk | 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 |
SpeedUnits | unitspersec %ofmaximum unitspermasterunit | 0 1 4 |
AccelUnits | unitspersec 2 %ofmaximum unitspermasterunit 2 | 0 1 4 |
DecelUnits | unitspersec 2 %ofmaximum unitspermasterunit 2 | 0 1 4 |
JerkUnits | unitspersec 3 %ofmaximum %oftime unitspermasterunit 3 %oftimemasterdriven | 0 1 2 4 6 |
Structure MOTION_INSTRUCTION
Mnémonique | Description |
|---|---|
.EN (Enable) Bit 31 | Il est défini lorsque l'échelon effectue une transition de faux à vrai et reste défini jusqu'à ce que la transaction de message d'asservissement soit terminée et que l'échelon passe à faux. |
.DN (Done) Bit 29 | Défini lorsque la dynamique de changement d’axe s’est correctement lancée. L’instruction s’exécute au cours d’une seule scrutation, et le bit DN est immédiatement défini. |
.ER (Error) Bit 28 | Il est défini pour indiquer que l'instruction a détecté une erreur, par exemple si vous avez spécifié un axe non configuré. |
Description
L’instruction MCD modifie la vitesse de mouvement du profil à la volée et la vitesse, l’accélération et la décélération de la marche par à-coups du profil trapézoïdal à la volée. Sélectionnez l’axe physique et le type de mouvement désirés puis entrez les valeurs ou variables de l’étiquette pour la Vitesse, l’Accélération et la Décélération. Les valeurs de vitesse, d’accélération et de décélération peuvent être entrées en pourcentage de la valeur maximale actuellement configurée ou directement en unités de vitesse ou d’accélération configurées de l’axe.
Si l’axe cible ne s’affiche pas dans la liste des axes disponibles, cela signifie qu’il n’a pas été configuré pour l’asservissement. Utilisez l’Éditeur d’étiquette pour créer et configurer un nouvel axe.
Consignes de programmation
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 en utilisant une méthode quelconque, c’est-à-dire en modifiant la dynamique du mouvement [instruction Dynamiques de changement de mouvement (MCD) ou instruction Dynamiques de changement coordonnée de mouvement (MCCD)] ou en démarrant une nouvelle instruction avant que l’instruction précédente ne soit terminée, soyez conscient du risque de dépassement de la vitesse et/ou de la position finale.
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.
Pour de plus amples informations, reportez-vous à Dépannage des mouvements d’axe.
Dans cette instruction de transition, la logique à relais fait basculer la condition d'entrée d'échelon de mis à zéro à définie chaque fois que l’instruction doit s’exécuter.
Modifier la dynamique de mouvement
Si le type de mouvement choisi ou entré est Mouvement, il est dès lors possible de modifier la vitesse, l’accélération et/ou la décélération d’un mouvement en cours à la valeur spécifiée. Le changement de vitesse se fait au taux d’accélération spécifié si la nouvelle vitesse est supérieure à celle actuelle ou au taux de décélération spécifié si la nouvelle vitesse est inférieure à la vitesse actuelle.
Mettre les mouvements en pause
L’instruction MCD peut être utilisée pour mettre momentanément en pause un mouvement en cours en passant sa vitesse sur zéro. Utilisez une autre instruction MCD avec une valeur de vitesse non nulle pour mettre fin au mouvement comme indiqué à l’origine.
Modifier la dynamique de marche par à-coups
Si le type de mouvement choisi ou entré est Marche par à-coups, il est dès lors possible de modifier la vitesse, l’accélération et/ou la décélération d’une marche par à-coups en cours à la valeur spécifiée. Le changement de vitesse se fait au taux d’accélération spécifié si la nouvelle vitesse est supérieure à celle actuelle ou au taux de décélération spécifié si la nouvelle vitesse est inférieure à la vitesse actuelle.
Prendre en charge l’instruction Démarrage du variateur de mouvement (MDS)
L’instruction MCD prend en charge l’instruction Démarrage du variateur de mouvement (MDS). Cependant, l’instruction MCD n’a aucun effet sur la fonctionnalité de commande DirectVelocityControlStatus car seul le Générateur de trajectoires utilise la valeur de l’Attribut de vitesse de commande directe et l’additionne à la sortie de l’axe avant d’envoyer l’intégralité de la commande au variateur. Une fois toutes les accélérations et décélérations planifiées, l’instruction MCD n’a aucun effet sur la fonctionnalité.
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 MCD. Vous recevrez une erreur d’exécution si vous essayez de changer ces modes.
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 à l’opérande de l’axe. Reportez-vous à la section Attributs communs pour plus d’informations sur les défauts liés aux opérandes.
Exécution
Diagramme à relais
Condition/état | Action entreprise |
|---|---|
Préscrutation | Les bits .EN, .DN, .ER et .IP sont définis sur faux. |
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. |
Codes d’erreur
Reportez-vous à la section Codes d’erreur de mouvement (.ERR) pour les instructions de mouvement.
Condition d’erreur d’exécution
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’erreur étendus fournissent des informations spécifiques sur les instructions supplémentaires pour les Codes d’erreur génériques de nombreuses instructions. Reportez-vous à la section Codes d’erreur de mouvement (.ERR) pour les instructions de mouvement.
Les codes d’erreur étendus pour le code d’erreur Paramètre hors limites (13) donnent un numéro qui renvoie au numéro de l’opérande répertorié dans la face avant, de haut en bas, le premier opérande étant compté comme zéro. Ainsi, pour l’instruction MCD, le code d'erreur étendu 4 renvoie à la valeur de l’opérande Vitesse. Vous devez ensuite vérifier si votre valeur correspond à la plage de valeurs acceptées pour l’instruction.
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 MCD des bits d’état
Pour la fonction Contrôle de vitesse piloté par le maître (MDSC), lorsque l’instruction MCD est exécutée (passe à IP), le bit d’état (CalculatedDataAvailable (CDA)) est mis à zéro dans une instruction MAM, ce qui indique que les Distances d’événement ont été calculées. Une fois l’instruction MCD terminée et que les Distances d’événement ont bien été recalculées, le bit d’état CalculatedDataAvailable est de nouveau défini. Ainsi, consultez le bit d’état CalculatedDataAvailable une fois l’instruction MCD terminée pour déterminer à quel moment il convient d’utiliser les Distances d’événements recalculées.
Si une instruction MCD est exécutée, le bit CDA est alors 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 de nouveau calculées sont mesurées depuis le Point de départ du mouvement (MSP) jusqu’au point de la Distance d’événement en utilisant les nouveaux paramètres de la dynamique modifiés par l’instruction MCD, et non à partir du point de l’instruction MCD.
Notez que si l’instruction MCD fait passer la vitesse à 0, la distance d’événement n’est alors pas recalculée et le bit CDA n’est pas défini. La Distance d’événement est cependant recalculée si une deuxième instruction MCD est lancée pour redémarrer 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.
Exemples
Exemple 1
Diagramme à relais

Texte structuré
MCD(Axis1,MCD_1,Move,Yes,75,Yes,50,No,0,No,0,No,0,%ofMaximum,%ofMaximum,%ofMaximum,%ofMaximum);
Exemple 2
Diagramme à relais

Texte structuré
MCD(Axis1,mcd_motion_ctrl,Move,Yes,2,Yes,1,No,100,Yes,100.0,Yes,100.0,%ofMaximum,%ofMaximum,%ofMaximum,%ofTime);
Fournir une réponse