Transformation coordonnée de mouvement avec orientation (MCTO)
Ces informations s’appliquent aux automates
Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 et ControlLogix 5590.Utilisez l’instruction Transformation coordonnée de mouvement avec orientation (Motion Coordinated Transform with Orientation, MCTO) pour établir une transformation bidirectionnelle qui se définit entre un système cartésien et un système de robot avec des coordonnées qui sont des axes articulaires d’un robot. Les coordonnées de la translation XYZ et les coordonnées de l'orientation RxRyRz dans la convention d'angle fixé définissent les coordonnées cartésiennes. Les configurations géométriques des robots ont généralement des axes d'articulation qui ne sont pas orthogonaux. Le type de système de coordonnées, tel que Delta, spécifie les configurations géométriques.
Architecture | Standard | Sécurité |
|---|---|---|
Automates CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 et GuardLogix 5570 | Non | 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é
MCTO(CartesianSystem, RobotSystem, MotionControl, WorkFrame, ToolFrame);
Opérandes
IMPORTANT:
N'utilisez pas le même nom d'étiquette pour plusieurs instructions dans le même programme. N'écrivez en aucun cas dans l'étiquette de sortie de l'instruction.
ATTENTION:
Si les opérandes de l’instruction sont modifiés en mode Exécution, les éditions en attente doivent être acceptées et le mode de l’automate doit passer de Programme à Exécution pour que les modifications prennent effet.
Configuration
Vous trouverez dans le tableau suivant les opérandes utilisés pour configurer l’instruction. Ces opérandes ne peuvent pas être modifiés lors de l’exécution.
Opérande | Type de données | Format | Description |
|---|---|---|---|
Cartesian System | COORDINATE_SYSTEM | balise | Système de coordonnées cartésiennes utilisé pour programmer les mouvements. Référence au système de coordonnées cartésiennes utilisé pour programmer les mouvements. 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. |
Robot System | COORDINATE_SYSTEM | balise | Système de coordonnées non cartésiennes qui contrôle le matériel réel. Référence à un système de coordonnées non cartésiennes qui contrôle le matériel réel. 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 | Étiquette de contrôle pour cette instruction. |
Work Frame | POSITION_DATA | immédiat balise | Les décalages de cadre de travail sont les décalages utilisés pour localiser le référentiel de travail de l'utilisateur du robot par rapport à l'origine du cadre de base du robot. Ces décalages se composent d'une valeur XYZ et d'une valeur RxRyRz. Cela permet d'écrire les programmes dans l'espace de travail de l'utilisateur ou du cadre de travail et de les transformer vers le cadre de base du robot. Pour faire pivoter la position cible autour de l'axe X, Y ou Z ou pour décaler la position cible le long de l'axe X, Y ou Z du système de coordonnées de base du robot, entrez les degrés de rotation dans les membres des étiquettes Rx, Ry et Rz en unités de degrés de rotation, puis entrez les distances de décalage dans les membres des étiquettes X, Y et Z en unités de coordination. Définissez le membre d’ID sur une valeur supérieure ou égale à zéro. Pour maintenir le cadre de travail sur le cadre de base du robot, laissez les valeurs de structure à zéro ou définissez la valeur de l'étiquette de l'opérande sur zéro. |
Tool Frame | POSITION_DATA | immédiat balise | Les décalages Point central d'outil (TCP) sont utilisés pour localiser le centre de l'outil par rapport au centre de l'extrémité du bras. Ces décalages se composent d'une valeur XYZ et d'une valeur RxRyRz. Pour prendre en compte la position cible pour un outil attaché ayant des décalages de translation et/ou d'orientation, entrez les distances de décalage de l'outil dans les membres des étiquettes X, Y et Z en unités de coordination. Entrez les degrés de rotation de l'outil dans les membres des étiquettes Rx, Ry et Rz en unités de degrés de rotation. Définissez le membre d’ID sur une valeur supérieure ou égale à zéro. Pour que la position cible ne reflète que le point à l'extrémité du bras, laissez la valeur de structure à zéro ou définissez la valeur de l'étiquette de l'opérande sur zéro. |
Pour plus d'informations sur la configuration de systèmes de coordonnées, reportez-vous au Manuel d'utilisation du système de coordonnés de mouvements publication MOTION-UM002.
IMPORTANT:
N'écrivez en aucun cas dans l'étiquette de sortie de l'instruction.
Affecte les indicateurs d'état mathématique
Non
Défauts majeurs/mineurs
Cette instruction génère un défaut majeur si une référence non valide ou un type de référence incorrect est fourni. 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 | Identique à Condition d’entrée d’échelon est fausse |
La condition d'entrée d'échelon est égale à faux | Les bits .EN, .DN, .et ER sont définis sur faux. |
La condition d’entrée d’échelon est vraie et le bit .EN est faux | Le bit .EN est défini sur vrai et cette instruction est exécutée. |
La condition d’entrée d’échelon est vraie et le bit .EN est vrai | N/A |
Post-scrutation | Identique à Condition d’entrée d’échelon est fausse |
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. |
Flux de données de l'instruction MCTO entre deux systèmes de coordonnées
Établissez le système de référence pour le système de coordonnées articulaires pour garantir que la transformation fonctionne correctement. Reportez-vous à la rubrique sur la configuration de géométrie applicable pour plus d'informations sur l'établissement du système de référence pour un système de coordonnées du robot.
Après avoir établi le système de référence du robot, celui-ci peut se déplacer vers n'importe quelle position dans l'espace articulaire lorsque la transformation n'est pas activée. Lors du lancement de l'instruction MCTO pour la première fois, une transformation directe est exécutée d'abord pour définir les positions du système de coordonnées cartésiennes correspondantes. Une fois que l’instruction MCTO est activée, une liaison de transformation bidirectionnelle est établie afin que, si les coordonnées cartésiennes sont commandées pour se déplacer vers une position cible dans l’espace cartésien en suivant un chemin linéaire, le robot se déplace jusqu’aux coordonnées de la cible cartésienne en suivant un chemin linéaire. De même, lorsque le robot est commandé de se déplacer vers une position de coordonnées articulaires, le robot se déplace vers la position cible articulaire le long d'un chemin non cartésien. Tant que l'instruction MCTO est activée, le système maintient les données relatives au système de coordonnées pour les systèmes de coordonnées cartésien et de robot.
Ce diagramme illustre la transformation à partir d'un système de coordonnées cartésiennes (X,Y,Z,Rx,Ry,Rz) vers une géométrie de robot Delta avec 5 axes (J1J2J3J4J5). Les valeurs Rx, Ry et Rz représentent les orientations autour des axes X,Y,Z dans le sens positif.

Configurer une instruction MCTO
L'illustration suivante montre comment configurer une instruction MCTO, avec le système de coordonnées cartésiennes comme source et la géométrie d'axe Delta 5 comme cible. Configurez les systèmes de coordonnées source et cible dans la boîte de dialogue du système de coordonnées.

Flux de données pendant la transformation directe lorsque MCTO est active
Une transformation directe s'exécute lorsqu'un mouvement s'effectue sur des coordonnées angulaires d'un système de robots avec une instruction MCTO activée. Pendant la transformation directe, les positions angulaires articulaires calculent les positions des coordonnées cartésiennes correspondantes en fonction de la géométrie.

Flux de données pendant la transformation inverse lorsque l'instruction MCTO est activée
Lorsque MCTO est active, pendant la transformation inverse, l'instruction utilise les positions cartésiennes et la configuration de géométrie actuelle pour calculer les positions angulaires articulaires correspondantes. MCTO renvoie une Erreur 61 lors du mouvements simultané des systèmes de coordonnées cartésiennes et articulaires.

Codes de défaut
Pour l'instruction Transformation coordonnée de mouvement avec orientation (MCTO), une erreur se produit au moment de l'exécution en cas de fourniture de valeurs d'opérande non valides.
Codes d’erreur étendus
Les codes d'erreurs étendus facilitent la définition plus complète du message d'erreur transmis par l'instruction. Leur signification dépend du code d'erreur auquel ils sont associés.
Erreur Code | EX_ERROR Code | Description |
|---|---|---|
13 | 3 | Valeur hors limites (angle de base) Tout angle d’orientation 360 ou -360 |
13 | 3 | Valeur hors limites (ID de base) ID est égal à toute valeur négative. |
13 | 4 | Valeur hors limites (angle d'outil) Tout angle d’orientation 360 ou -360 |
13 | 4 | Valeur hors limites (ID d'outil) ID est égal à toute valeur négative. |
61 | 1 | Conflit de connexion : Erreur du groupe de mouvements de la transformation. Le système de coordonnées cartésiennes ou du robot n'est pas groupé ou associé au même groupe de mouvements. |
61 | 2 | Conflit de connexion : Erreur de systèmes en double pour la transformation. Opérande 0 et Opérande 1 sont du même type de système de coordonnées. |
61 | 3 | Conflit de connexion : Erreur de dimension de la source de la transformation. La dimension de la transformation du système de coordonnées cartésiennes est 2. |
61 | 4 | Conflit de connexion : Erreur de dimension de la cible de la transformation. La dimension de la transformation du système de coordonnées du robot est égale à zéro. |
61 | 5 | Erreur de tentative d'utilisation des systèmes de coordonnées comme sources multiples - FAN-OUT. |
61 | 6 | Erreur de tentative d'utilisation des systèmes de coordonnées comme cibles multiples - FAN-IN. |
61 | 9 | Conflit de connexion Erreur de chevauchement des axes de la transformation Un axe est membre des systèmes cartésien et du robot. |
61 | 10 | Un ou plusieurs axes sont en mouvement avec l'exception ci-dessous : Mouvement d'engrenage ou d'entraînement de came en cours sur les axes du système de coordonnées cartésiennes. Les axes esclaves du système de coordonnées cartésiennes ne peuvent pas avoir un axe maître à partir du système de coordonnées du robot. |
61 | 12 | Conflit de connexion Longueur de liaisons non valide pour la transformation Les longueurs de liaisons pour toutes les géométries du robot doivent être de 0,0 unité. |
61 | 13 | L'axe est à l'arrêt |
61 | 14 | L’axe est bloqué |
61 | 15 | Conflit de connexion Configuration Delta non valide pour la transformation Longueur de Liaison 1 ne doit pas être égal à Longueur de liaison 2 Re Décalage1 de l'effecteur terminal ne doit pas être négative Pour Delta J1J2J6 et Delta J1J2J3J6, Décalage 3 (D3) de l'effecteur terminal ne doit pas être négative (Longueur de liaison 1 + Rb - Re) doit être inférieur à la longueur de liaison 2 (Longueur de liaison 1 + Rb – Re) doit être positif ou supérieur à zéro |
61 | 18 | Conflit de connexion Configuration articulée non valide pour la transformation Lorsque la valeur de décalage n’est pas valide pour la géométrie articulée indépendante J1J2J3J4J5J6, cette erreur est générée. Le décalage de base Yb doit être égal à 0,0 Le décalage d’effecteur terminal Ye doit être égal à 0,0 Le décalage d’effecteur terminal Ze doit être égal à 0,0 |
67 | 1 | Position non valide de transformation Orientation Rx non valide Valeur de l'orientation Rx non valide pour les transformations EOA. Pour les géométries à 4 axes, seulement la position Rx = 180 deg est autorisée. Pour toutes les autres positions, cela génère une erreur. |
67 | 2 | Position non valide de transformation Orientation Ry non valide Valeur de l'orientation Ry non valide pour les transformations EOA. Pour les géométries à 4 axes, après le retrait du cadre de travail et du cadre d'outil, il ne doit pas y avoir de valeur d'orientation Ry pour EOA |
67 | 3 | Position non valide de transformation Orientation Rz non valide |
147 | 3-5 | Constante de mise à l'échelle de l'orientation non valide Code d'erreur étendu 3 : Rx Code d'erreur étendu 4 : Ry Code d'erreur étendu 5 : Rz L’axe d’orientation a une constante de mise à l’échelle MAX_K_CONSTANT_FOR_ORIENTATION_AXIS. ouune constante de mise à l'échelle non entière ou un rapport de conversion entre les Unités de coordination et des Unités de position différent de 1:1. |
148 | 3-5 | Décalage de l'orientation MCPM non Décalage de l'orientation Rx non valide. Code d'erreur étendu 3 : Décalage de l'orientation Rx non valide. Code d'erreur étendu 4 : Décalage de l'orientation Ry non valide. Code d'erreur étendu 5 : Décalage de l'orientation Rz non valide. Si la géométrie du robot est (MO_CD_J1J2J6 ou MO_CD_J1J2J3J6) et :
Ou si la géométrie du robot est MO_CD_J1J2J3J4J5 et :
|
149 | 3-5 | Axe d'orientation non virtuel Code d'erreur étendu 3 : L'axe Rx doit être virtuel si les transformations sont activées. Code d'erreur étendu 4 : L'axe Ry doit être virtuel si les transformations sont activées. Code d'erreur étendu 5 : L'axe Rz doit être virtuel si les transformations sont activées. |
151 | 1 | Dépassement de la limite des angles articulaires J1 Pour plus de détails, reportez-vous à la section Limite articulaire maximale associée à la géométrie. |
151 | 2 | Dépassement de la limite des angles articulaires J2 Pour plus de détails, reportez-vous à la section Limite articulaire maximale associée à la géométrie. |
151 | 3 | Dépassement de la limite des angles articulaires J3 Pour plus de détails, reportez-vous à la section Limite articulaire maximale associée à la géométrie. |
151 | 4 | Dépassement de la limite des angles articulaires Cela indique la condition d'erreur lorsque l'articulation 4 dans un système Delta à 5 axes dépasse la limite de plage du compteur de tours (45 899,99 J4 -45 900).Erreur Ext 4 : Dépassement de la limite d'articulation J4 |
151 | 5 | Dépassement de la limite des angles articulaires Cela indique la condition d'erreur lorsque l'articulation 5 dans un système Delta à 5 axes dépasse +/-179, +179 J5 -179.Erreur externe 5 : Dépassement de la limite d'articulation J5 |
151 | 6 | Dépassement de la limite des angles articulaires Cela indique la condition d'erreur lorsque l'articulation 6 dans un système Delta à 4 axes dépasse la limite de plage du nombre de tours du compteur (45 899,99 < J6 < -45 900) Erreur externe 6 : Dépassement de la limite d'articulation J6 |
152 | 1 | Dépassement de la vitesse d'orientation maximale pour Rx Lorsque l’axe d’orientation Rx est commandé pour se déplacer d’un angle supérieur ou égal à 180 degrés dans une période intermédiaire de mise à jour, cette erreur et l’erreur étendue sont retournées. |
152 | 2 | Dépassement de la vitesse d'orientation maximale pour Ry Lorsque l’axe d’orientation Ry est commandé pour se déplacer d’un angle supérieur ou égal à 180 degrés dans une période intermédiaire de mise à jour, cette erreur et l’erreur étendue sont retournées. |
152 | 3 | Dépassement de la vitesse d'orientation maximale pour Rz Lorsque l’axe d’orientation Rz est commandé pour se déplacer d’un angle supérieur ou égal à 180 degrés dans une période intermédiaire de mise à jour, cette erreur et l’erreur étendue sont retournées. |
153 | 1 | Position de translation non valide Translation X non valide MOP La translation sur l'axe X n'est pas valide |
153 | 2 | Position de translation non valide Translation Y non valide MOP La translation sur l'axe Y n'est pas valide |
153 | 3 | Position de translation non valide Translation Z non valide MOP La translation sur l'axe Z n'est pas valide |
156 | 1 | Erreur de condition de singularité L’axe articulaire J1 est proche de la condition de singularité d’armement dans la géométrie articulée indépendante J1J2J3J4J5J6 Erreur extérieure 1 : Condition de singularité d’armement |
156 | 2 | Erreur de condition de singularité L’axe articulaire J3 est proche de la condition de singularité de coude dans la géométrie articulée indépendante J1J2J3J4J5J6 Erreur extérieure 2 : Condition de singularité de coude |
156 | 3 | Erreur de condition de singularité L’axe articulaire J5 est proche de la condition de singularité de poignet dans la géométrie articulée indépendante J1J2J3J4J5J6 Erreur extérieure 1 : Condition de singularité de poignet |
Exemple
Les exemples suivants activent les transformations entre le système de coordonnées cartésiennes CS1 et le système de coordonnées du robot CS2, qui est une géométrie Delta à 5 axes. Dans le premier exemple, le cadre de travail et le cadre d'outils ne sont pas spécifiés, de sorte que les positions cartésiennes sont calculées au niveau de l'extrémité du bras du robot (EOA), par rapport au cadre de base du robot.
Diagramme à relais

Lorsque MCTO est active, avec un mouvement vers les positions cartésiennes X = 7,361, Y = -4,25, Z = -928,18, Rx = 180, Ry = 30 et Rz = -30, l'instruction MCTO calcule l'angle articulaire correspondant, comme illustré dans le diagramme suivant.

Considérons la même instruction MCTO, avec des décalages de cadre de travail activés pour X = 50, Y = 50 et Rz = 50. À présent, MCTO calcule les positions cartésiennes par rapport au nouveau cadre de travail.

Lorsqu’un mouvement est programmé vers la même position d’extrémité, les positions articulaires correspondantes sont comme illustrées dans ce diagramme.

Supposons que l'instruction MCTO soit programmée avec des décalages de cadres d'outils également activés pour Ry = 50 avec les décalages de cadre de travail. MCTO calcule maintenant les positions cartésiennes par rapport à l’extrémité des nouveaux cadres de travail et d’outil.

Ce diagramme montre les positions angulaires articulaires correspondantes après la programmation d’un mouvement vers la même position d’extrémité.

Pour plus d'informations sur la configuration des décalages, reportez-vous à Configuration des décalages de système de coordonnées.
Texte structuré
MCTO(CS1, CS2, MCTO1, 0, 0);
CONSEIL:
Pour plus d'informations sur la création de géométrie avec une prise en charge de l'orientation, consultez le Manuel d'utilisation du système de coordonnés de mouvements, publication MOTION-UM002.
Fournir une réponse
360 ou
-360
2.