Mouvement linéaire coordonné de mouvement (MCLM)
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 Mouvement linéaire coordonné de mouvement (Motion Coordinated Linear Move, MCLM) pour démarrer un mouvement coordonné linéaire sur une ou plusieurs dimensions impliquant les axes spécifiés dans un système de coordonnées cartésien. Vous pouvez définir la nouvelle position comme étant absolue ou incrémentielle.
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é
MCLM (CoordinateSystem, MotionControl, MoveType, Position, Speed, Speedunits, Accelrate, Accelunits, Decelrate, Decelunits, Profile, Acceljerk, Deceljerk, Jerkunits, TerminationType, Merge, Mergespeed, CommandTolerance,LockPosition, LockDirection, EventDistance, CalculatedData);
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é
L’instruction Mouvement linéaire coordonné (MCLM) effectue un mouvement linéaire en utilisant jusqu’à trois (3) axes couplés statiquement en tant qu’axes primaires dans un système de coordonnées cartésien. Vous pouvez spécifier l’utilisation d’une position cible absolue ou incrémentielle, la vitesse souhaitée, l’accélération maximale, la décélération maximale, le jerk d’accélération, le jerk de décélération et les unités de chacun de ces éléments. La vitesse réelle est fonction des unités programmées de la vitesse (unité par seconde ou pourcentage d’une valeur maximale, tel que configuré pour le système de coordonnées) et de la combinaison des axes principaux pour lesquels un mouvement est commandé. Chaque axe reçoit un ordre de mouvement à une vitesse qui permet à tous les axes d’atteindre le point final programmé (point cible) en même temps.
Opérande | Type | Format | Description |
Système de coordonnées | COORDINATE_SYSTEM | Balise | Groupe coordonné d'axes. Référence à un 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. |
Contrôle du mouvement | MOTION_INSTRUCTION | Balise | Structure utilisée pour accéder aux paramètres d’état de l’instruction. |
Type de mouvement | SINT, INT ou DINT | Immédiat ou étiquette | Sélectionner le type de mouvement : 0 = Absolu 1 = incrémentiel |
Position | REAL | Étiquette de tableau [ ] | [unités des coordonnées] |
Vitesse | SINT, INT, DINT ou REAL | Immédiat ou étiquette | [unités des coordonnées] |
Unités de vitesse | SINT, INT ou DINT | Immédiat | 0 = unités par seconde 1 = % du maximum 4 = unités par unité maître |
Taux d’accélération | SINT, INT, DINT ou REAL | Immédiat ou étiquette | [unités des coordonnées] |
Unités d’accélération | SINT, INT ou DINT | Immédiat | 0 = unités par seconde 2 1 = % du maximum 4 = unités par MasterUnit 2 |
Taux de décélération | SINT, INT, DINT ou REAL | Immédiat ou étiquette | [unités des coordonnées] |
Unités de décélération | SINT, INT ou DINT | Immédiat | 0 = unités par seconde 2 1 = % du maximum 4 = unités par MasterUnit 2 |
Profil | SINT, INT ou DINT | Immédiat | 0 = trapézoïdal 1 = courbe en S |
Jerk d’accélération | SINT, INT, DINT ou REAL | Immédiat ou étiquette | Vous devez toujours entrer des valeurs pour les opérandes Jerk d’accélération et Jerk de décélération. Cette instruction utilise uniquement les valeurs si l’opérande Profil est configuré comme courbe en S. Entrez les taux de jerk en Unités de jerk. 0 = unités par sec 3 1 = % du maximum 2 = % du temps 4 = Unités par MasterUnit 3 6 = % de temps piloté par le maître Utilisez ces valeurs pour démarrer. Accel Jerk = 100 (% du temps) Decel Jerk = 100 (% du temps) Unités de jerk = 2 |
Jerk de décélération | SINT, INT, DINT ou REAL | Immédiat ou étiquette | |
Unités de jerk | SINT, INT ou DINT | Immédiat | |
Type de connexion | SINT, INT ou DINT | Immédiat ou étiquette | 0 = tolérance réelle 1 = pas de fixation 2 = tolérance de commande 3 = aucune décélération 4 = suivre la vitesse de contour limitée 5 = suivre la vitesse de contour non limitée 6 = tolérance de commande programmée Reportez à Choisir un type de terminaison dans la section Rubriques associées ci-dessous. |
Fusion | SINT, INT ou DINT | Immédiat | 0 = Désactivé 1 = mouvement coordonné 2 = tout mouvement |
Vitesse de fusion | SINT, INT ou DINT | Immédiat | 0 = programmé 1 = actuel |
Tolérance de commande | REAL | Réel immédiat ou étiquette | La position sur un mouvement coordonné se déplace à l’endroit où le mélange doit démarrer. Ce paramètre est utilisé à la place de Tolérance de commande dans le système de coordonnées si le type de terminaison 6 est utilisé. Astuce : Le Type de terminaison 2 est identique au Type de terminaison 6, sauf qu’il utilise la valeur Tolérance de commande du système de coordonnées et que ce paramètre est ignoré. |
Position de verrouillage | REAL | Balise | Position sur l’axe maître à laquelle l’esclave doit démarrer en suivant le maître après le démarrage du mouvement sur l’axe esclave. Pour plus d’informations, reportez-vous à la section Structure ci-dessous. |
Sens de verrouillage | UINT32 | Immédiat | Spécifie des conditions dans lesquelles la Position de verrouillage doit être utilisé. Pour plus d’informations, reportez-vous à la section Structure ci-dessous. |
Distance d’événements | TABLEAU REAL ou 0 | Balise de tableau | Position(s) sur un mouvement mesurée(s) à partir de l’extrémité du mouvement. Pour plus d’informations, reportez-vous à la section Structure ci-dessous. |
Données calculées | REAL TABLEAU (ARRAY) ou 0 | Balise de tableau | Distance(s) maître(s) (ou temps) nécessaire à partir du début du mouvement jusqu’au point Distance d’événement. Pour plus d’informations, reportez-vous à la section Structure ci-dessous. |
Lorsque vous entrez des énumérations pour la valeur de l’opérande dans le texte structuré, les énumérations de mots multiples doivent être entrées 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é.
Utilisez les entrées de ce tableau comme guide pour entrer des opérandes de texte structuré.
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 | Balise |
Contrôle de mouvement | Aucune énumération | Balise |
Type de mouvement | Aucune énumération | 0 (absolu) 1 (Incremental) |
Position | Aucune énumération | Balise de tableau |
Vitesse | Aucune énumération | Immédiat ou étiquette |
Unités de vitesse | unitspersec %ofmaximum unitspermasterunits | 0 1 4 |
Taux d’accélération | Aucune énumération | Immédiat ou étiquette |
Unités d’accélération | unitspersec 2 %ofmaximum unitspermasterunit 2 | 0 1 4 |
Taux de décélération | Aucune énumération | Immédiat ou étiquette |
Unités de décélération | unitspersec 2 %ofmaximum unitspermasterunit 2 | 0 1 4 |
Profil | trapézoïdal Courbe en S | 0 1 |
Jerk d’accélération | Aucune énumération | Immédiat ou étiquette Vous devez toujours entrer une valeur pour les opérandes Jerk d’accélération et Jerk de décélération. Cette instruction utilise uniquement les valeurs si Profil est configuré comme courbe en S. Utilisez ces valeurs pour démarrer. Accel Jerk = 100 (% du temps) Decel Jerk = 100 (% du temps) Unités de jerk = 2 |
Jerk de décélération | Aucune énumération | |
Unités de jerk | unitspersec 3 %ofmaximum %oftime unitspermasternit3 %oftimemasterdriven | 0 1 2 (utilisez cette valeur pour démarrer) 4 6 |
Type de connexion | Aucune énumération | 0 = tolérance réelle 1 = pas de fixation 2 = tolérance de commande 3 = aucune décélération 4 = suivre la vitesse de contour limitée 5 = suivre la vitesse de contour non limitée 6 = tolérance de commande programmée Reportez à Choisir un type de terminaison dans la section Rubriques associées ci-dessous. |
Fusion | disabled coordinatedmotion allmotion | 0 1 2 |
Vitesse de fusion | programmed current | 0 1 |
Tolérance de commande | Aucune énumération | Immédiat ou étiquette |
Position de verrouillage | Aucune énumération | Immédiat, réel ou étiquette |
Sens de verrouillage | Aucun immediateforwardonly immediatereverseonly positionforward positionreverse | 0 1 2 3 4 |
Distance d’événements | Aucune énumération | Array |
Données calculées | Aucune énumération | Array |
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 Cartésien. Pour cette version, le système de coordonnées prend en charge trois (3) axes principaux au maximum. Seuls les axes configurés en tant qu’axes principaux figurent dans les calculs de vitesse de coordonnées.
Contrôle de mouvement
Les bits suivants de contrôle sont affectés par l’instruction MCLM.
Mnémonique | Description |
Bit 31 .EN (Activer) | Le bit Activation est défini lorsque l’échelon passe de faux à vrai et se réinitialise lorsque l’échelon passe de vrai à faux. |
Bit 29 .DN (Fin) | Le bit Fin définit à quel moment l’instruction coordonnée a été vérifiée et mise en file d’attente correctement. Comme il est défini au moment où il est mis en file d’attente, il peut apparaître comme étant défini lorsqu’une erreur d’exécution se produit pendant l’opération de vérification une fois qu’il sort de la file d’attente. Il est réinitialisé lorsque l'échelon passe de faux à vrai. |
Bit 28 .ER (Erreur) | Le bit Erreur est réinitialisé lorsque l’échelon passe de faux à vrai. Il est défini lorsque le mouvement coordonné n’a pas démarré correctement. Il est également défini avec le bit Fin lorsqu’une instruction mise en file d’attente rencontre une erreur d’exécution. |
Bit 26 .IP (En cours) | Le bit En cours est défini lorsque le mouvement coordonné a été lancé correctement. Il est réinitialisé lorsqu’il n’existe aucun mouvement suivant et que le mouvement coordonné atteint la nouvelle position, ou lorsqu’il existe un mouvement suivant et que le mouvement coordonné atteint les spécifications du type de terminaison, ou encore lorsque le mouvement coordonné est remplacé par une autre instruction MCLM ou MCCM avec un type de fusion de mouvement coordonné, ou terminé par une instruction MCS. |
Bit 23 .AC (Actif) | Lorsqu’une vous avez une instruction de mouvement coordonné mise en file d’attente, le bit Actif vous permet de savoir quelle instruction contrôle le mouvement. Il est défini lorsque le mouvement coordonné devient actif. Il est réinitialisé lorsque le bit Processus terminé est défini ou lorsque l’instruction est arrêtée. |
Bit 27 .PC (processus terminé) | Le bit Processus terminé est réinitialisé lorsque l’échelon passe de faux à vrai. Il est défini lorsqu’il n’existe aucun mouvement suivant et que le mouvement coordonné atteint la nouvelle position, ou lorsqu’il existe un mouvement suivant et que le mouvement coordonné atteint le type de terminaison spécifié. |
Bit 00 .ACCEL (Bit Accélération) | Le bit Accélération est défini pendant que le mouvement coordonné est en phase d’accélération. Il est réinitialisé lorsque le mouvement coordonné s’effectue à vitesse constante ou se trouve en phase de décélération, ou lorsque le mouvement coordonné se termine. |
Bit 01 .DECEL (Bit Décélération) | Le bit Décélération est défini pendant que le mouvement coordonné est en phase de décélération. Il est réinitialisé lorsque le mouvement coordonné s’effectue à vitesse constante ou se trouve en phase d’accélération, ou lorsque le mouvement coordonné se termine. |
Bit 02 .CalculatedDataAvailable | Le bit CalculatedDataAvailable est défini en réponse à une demande de distance d’événement dans un paramètre de face avant d’instruction pour ces instructions. |
Bit 03 .TrackingMaster | Le bit TrackingMaster est défini lorsque l’accélération est terminée en mode MDSC. Cela signifie que l’axe esclave est synchronisé avec l’axe maître. Il est réinitialisé lorsque l’une des situations suivantes se produit sur l’axe esclave : Lorsque l’axe esclave démarre pour accélérer ou décélérer pour une raison quelconque, par exemple suite à l’émission d’un MCD ou d’un MAS. L’axe esclave est lié à un autre axe maître. Dans ce cas, le bit est de nouveau défini dans le mot d’état de la nouvelle instruction lorsque l’axe esclave recommence à suivre le nouvel axe maître. L’axe esclave est arrêté. Le bit Suivi de l’axe maître est mis à zéro dès que l’arrêt est initié sur l’axe esclave. Ce bit n’est jamais défini lorsque Sens de verrouillage = AUNCUN. Notez que le bit Suivi de l’axe maître de l’esclave n’est jamais affecté par une opération (MCD, etc., par exemple) sur l’axe maître. Le bit Suivi de l’axe maître est toujours réinitialisé en mode Piloté par le temps. |
Type de mouvement
L’opérande Type de mouvement spécifie la méthode utilisée pour indiquer le chemin du mouvement coordonné. Le type de mouvement peut être absolu ou incrémentiel.
- Absolue : les axes se déplacent selon un chemin linéaire vers la position définie par le tableau de position, selon la Vitesse, Taux d’accélération et le Taux de décélération spécifiés par les opérandes.
Lorsque l’axe est configuré pour une opération rotative, un type de mouvement absolu se comporte de la même manière que pour un axe linéaire. Lorsque la position de l’axe dépasse le paramètre Rebouclage, il est rebouclé. De cette manière, la position de l’axe n’est jamais supérieure à la valeur Rebouclage et n’est jamais inférieure à zéro.
Le signe de la position spécifiée est interprété par l’interpolateur et peut être positif ou négatif. Les valeurs de position négatives indiquent à l’interpolateur de se déplacer vers l’axe rotatif dans un sens négatif afin d’obtenir la position absolue désirée, alors que les valeurs positives indiquent qu’un mouvement positif est souhaité pour atteindre la position cible. Lorsque la valeur de la position est supérieure à la valeur de rebouclage, une erreur est générée. L’axe ne se déplace jamais sur plus d’un cycle de rebouclage avant de s’arrêter à une position absolue.
- Incrémentiel : le système de coordonnées se déplace de la distance comme défini par le tableau des positions selon la vitesse spécifiée, en utilisant les taux d’accélération et de décélération déterminés par les opérandes respectifs, via un chemin linéaire.
La distance spécifiée est interprétée par l’interpolateur et peut être positive ou négative. Les valeurs de position négatives indiquent à l’interpolateur de déplacer les axes dans un sens négatif, alors que les valeurs positives indiquent qu’un mouvement positif est souhaité pour atteindre la position cible. Un mouvement supérieur à un cycle de rebouclage est autorisé en mode incrémentiel.
Position
Un tableau unidimensionnel dont la dimension est définie, à titre minimum, comme étant l’équivalent du nombre d’axes spécifiés dans le système de coordonnées. Le tableau Position définit le nouvelle position absolue ou la position incrémentielle.
Vitesse
L’opérande Vitesse définit la vitesse vectorielle 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.
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.
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.
Profil
L’opérande Profil détermine si le mouvement coordonné utilise un profil de vitesse trapézoïdal ou à courbe en S.
L’automate de mouvement
ControlLogix
fournit des profils de vitesse trapézoïdaux (accélération et décélération linéaires) et à courbe en S (jerk contrôlé). Vous trouverez ci-après un guide décrivant les effets de ces profils de mouvements pour divers paramètres d’application.Effets des profils de vitesse
Profil | ACC/DÉC | Moteur | Priorité du contrôle | |||
De la plus haute à la plus basse | ||||||
Trapézoïdal | La plus rapide | La plus mauvaise | Acc/Déc | Vitesse | Position | |
Courbe en S | 2 fois plus lente | La meilleure | Jerk | Acc/Déc | Vitesse | Position |
Trapézoïdal
Le profil à vitesse trapézoïdale est celui qui est le plus fréquemment employé car il offre la flexibilité la plus forte lors de la programmation de mouvements ultérieurs ainsi que les temps d’accélération et de décélération les plus rapides. L’accélération et la décélération précisent le changement maximal de vitesse. Étant donné que le jerk ne constitue pas l’un des facteurs des profils trapézoïdaux, on considère qu’il est infini et se présente sous la forme d’une série de traits verticaux sur ce graphique.

Courbe en S
Les profils de vitesse à courbe en S sont les plus souvent utilisés lorsqu’il faut minimiser les contraintes sur le système mécanique et la charge. Par contre, le profil de courbe en S compromet les temps d’accélération et de décélération par rapport au profil trapézoïdal. En outre, le taux maximal d’accélération et de décélération est limité par le jerk.
Des calculs portant sur le taux du jerk des accélérations et décélérations du mouvement coordonné ont lieu lors du lancement de ces instructions.
|
|
|
|
|
|
|
|
Le taux du jerk calculé produit des profils triangulaires d’accélération et de décélération, comme le montre ce schéma.
Temps d’accél/décél avec courbe en S

Lors d’un mouvement à courbe en S, le taux du Jerk se détermine en fonction des valeurs programmées de vitesse, accélération et décélération et non pas en fonction de la longueur du mouvement. Le logiciel
Logix Designer
s’efforce de maintenir un taux constant du Jerk lors de l’association de mouvements qui ont les mêmes valeurs d’accélération et de décélération, même lorsque le mouvement risque d’avoir une longueur insuffisante pour atteindre la vitesse programmée (mouvement limité par la vitesse).Lorsqu’un mouvement à courbe en S est configuré comme | Une augmentation de la vitesse |
N’étant pas limité par la vitesse | Diminuer le temps d’exécution du mouvement |
Étant limité par la vitesse | Augmenter le temps d’exécution du mouvement |
En ce qui concerne les mouvements à courbe en S qui sont programmés avec une vitesse nulle, le taux du Jerk est déterminé par la vitesse programmée pour l’instruction précédente avec une vitesse différente de zéro.
Reportez-vous à l’instruction MCCD pour obtenir des renseignements plus détaillés sur l’impact des changements provoqués par une instruction MCCD.
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 du Jerk d’accélération, reportez-vous à la section Unités de jerk ci-dessous.
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 de Jerk de décélération, reportez à la section Unités de jerk ci-dessous.
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.
Type de connexion
En ce qui concerne le Contrôle de vitesse piloté par le maître (MDSC), lorsque toutes les instructions séquentielles opèrent dans le même mode (Mode piloté par le maître ou Mode piloté par le temps), tous les types de terminaisons sont pris en charge. Lorsque le type de terminaison provoque la commutation de la file d’attente des mouvements coordonnés, des erreurs risquent de se produire, en fonction de l’ordre séquentiel des types de mouvements.
La description suivante ne s’applique que lorsqu’un mouvement sur un Système de coordonnées esclave fait appel à un Type de terminaisons de mélanges (terminaisons de types 2, 3, ou 6) et est programmé dans le mode MDSC.
Lorsque vous utilisez la valeur Données calculées renvoyée dans la dernière instruction MCLM d’une séquence de mouvements dans le but de programmer la longueur requise de movement de l’axe maître pour devenir PC, il vous faudra peut-être ajouter une petite marge de sécurité à la valeur Données calculées. Si vous n’ajoutez pas cette marge, le mouvement des axes maîtres risque de se terminer avant que la totalité de la séquence programmée de mouvements sur le système de coordonnées esclave ne soit finie. Lorsque cela se produit, la dernière instruction de mouvement agissant sur le Système de coordonnées esclave reste active et ne devient pas PC. La valeur de la petite marge de sécurité dépend de la tolérance de commande utilisée pour le premier mouvement et le dernier mouvement dans la séquence des mouvements, comme indiqué ci-après :
CONSEIL:
Les calculs de la marge de sécurité utilisent les abréviations suivantes :
CUP = Période intermédiaire de mise à jour
MAS = Vitesse de l’axe maître
- En cas d’utilisation d’une Tolérance de commande de 100 % pour le premier mouvement de cette séquence :SafetyMargin1 = CUP * MASou bienSafetyMargin1 = CUP * MAS * .02
- Pour tous les autres mouvements de la séquence de mélange, entre le premier et le dernier :SafetyMargin2 = CUP * MAS * .02 * nombre de mouvements de mélange, entre le premier et le dernier
- En cas d’utilisation d’une tolérance de commande de 100 % pour le dernier mouvement de cette séquence :SafetyMargin3 = CUP * MASou bienSafetyMargin3 = CUP * MAS * .02
- SafetyMargin final = SafetyMargin1 + SafetyMargin2 + SafetyMargin3Dès qu’une séquence est programmée et vérifiée, elle est répétée.
Fusion
L’opérande Fusion détermine s’il faut ou non transformer le mouvement de tous les axes spécifiés en un mouvement coordonné pur. Les options Fusion sont les suivantes : Fusion désactivée, Mouvement coordonné ou Tous les mouvements.
- Fusion désactivéeToutes les instructions éventuelles en train d’exécuter des mouvements sur un seul axe et impliquant n’importe quel axe défini dans le système spécifié de coordonnées ne sont pas affectées par l’activation de cette instruction et cela donne des mouvements superposés sur les axes affectés. En outre, toutes les instructions éventuelles à mouvement coordonné faisant appel au même système spécifié de coordonnées réalisent ces interventions, jusqu’à leur achèvement, en fonction de son type de terminaison.
- Mouvement coordonnéToutes les instructions éventuelles exécutant des mouvements coordonnés faisant appel au même système spécifié de coordonnées sont abandonnées. Le mouvement actif se mélange au mouvement actuel, à la vitesse définie dans le paramètre de fusion de vitesse. Toutes les instructions éventuelles en attente de mouvement coordonné sont annulées. Toutes les instructions éventuelles en train d’exécuter des mouvements sur un seul axe dans un système et impliquant n’importe quel axe défini dans le système spécifié de coordonnées ne seront pas affectées par l’activation de cette instruction et cela donnera des mouvements superposés sur les axes affectés.
- Tous les mouvementsToutes les instructions éventuelles en train d’exécuter des mouvements sur un seul axe et impliquant n’importe quel axe défini dans le système spécifié de coordonnées et toutes les instructions éventuelles en train d’exécuter des mouvements coordonnés seront abandonnées. Le mouvement antérieur fusionne avec le mouvement actuel, à la vitesse définie dans le paramètre Vitesse de fusion. Toutes les instructions éventuelles en attente de mouvement coordonné sont annulées.
Vitesse de fusion
L’opérande Vitesse de fusion définit si la vitesse actuelle ou la vitesse programmée est utilisée en tant que vitesse maximale sur le chemin suivi par le mouvement coordonné lorsque l’option Fusion est activée.
À l’heure actuelle, l’option Mouvement coordonné ne prend en charge que la mise en file d’attente d’une instruction de mouvement coordonné. De ce fait, le bit MovePendingStatus et le bit MovePendingQueueFullStatus sont toujours les mêmes.
Informations supplémentaires sur les instructions de Fusion
Un mouvement du point A au point B se déclenche comme indiqué sur la figure ci-dessous. Lorsque l’axe se trouve au point C, une fusion incrémentielle est déclenchée jusqu’au point D. De ce fait, l’instruction actuelle est abandonnée au point C. Le contrôle calcule la distance de décélération qui s’avère nécessaire au point C le long du vecteur AB afin d’aller de la vitesse actuelle à la vitesse nulle. Cette distance est désignée vecteur CF. Ensuite, le point imaginaire F se calcule en ajoutant le vecteur CF au point C. Le mouvement fusionné qui en résulte, entre C et D, est illustré ci-dessous. Ce mouvement suit la courbe qui part de C puis rejoint la droite entre F et D. Le point D se calcule à partir du point d’origine de la fusion (point C) en faisant appel aux données incrémentielles de l’instruction de fusion. Ce chemin est identique, tout comme si le movement programmé d’origine s’est fait du point A au point F puis du point F au point D, avec une terminaison de type Aucune décélération.

Cet exemple s’applique aux fusions linéaires.
Une tentative de fusion d’un mouvement circulaire peut provoquer des erreurs de programmation si le chemin qui en résulte ne définit pas un cercle. Le centre du cercle, dans le mode incrémentiel, se calcule à partir du point C (le point de la fusion). Néanmoins, il doit y avoir un cercle entre le point F (l’extrémité calculée de la décélération) et la fin du mouvement fusionné.
Fusion dans le mode incrémentiel
L’option Fusion pour mouvement coordonné n’opère pas de la même façon qu’une fusion sur un MAM. En ce qui concerne l’instruction MCLM, tout mouvement qui n’est pas terminé au point de la fusion est rejeté. Par exemple, lorsqu’on retient l’hypothèse d’une instruction MCLM programmée sur un seul axe dans le mode incrémentiel à partir d’une position absolue de départ = 0 et lorsque la distance incrémentielle programmée = 4 unités. Lorsqu’une fusion se produit à une position absolue de 1 et lorsque cette fusion est un autre mouvement incrémentiel de 4 unités, ce mouvement se termine à une position = 5.
Lorsque cet exemple s’effectue sur un MAM programmé, dans le mode incrémentiel, la position finale = 8.
Dialogue Entrée de position de cible (Target Position Entry) MCLM
Le dialogue Entrée de position de cible (Target Position Entry) pour l’instruction MCLM offre un format simple de modification de Position. Pour accéder à la boîte de dialogue Entrée de position de cible (Target Position Entry), vous devez insérer le nom du système de coordonnées dans l’instruction, vous devez saisir un nom valide d’étiquette dans le champ de position, avec suffisamment d’éléments pour traiter le nombre d’axes, et vous devez avoir saisi un Type valide de mouvement.
Pour accéder à la boîte de dialogue Entrée de position de cible (Target Position Entry) d’une instruction MCLM, presser sur l’ellipse qui se trouve après la ligne Position sur la face avant de cette instruction.
Valeurs valides de la logique à relais MCLM pour accéder à la boîte de dialogue Entrée de position de cible (Target Position Entry)

Une pression sur le bouton ellipse au niveau de la ligne Position de la face avant de l’instruction logique à relais appelle l’onglet Position cible (Target Position), ce qui permet de modifier les valeurs de position
CONSEIL:
Cette action n’est pas possible pour une référence.
Le titre de ce dialogue indique le Système de coordonnées et les noms des étiquettes pour cette instruction.
Fonction | Description |
Nom de l’axe | Ces champs énumèrent les noms de chaque axe faisant partie du système de coordonnées. Vous ne pouvez pas modifier les noms des axes dans cette boîte de dialogue. |
Position cible/Incrément cible | Ce champ contient le point final ou l’incrément du mouvement coordonné, tel qu’il est spécifié dans la face avant de cette instruction. Il est numérique. |
Position réelle | Il s’agit des positions réelles actuelles des axes dans le système de coordonnées. Ces positions sont mises à jour de façon dynamique lorsque l’installation est en ligne et lorsque la Mise à jour automatique des étiquettes du système de coordonnées est activée. |
Bouton Définir cibles = réels (Set Targets = Actual) | En mode Absolu, ce bouton copie automatiquement les valeurs de la position réelle dans la colonne Position cible (Target Position). En mode Incrémentiel, ce bouton copie automatiquement les valeurs de la position réelle dans la colonne Incrément cible (Target Increment). |
Le type de mouvement sélectionné détermine l’aspect et la disponibilité du bouton Définir les cibles = Réels (Set Targets = Actuals).
Lorsque le Type de mouvement est Absolu, la colonne cible est intitulée Position cible (Target Position) et lorsque le Type de mouvement est Incrémentiel, la colonne cible est intitulée Incrément cible (Target Increment) et le bouton Définir les cibles = Réels (Set Targets = Actuals) est en grisé.
MCLM 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. Reportez-vous à Syntaxe du texte structuré.
Structure
Reportez-vous à la section Structure des paramètres d’entrée et de sortie des instructions de mouvements sur un seul axe pour les paramètres d’entrée et de sortie dont dispose l’instruction MCLM via la fonction Contrôle de vitesse piloté par le maître (Master Driven Speed Control, MDSC). Avant que l’un de ces paramètres ne soit actif, vous devez exécuter une instruction MDCC et celle-ci doit être active (le bit IP est 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 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 échelon est vrai sur le tableau Diagramme à relais. |
Post-scrutation | Reportez-vous à Post-scrutation dans le tableau Diagramme à relais. |
Conditions d’erreur en cours d’exécution
Vous ne pouvez pas passer du Mode piloté par le temps au Mode piloté par le maître lorsque la vitesse du maître est nulle, à moins que la vitesse de l’esclave ne soit également nulle.
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.
En ce qui concerne le code d’erreur Axe pas configuré (11), il y a une valeur supplémentaire de -1 qui indique que le Système de coordonnées n’a pas été en mesure de configurer l’axe pour le mouvement coordonné. Reportez-vous à la section Codes d’erreur de mouvement (.ERR) pour les instructions de mouvement.
En ce qui concerne l’instruction MCLM, 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) | 3 | Position | Le tableau de positions n’est pas suffisamment grande pour inclure les positions de tous les axes dans le système de coordonnées. |
Paramètre hors limites (13) | 4 | Vitesse | La vitesse est inférieure à 0. |
Paramètre hors limites (13) | 6 | Taux d’accélération | Taux d’accélération est inférieur ou égale à 0. |
Paramètre hors limites (13) | 8 | Taux de décélération | Taux de décélération est inférieur ou égale à 0. |
Paramètre hors limites (13) | 11 | Type de connexion | Le Type de terminaison est inférieur à 0 ou supérieur à 3. |
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 MCLM des bits d’état
Les bits d'états permettent de surveiller la progression de l'instruction de mouvement. Trois types de bits d'états fournissent des informations pertinentes.
- Bits d’état des axes
- Bits d’états du système de coordonnées
- Bits d’états des mouvements coordonnés
Lorsque l’instruction MCLM démarre, les bits d’états subissent les changements suivants.
Bits d’états des types de données prédéfinies des instructions de mouvements
Reportez-vous à la section Bits d’état pour MCLM, MCCM lorsque MDCC est actif.
Bits d’état des axes
Nom du bit | Signification |
CoordinatedMotionStatus | Définir quand l’instruction démarre. Mettre à zéro lorsque l’instruction se termine. |
Bits d’états du système de coordonnées
Nom du bit | Signification |
MotionStatus | Définir lorsque l’instruction MCLM est active et lorsque le système de coordonnées est raccordé à ses axes associés. |
Bits d'état des mouvements coordonnés
Nom du bit | Signification |
AccelStatus | Définir à quel moment le vecteur accélère. Mettre à zéro lorsque un mélange est en cours ou lorsque le mouvement vectoriel décélère. |
DecelStatus | Définir à quel moment le vecteur décélère. Mettre à zéro lorsque un mélange est en cours ou lorsque le mouvement vectoriel accélère. |
ActualPosToleranceStatus | Définir uniquement le type de terminaison Tolérance réelle. Est défini lorsque les deux conditions suivantes sont présentes. 1) L’interpolation est terminée. 2) La distance réelle vers le point final programmé est inférieure à la valeur Tolérance réelle du système de coordonnées configuré. Ce bit reste défini après l’exécution d’une instruction. Ce bit est réinitialisé lors du démarrage d’une nouvelle instruction. |
CommandPosToleranceStatus | Définir pour tous les types de terminaisons chaque fois que la distance réelle vers le point final programmé est inférieure à la valeur Tolérance réelle du système de coordonnées configuré. Ce bit reste défini après l’exécution d’une instruction. Il est réinitialisé lors du démarrage d’une nouvelle instruction. Le bit d’état CommandPosToleranceStatus (CS_CMD_POS_TOL_STS) du Système de coordonnées est défini comme suit : TT0, TT1, TT4, TT5 - Ce bit est défini lorsque la distance par rapport au point final est inférieure à la valeur Tolérance de commande. Ce bit est mis à zéro lorsque le premier mouvement est terminé. TT2, TT6 - Ce bit est défini lorsque la distance par rapport au point final est inférieure à la valeur Tolérance de commande. Ce bit est mis à zéro lorsque le mélange a commencé (c’est-à-dire, lorsque le deuxième mouvement a commencé). De ce fait, vous risquez de ne pas voir ce bit si le mélange a commencé au point Tolérance de commande (CT). Le mélange risque d’avoir été légèrement différé au-delà du point CT si le mouvement suivant est court ou pour obtenir une correspondance temporelle de l’accélération et de la décélération de deux mouvements adjacents. TT3 - Ce bit est défini lorsque la distance par rapport au point final est inférieure à la valeur Tolérance de commande (tout comme TT2 et TT6). Ce bit est mis à zéro lorsque le mélange a commencé. De ce fait, vous risquez de ne pas voir ce bit si le mélange a commencé au point de décélération. Le mélange risque d’avoir été légèrement différé au-delà du point de décélération si le mouvement suivant est court ou pour obtenir une correspondance temporelle de l’accélération et de la décélération de deux mouvements adjacents. |
StoppingStatus | Le bit d’état Arrêt en cours est mis à zéro lorsque l’instruction MCLM démarre. |
MoveStatus | Definir lorsque MCLM commence le mouvement des axes. Il est mis à zéro avec le bit .PC de la dernière instruction de mouvement ou lors de l’exécution d’une instruction de mouvement qui provoque un arrêt. |
MoveTransitionStatus | Définir à quel moment le type de terminaison Aucune décélération ou Tolérance commandée est satisfait. Lorsque la combinaison colinéaire se déplace, le bit n’est pas défini, car la machine est toujours sur le trajet. Il est mis à zéro lorsqu’une combinaison se termine, que le mouvement d’une instruction en attente démarre ou lorsqu’une instruction de mouvement s’exécute et provoque un arrêt. Indique qu’elle n’est pas sur le chemin. |
MovePendingQueueFullStatus | Définir à quel moment la file d’attente des instructions est pleine. Il est mis à zéro lorsque la file d’attente a la place pour une nouvelle instruction de mouvement coordonné. |
CoordinateSystemLockStatus | Définir lorsqu’un verrouillage d’axe est demandé pour une instruction MCLM ou MCCM et que l’axe a franchi la position de verrouillage. Mettre à zéro lorsqu’une instruction MCLM ou MCCM est initiée. Pour l’énumération Avant immédiat uniquement et Inverse immédiat uniquement, le bit est défini immédiatement lorsque MCLM or MCCM est initié. Lorsque l’énumération est Position avant uniquement ou Position inverse uniquement, les bit est défini lorsque l’Axe maître franchit la Position de verrouillage dans le sens spécifié. Le bit n’est jamais défini si l’énumération est AUCUN. Le bit CoordMotionLockStatus est mis à zéro lorsque l’axe maître inverse le sens et que l’axe esclave s’arrête en suivant l’axe maître. Le bit CoordMotionLockStatus est de nouveau défini lorsque le système de coordonnées esclave reprend en suivant l’axe maître. Le bit CoordMotionLockStatus est mis à zéro également lors du démarrage d’une instruction MCCS. |
À l’heure actuelle, l’option Mouvement coordonné ne prend en charge que la mise en file d’attente d’une instruction de mouvement coordonné. De ce fait, le bit MovePendingStatus et le bit MovePendingQueueFullStatus sont toujours les mêmes.
Support pour le Contrôle de vitesse piloté par le maître (MDSC) et pour la Commande directe du mouvement
Les commandes de mouvement direct ne sont pas disponibles sur l’organigramme des instructions en ce qui concerne l’instruction MCLM. Vous devez programmer une instruction MCLM dans un des langages de programmation pris en charge avant l’exécution d’un MAM ou MAJ dans le mode Piloté par le temps. Une erreur en cours d’exécution va se produire si une instruction MCLM n’a pas été auparavant exécutée dans un MAM ou un MAJ dans le mode Piloté par le maître.
Exemples
Diagramme à relais

Texte structuré
MCLM(myMclmCoordinateSystem, myMclmMotionControl, myMclmMoveType, myMclmPosition[0], myMclmSpeed, Unitspersec, myMclmAccelRate, Unitspersec2, myMclmDecelRate, Unitspersec2, Trapezoidal, 100.0, 100.0, %ofTime, myMclmTermType, CoordinatedMotion, Programmed, 0, 0, None, 0, 0);
Logique à relais

Texte structuré
MCLM(myMclmCoordinateSystem,myMclmMotionControl,myMclmMoveType,myMclmPosition[0], myMclmSpeed,Unitspersec,myMclmAccelRate,Unitspersec2,myMclmDecelRate,Unitspersec2,Trapezoidal, 100.00,100.0,%ofTime,myMclmTermType,CoordinatedMotion,Programmed,0,0, None,0,0);
Fournir une réponse