Création de cinématiques personnalisées
Important
L'outil open source wkhtmltopdf
est nécessaire pour générer la documentation de la cinématique à partir des commentaires du bloc fonction. Cependant, ce composant n'est plus inclus dans la configuration de CODESYS version 3.5 SP15 et supérieure.
Vous pouvez télécharger la DLL à partir de https://wkhtmltopdf.org/downloads.html. Créer un répertoire nommé DocScripting\3.5.xx.x\bin
dans le répertoire d'installation de CODESYS et enregistrez le fichier wkhtmltox.dll
là.
Attention : 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.
Important
Lorsqu'une instance d'une transformation cinématique d'un groupe d'axes est utilisée, les entrées de l'instance ne doivent plus être modifiées.
Pour modifier le paramétrage de la transformation cinématique, il faut utiliser la configuration si possible, ou créer plusieurs instances.
Lorsque vous créez une cinématique personnalisée, vous devez respecter les points suivants :
La cinématique est décrite par des blocs fonctionnels spéciaux qui peuvent être stockés dans des bibliothèques ou dans le POU vision du projet.
Pour CODESYS pour lister la cinématique dans le configurateur, les blocs fonctions associés doivent implémenter
MC_KIN_REF_SM3
interface (partie deSM3_Transformation.library
).Vous pouvez définir une cinématique comme une combinaison de deux autres cinématiques. Les cinématiques avec possibilité de fixer des plaques à outils ou des outils doivent également mettre en œuvre les
ISMPositionCinématique2
interface. Les cinématiques qui spécifient une plaque à outils ou un outil doivent mettre en œuvre lesISMToolKinematics2
interface.Si vous n'implémentez que
ISMPositionKinematics
/ISMToolKinematics
à la place deISMPositionKinematics2
/ISMToolKinematics2
, les orientations "non disponibles" pourraient être traitées de manière incorrecte.Lorsque vous implémentez également l'interface
ISMPositionKinematics_Offset
, vous pouvez utiliser le mode d'orientationAxis
.Lorsque le POU a le
sm_kin_libdoc
, le commentaire spécifié dans le bloc fonction est utilisé dans le configurateur comme description de la cinématique. Le formatage "Texte restructuré" est utilisé pour cela. Notez cependant que les liens ne sont pas pris en charge.Les paramètres liés à la conception, tels que les longueurs et les angles des bras, sont créés en tant que variables VAR_INPUT du bloc fonctionnel. Vous devez commenter les paramètres car le commentaire sert de description dans le configurateur. Si les paramètres sont de type numérique et que leur plage de valeurs est restreinte, ils doivent alors être fournis avec le
sm_kin_param_range
attribut.La syntaxe de la plage de valeurs est
[a .. b]
pour les intervalles fermés et]a .. b[
pour les intervalles ouverts. Les formulaires combinés]a .. b]
et[a .. b[
sont également possibles. Dans ce but,a
etb
doivent être des littéraux appropriés pour le type de paramètre. Les valeurs spéciales+inf
et-inf
sont possibles pour les limites d'intervalle ouvertes. Exemples:[0 .. 1]
,[1 .. +inf[
,]-inf .. -5]
.Les paramètres peuvent être de n'importe quel type numérique ou
BOOL
. Les paramètres doivent avoir une valeur initiale utilisée comme valeur par défaut. Vous pouvez spécifier l'unité du paramètre avec l'attribut facultatifsm_kin_param_unit
(exemple : "rad", "°", "deg"). Vous devez utiliser l'unité "u" pour les longueurs et les distances. L'application et la mise à l'échelle des variateurs déterminent si ces unités sont "mm", "cm" ou "m".Si aucune documentation de bibliothèque n'est disponible pour le bloc fonctionnel, le commentaire de l'élément FB est affiché aux emplacements respectifs comme option de secours.
La langue configurée dans CODESYS est la langue affichée pour la documentation LibDoc. Si une localisation n'est pas disponible dans cette langue, la langue par défaut de la bibliothèque est utilisée.
Les noms d'axes de la cinématique sont définis par l'attribut FB
sm_kin_axes
. La valeur de l'attribut est une liste de noms d'axes (exemple : "A1, A2, A3").Une icône facultative est spécifiée avec l'attribut FB
sm_kin_icon
. La valeur est indiquée sous la forme<image pool>.<identifier>
. Le pool d'images est spécifié par rapport au bloc fonctionnel.Si vous créez un bloc fonction cinématique personnalisé avec des axes rotatifs (par exemple,
Kin_Scara3_Z_Config
), alors vous devez utiliser le concept de période pour ces axes et implémenter leISMKinPeriodHandling
interface. Pour les axes rotatifs, seule la transformation cinématique inverse (CartesianToAxes
) est responsable du calcul de l'angle. Puis CODESYS SoftMotion décale automatiquement cet angle à la période correcte. Par exemple, si la transformation calcule un angle dans la plage ]-180°, 180°], alors CODESYS SoftMotion décale cet angle dans la plage [0°, 360°[, à condition que les limites logicielles de l'entraînement soient de 0° .. 360°. De plus, vous devez mettre en œuvre leISMKinematicsWithConfiguration3
interface. C'est le seul moyen de s'assurer que la cinématique des mouvements CP fonctionne sans problème.Dans le cas d'une cinématique couplée avec une disposition irrégulière de la cinématique de position et d'orientation, vous devez implémenter la
ISMCoupledKinematics3
interface. De cette manière, le système peut détecter si un axe pour la cinématique de position ou d'orientation appartient ou non au numéro d'axe respectif.Remarque : Vous devez implémenter le
ISMKinematicWithConfigurations2.CPConnectible
de manière à ce que les paramètres de période soient ignorés lors de la comparaison. PuisCPConnectible
renvoie la valeurTRUE
, même si le paramètre de période est différent.
Toutes les transformations inverses ont une entrée de type CONFIGDATA
qui contient un tableau d'octets avec des informations sur la configuration de la cinématique. Les transformations directes ont une sortie correspondante. Les cinématiques avec une configuration doivent implémenter ISMKinematicWithConfigurations
interface. Ces cinématiques comportent chacune un bloc fonction qui doit implémenter ISMConfigurationData
interface (fonction de sérialisation des données de configuration). Le nom de ce bloc fonction doit être le même que celui de la cinématique plus le suffixe _config
. Vous pouvez utiliser ce FB pour modifier la configuration dans l'application (à l'aide du bloc fonction SMC_SetKinConfiguration
bloquer). Cependant, la cinématique ne doit contenir aucune instance du FB correspondant.
Astuce
Pour obtenir des instructions étape par étape, consultez le Cinématique personnalisée chapitre.