Cinématique personnalisée
Voir le PLCopenSingle2.project
exemple de projet et le CustomKinematics.library
bibliothèque dans le répertoire d'installation de CODESYS en dessous de ..\CODESYS SoftMotion\Examples.
Cet exemple décrit comment créer une bibliothèque avec une transformation cinématique personnalisée (Gantry3C) et comment utiliser cette bibliothèque dans un projet pour contrôler le robot.
La transformation cinématique 'Gantry3C' se compose de 3 axes linéaires (X, Y et Z) qui portent une tête d'outil. La tête d'outil se compose d'un axe supplémentaire qui porte un outil monté. La tête de l'outil peut être tournée autour de l'axe Z.

1. Créez un nouveau projet de bibliothèque
Créez un nouveau projet avec le Bibliothèque vide modèle.

2. Ajoutez un gestionnaire de bibliothèque.
Ajoutez un gestionnaire de bibliothèque au POU voir. Ajouter le SM3_Transformation
, SM3_Math
, et SM3_Error
bibliothèques au gestionnaire de bibliothèques.
3. Créez le bloc fonction Gantry3C.
Ce bloc fonction implémente les interfaces MC_KIN_REF_SM3
et ISMKinematicsWithInfo2
de la bibliothèque SM3_Transformation
. Vous pouvez définir un décalage en entrée pour chaque axe. Ce décalage est soustrait avant la transformation directe et ajouté après la transformation inverse.

Exemple de Gantry3C
avec deux cinématiques découplées et KinCoupled
:
FUNCTION_BLOCK Custom_Kin_Gantry3 IMPLEMENTS ISMPositionKinematics FUNCTION_BLOCK Custom_Kin_CAxis IMPLEMENTS ISMOrientationKinematics FUNCTION_BLOCK Custom_Kin_Gantry3C EXTENDS Kin_Coupled
Fournir les blocs fonction Custom_Kin_Gantry3
et Custom_Kin_CAxis
comme entrées pour le bloc fonction Kin_Coupled
lors de l'initialisation. Maintenant Custom_Kin_Gantry3C
devient une cinématique couplée combinant les cinématiques de position et d'orientation.
4. Implémentez les méthodes de l'interface MC_KIN_REF_SM3 et la propriété NumAxes4.
AxesToCartesian
: Cinématique avant : Calcul de la position et de l'orientation à partir des valeurs des axes.
CartesianToAxes
: Cinématique inverse : Calcul des valeurs des axes à partir de la position et de l'orientation.
NumAxes
: Nombre d'axes de la cinématique



5. Implémentez les méthodes des interfaces ISMKinematicsWithInfo2 et ISMKinematicsWithInfo.
GetAxisProperties
: propriétés, telles que le type d'axe. Les limites pour chaque axe peuvent être définies.
GetKinematicsName
: Nom de la cinématique
IsSingularity
: Peut être ignoré pour cette cinématique


6. Spécifiez les informations du projet.

7. Vérifiez la bibliothèque pour les erreurs de compilateur.
Pour consulter la bibliothèque, cliquez sur
.8. Créez la description dans le configurateur de groupe d'axes.
Lorsque le POU a l'attribut sm_kin_libdoc
, le commentaire spécifié dans le bloc fonction est utilisé dans le configurateur de groupe d'axes comme description de la cinématique. Le formatage de texte restructuré est utilisé pour cela.



Inclure l'attribut
sm_kin_libdoc
comme le montre l'image ci-dessus.Inclure les propriétés de projet requises DocFormat et DocLanguages (dans la boîte de dialogue d'informations sur le projet) liés à la documentation de la bibliothèque.
Résultat:
Assurez-vous que le répertoire d'installation de CODESYS contient le
libdoc.exe
fichier exécutable (répertoire :...\DocScripting\3.5.xx.0
\).Téléchargez le convertisseur wkhtmltox 32 bits avec la version 0.12.5 ou inférieure à partir de https://wkhtmltopdf.org/downloads.html. Extraire le
wkhtmltox.dll
fichier et copiez-le dans...\\DocScripting\\3.5.xx.0\\bin
dans le CODESYS répertoire d'installation.Important
Depuis
wkhtmltox.dll
ne prend plus en charge les images par défaut dans la version 0.12.6 et supérieure, vous devez utiliser la version 0.12.5 ou inférieure.Créer la variable système
LIBDOC_CODESYS
dans Windows. Définissez la valeur sur le chemin du fichier deCODESYS.exe
. Assurez-vous de spécifier le nom du chemin et le nom du profil entre guillemets doubles.Résultat:
Enregistrez, fermez et rouvrez le projet de bibliothèque.
Cliquez sur
.La bibliothèque compilée sera installée dans le projet qui utilise cette cinématique.
Utilisation de la bibliothèque dans un projet (CustomKinematics_Implementation.project)
Le projet montre comment utiliser et contrôler la cinématique créée dans la section précédente en faisant du jogging ou en commandant un mouvement.
Créer un CODESYS projet standard avec le CODESYS SoftMotion Win manette.
Ouvrez le gestionnaire de bibliothèque et installez la bibliothèque
CustomKinematics.compiled-library
(créé dans la section précédente) contenant la cinématique Gantry3C. Ajoutez la bibliothèque au gestionnaire de bibliothèque.Ajoutez un objet groupe d'axes et sélectionnez le KinCustom.Gantry3C cinématique.
Résultat:
Ajoutez 4 axes virtuels au Pool d'axes généraux SoftMotion pool d'axes dans l'arborescence des périphériques. (DriveX, Y, Z et C)
Ouvrez le configurateur de groupe d'axes. Dans le Mappage aux axes section, mappez les axes à leurs champs respectifs.
Résultat:
Le programme
Prg_Visu
est le programme principal qui contrôle le groupe d'axes. Au démarrage de l'application,Prg_Visu
met le groupe d'axes sous tension et l'active. De plus, il appelle tous les blocs fonctionnels nécessaires pour contrôler le groupe d'axes (mouvements pas à pas, linéaires et PTP). Tous ces mouvements peuvent être contrôlés à partir de la visualisation jointe.Résultat:
Bloc fonctionnel :
Jog
: Ce FB combine le jogging dans l'espace des axes ainsi que dans l'espace cartésien. Il utilise deux instances deSMC_GroupJog2
. L’un concerne l’espace des axes et l’autre l’espace cartésien. Ce bloc fonction peut être utilisé avec les modèles de visualisation V_RobotPosition_axes et V_RobotPosition_cart_Jog pour déplacer n'importe quelle cinématique dans l'espace cartésien et axial.Résultat:
FB SMC_TRAFOF_Gantry3C
: Ce bloc fonction transforme les valeurs d'axe d'entrée d'une cinématique Gantry3C en ses valeurs TCP respectives. De plus, les valeurs des axes sont normalisées afin qu'elles puissent être utilisées avec le modèle de visualisationTRAFOF_Gantry3C_YZ
visualiser les mouvements de la cinématique.Résultat:
Compilez et exécutez l'application. Ouvrez la visualisation. Vous pouvez piloter le robot aussi bien dans l'espace des axes que dans l'espace cartésien. Il existe également des modèles de visualisation pour commander un mouvement linéaire ou PTP.
Résultat:
Astuce
L'exemple décrit ici traite des axes de positionnement et d'orientation dans un bloc fonctionnel commun. De nombreuses cinématiques peuvent comprendre deux cinématiques partielles découplées : une cinématique de positionnement (delta, portique, etc.) et une cinématique d'orientation (outils comme l'axe C, le poignet2, le poignet3, etc.). Les deux cinématiques sont reliées entre elles au "point de bride", le TCP de la cinématique de positionnement. La cinématique d'orientation se caractérise par le fait qu'elle est capable de calculer le vecteur du point de bride au TCP de la cinématique couplée. Le calcul se fait en utilisant uniquement l'orientation de ce TCP (c'est-à-dire qu'il est indépendant de la cinématique de positionnement ou indépendant de l'orientation du point d'aile). La cinématique de positionnement doit à son tour pouvoir déterminer ses positions d'axe à partir de la seule position du point d'aile. Il ne doit pas dépendre de l'orientation du point de bride.
Dans ce cas, vous pouvez recourir à des interfaces telles que ISMPositionKinematics
ou ISMOrientationKinematics
. Pour implémenter ces interfaces, définissez un bloc fonction à implémenter ISMPositionKinematics
et un autre bloc fonctionnel à implémenter ISMOrientationKinematics
. Enfin, définissez un bloc fonction qui étend le bloc fonction Kin_Coupled
(depuis SM3_Transformation
) avec les blocs fonctionnels définis précédemment comme entrées.
Pour plus d'informations, consultez : Création de cinématiques personnalisées