Introduction
|
|
Le traducteur Yaskawa traduit les fonctionnalités de base de FASTSUITE Edition 2 en un programme robot Yaskawa prêt à l'emploi.
|
|
|
|
|
Préparation de l'implantation
|
|
Les contrôleurs de robot Yaskawa divisent les axes en différents groupes de déplacement. Chaque groupe peut avoir jusqu'à 4 liaisons de base (rails) et 12 liaisons de station (positionneur de pièce).
La configuration est effectuée dans le tableau de bord Cartographie des ports dans l'atelier Implantation et utilisée ultérieurement pour le téléchargement (et la connexion au Contrôleur Robot Virtuel).
|
|
|
|
|
Traducteur Yaskawa
|
|
Le traducteur Yaskawa prend en charge :
Cartographie des repères base et outil.
Mouvement articulaire, linéaire et circulaire.
Cible cartésien (RECTAN) et valeur d'axes (PULSE) pour tous les types de déplacements.
Événements vitesse et précision.
L'événement Texte est utilisé pour ajouter un commentaire dans le programme du robot Yaskawa.
Définir le signal et attendre les événements du signal (ports logiques) ; signaux booléens uniquement.
|
|
Il y a certaines restrictions :
Avec FASTSUITE Edition 2 version R2024.1, seul le traducteur (Python) est disponible. Pour créer un traducteur personnalisé, l'application Custom Definition doit être utilisée.
Implémentation via la personnalisation.
Les mouvements de robots multiples (synchronisés) sont pris en charge par défaut..
Les événements liés aux ports de ressources ne sont pas mis en œuvre dans la base.
|
|
|
Infrastructure
|
|
Le traducteur Yaskawa vendor downloader est dérivé de l'implémentation de base du traducteur.
|
|
|
|
vPour faciliter la création du programme, le programme Yaskawa est organisé en plusieurs sections.
|
|
|
|
Ces sections sont organisées en tableaux de chaînes de caractères. Les tableaux de chaînes sont initialisés dans la fonction __init__().
|
|
|
|
Le traducteur de base fournit plusieurs méthodes pour ajouter du contenu aux tableaux, qu'il convient d'utiliser si possible.
|
|
|
|
|
En-tête de sortie
|
|
The downloader needs to cycle through the entire program to gather all necessary header data before constructing the header. This is crucial to ensure that all header information is compiled. After processing the data, the header is created by invoking the CreateJobHeader() method within the CreateOutputFile() method.
Instead of utilizing the basic OutputHeader() method, the Yaskawa downloader opts for a different approach because OutputHeader() is executed before the looping process.
Le traducteur doit parcourir l'ensemble du programme pour rassembler toutes les données d'en-tête nécessaires avant de construire l'en-tête. Cette étape est cruciale pour s'assurer que toutes les informations de l'en-tête sont compilées. Après avoir traité les données, l'en-tête est créé en invoquant la méthode CreateJobHeader() dans la méthode CreateOutputFile().
Au lieu d'utiliser la méthode OutputHeader() de base, le traducteur Yaskawa opte pour une approche différente car OutputHeader() est exécuté avant le processus de bouclage.
|
|
|
|
|
Gestion des mouvement
|
|
La fonction HandleMotion() est chargée de gérer à la fois le mouvement lui-même et les événements qui se produisent avant et après le mouvement. Elle utilise divers compteurs de position pour suivre le nombre de sections différentes. En fonction du type de mouvement, cette fonction invoque des méthodes spécifiques : OutputYaskawaPtp() pour un mouvement articulaire, OutputYaskawaLin() pour un mouvement linéaire et OutputYaskawaCirc() pour un mouvement circulaire. En outre, elle répond aux exigences uniques de Yaskawa pour les mouvements circulaires (CIRC), qui nécessitent la définition d'un point de départ, d'un point de passage et d'un point d'arrivée.
|
|
|
|
Chaque méthode OutputYaskawa...() sélectionne les sorties cartésiennes (RECTAN) ou d'axe (PULSE) en fonction du PosType, facilitant ainsi la génération de commandes de mouvement appropriées.
|
|
|
|
Le paramètre par défaut qui est appliqué :
|
|
|
|
La sortie de coordonnées Yaskawa écrit des définitions dans des sections de données dédiées.
Condition : L'attribut CENOlpDataOutputStyle de l'édition 2 du robot est défini sur RECTAN, ce qui remplace self.PosType.
|
|
|
|
DataC Part ( osition robot)
|
|
|
|
|
|
Sortie pulse Yaskawa (par défaut) convertit les valeurs d'axe en valeurs d'impulsions en utilisant les attributs de chaîne de robot de fastsuite l'édition 2 CENOlpJointStepFactorValues et CENOlpJointZeroOffsetValues.
|
|
|
|
DataBC Part (Rail)
|
|
|
|
|
|
DataEC Part (Positonneur)
|
|
|
|
|
|
L'instruction de déplacement correspondante est ajoutée, en fonction du type de mouvement :
|
|
|
|
|
Gestion des événements
|
|
Le traducteur de base appelle la méthode HandleEvent() pour les événements intégrés et personnalisés. Ensuite, la méthode OutputEvent() est invoquée pour traiter l'événement qui a été appelé.
|
|
|
|
OutputEvent() analyse les événements et appelle des fonctions pour définir la vitesse, la précision, l'accélération et les ports logiques.
|
|
|
|
|
Groupes de mouvement
|
|
Pour simplifier la sortie des coordonnées des points, les données de FASTSUITE Edition 2 sont transférées dans une structure de données séparée avec des groupes de mouvement et des liaisons. Cette structure de données est la même que celle de Yaskawa. Cela facilite grandement l'édition. La définition des groupes de mouvement et des liaisons se trouve à la fin du traducteur Yaskawa.
|
|
Les fonctions d'aide suivantes préparent la sortie correcte pour différentes combinaisons de groupes Yaskawa en fonction du mappage des groupes du logiciel :
|
|
|
|
|
Constantes et paramètres pour une personnalisation supplémentaire
|
|
Constantes
|
|
Sous la définition de la classe se trouve la définition de la constante.
|
|
|
|
Vitesse, précision et accélération
|
|
Les profils de mouvement sont ajoutés à la définition du point, de sorte que les événements du profil de mouvement modifient les variables de la classe qui sont ensuite prises en compte dans la sortie du point.
|
|
|
|
|
Événement Synchronisation des robots
|
|
L'événement de base prend en charge les interconnexions pour synchroniser les robots. L'événement doit être ajouté au maître et à l'esclave avec le mode Handshake et le texte de synchronisation.
|
|
|
|
|
|